react-toast-msg 1.1.0 → 1.2.0

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 CHANGED
@@ -8,6 +8,7 @@ A lightweight, zero-config, customizable React toast notification library — ju
8
8
  - Works with both `import` and `require`
9
9
  - Easy to style with utility classes
10
10
  - Works with React 18+
11
+ - Supports multiple variants (success, error more coming soon)
11
12
 
12
13
 
13
14
  ## Installation
@@ -25,12 +26,17 @@ npm install react-toast-msg
25
26
  import { ToastContainer, toast } from 'react-toast-msg';
26
27
 
27
28
  function App() {
28
- return (
29
- <>
30
- <ToastContainer />
31
- <button onClick={() => toast('This is a toast!')}>Show Toast</button>
32
- </>
33
- );
29
+ return (
30
+ <>
31
+ <ToastContainer />
32
+ <button onClick={() => toast.success('This is a success toast!')}>
33
+ Show Success Toast
34
+ </button>
35
+ <button onClick={() => toast.error('This is an error toast!')}>
36
+ Show Error Toast
37
+ </button>
38
+ </>
39
+ );
34
40
  }
35
41
  ```
36
42
 
@@ -38,26 +44,16 @@ function App() {
38
44
  ## Variants
39
45
 
40
46
  ```js
41
- toast('Default toast');
42
47
  toast.success('Success message!');
43
48
  toast.error('Something went wrong!');
44
- toast.info('Some useful info');
45
49
  ```
46
50
 
47
51
 
48
52
  ## Customization (Coming Soon)
49
53
 
50
- Style your toasts with Tailwind, classNames, or inline styles. Theme support and placement config coming in the next release.
51
-
52
-
53
- ## API
54
-
55
- | Function | Description |
56
- | -------------------- | ------------------ |
57
- | `toast(msg)` | Show a basic toast |
58
- | `toast.success(msg)` | Success variant |
59
- | `toast.error(msg)` | Error variant |
60
- | `toast.info(msg)` | Info variant |
54
+ | Property | Description | Default |
55
+ | -------- | ----------- | ------- |
56
+ | `duration` | Duration of the toast in milliseconds | `3000` |
61
57
 
62
58
 
63
59
  ## Contributing
@@ -74,13 +70,7 @@ We’d love your input!
74
70
 
75
71
  Start by checking out the [GitHub repo](https://github.com/sudhucodes/react-toast-msg) — issues, discussions, and PRs are welcome. Let's build something amazing together 🚀
76
72
 
77
- ## License
78
-
79
- MIT © [SudhuCodes](https://github.com/sudhucodes)
80
-
81
-
82
73
  ## Links
83
74
 
84
75
  * [GitHub Repo](https://github.com/sudhucodes/react-toast-msg)
85
- * [Issue Tracker](https://github.com/sudhucodes/react-toast-msg/issues)
86
- * [npm Package](https://www.npmjs.com/package/react-toast-msg)
76
+ * [npm Package](https://www.npmjs.com/package/react-toast-msg)
package/dist/index.es.js CHANGED
@@ -104,7 +104,9 @@ function _unsupportedIterableToArray(r, a) {
104
104
  }
105
105
  }
106
106
 
107
- function ToastContainer() {
107
+ function ToastContainer(_ref) {
108
+ var _ref$duration = _ref.duration,
109
+ duration = _ref$duration === void 0 ? 3000 : _ref$duration;
108
110
  var _useState = useState([]),
109
111
  _useState2 = _slicedToArray(_useState, 2),
110
112
  toasts = _useState2[0],
@@ -123,7 +125,7 @@ function ToastContainer() {
123
125
  return t.id !== newToast.id;
124
126
  });
125
127
  });
126
- }, 3000);
128
+ }, duration);
127
129
  });
128
130
  }, []);
129
131
  return /*#__PURE__*/React.createElement("div", {
@@ -134,8 +136,8 @@ function ToastContainer() {
134
136
  className: "toast toast-".concat(t.type)
135
137
  }, /*#__PURE__*/React.createElement("div", {
136
138
  className: "toast-content"
137
- }, /*#__PURE__*/React.createElement("svg", {
138
- className: "toast-icon",
139
+ }, t.type === 'success' ? /*#__PURE__*/React.createElement("svg", {
140
+ className: "toast-icon toast-".concat(t.type, "-icon"),
139
141
  "aria-hidden": "true",
140
142
  xmlns: "http://www.w3.org/2000/svg",
141
143
  width: "28",
@@ -146,6 +148,18 @@ function ToastContainer() {
146
148
  fillRule: "evenodd",
147
149
  d: "M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm13.707-1.293a1 1 0 0 0-1.414-1.414L11 12.586l-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4-4Z",
148
150
  clipRule: "evenodd"
151
+ })) : /*#__PURE__*/React.createElement("svg", {
152
+ className: "toast-icon toast-".concat(t.type, "-icon"),
153
+ "aria-hidden": "true",
154
+ xmlns: "http://www.w3.org/2000/svg",
155
+ width: "28",
156
+ height: "28",
157
+ fill: "currentColor",
158
+ viewBox: "0 0 24 24"
159
+ }, /*#__PURE__*/React.createElement("path", {
160
+ fillRule: "evenodd",
161
+ d: "M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm7.707-3.707a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293Z",
162
+ clipRule: "evenodd"
149
163
  })), /*#__PURE__*/React.createElement("p", null, t.message)), /*#__PURE__*/React.createElement("button", {
150
164
  className: "toast-close",
151
165
  "aria-label": "Close",
@@ -174,14 +188,38 @@ function ToastContainer() {
174
188
  }));
175
189
  }
176
190
 
191
+ function styleInject(css, ref) {
192
+ if ( ref === void 0 ) ref = {};
193
+ var insertAt = ref.insertAt;
194
+
195
+ if (!css || typeof document === 'undefined') { return; }
196
+
197
+ var head = document.head || document.getElementsByTagName('head')[0];
198
+ var style = document.createElement('style');
199
+ style.type = 'text/css';
200
+
201
+ if (insertAt === 'top') {
202
+ if (head.firstChild) {
203
+ head.insertBefore(style, head.firstChild);
204
+ } else {
205
+ head.appendChild(style);
206
+ }
207
+ } else {
208
+ head.appendChild(style);
209
+ }
210
+
211
+ if (style.styleSheet) {
212
+ style.styleSheet.cssText = css;
213
+ } else {
214
+ style.appendChild(document.createTextNode(css));
215
+ }
216
+ }
217
+
218
+ var css_248z = ":root{--color-success-bg:oklch(0.962 0.044 156.743);--color-success-border:oklch(0.723 0.219 149.579);--color-success-icon:oklch(0.627 0.194 149.214);--color-success-text:oklch(0.393 0.095 152.535);--color-error-bg:oklch(0.936 0.032 17.717);--color-error-border:oklch(0.637 0.237 25.331);--color-error-icon:oklch(0.577 0.245 27.325);--color-error-text:oklch(0.396 0.141 25.723)}*{box-sizing:border-box;margin:0;padding:0}.toast-container{align-items:end;display:flex;flex-direction:column;gap:8px;height:100vh;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:start;animation:reveal .3s ease-in-out forwards;border-left:4px solid;border-radius:.375rem;display:flex;justify-content:space-between;opacity:0;padding:.5rem .5rem .5rem 0;transform:translateX(100%);width:300px}.toast-content{align-items:center;display:flex;padding:.5rem}.toast-icon{flex-shrink:0;height:1.75rem;margin-right:.5rem;width:1.75rem}.toast-close{background:none;border:none;color:#333;cursor:pointer;margin-left:1rem}.close-icon{height:1rem;width:1rem}@keyframes reveal{to{opacity:1;transform:translateX(0)}}.toast-success{background-color:var(--color-success-bg);border-left-color:var(--color-success-border);color:var(--color-success-text)}.toast-error{background-color:var(--color-error-bg);border-left-color:var(--color-error-border);color:var(--color-error-text)}.toast-success-icon{color:var(--color-success-icon)}.toast-error-icon{color:var(--color-error-icon)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFDSSw2Q0FBOEMsQ0FDOUMsaURBQWtELENBQ2xELCtDQUFnRCxDQUNoRCwrQ0FBZ0QsQ0FFaEQsMENBQTJDLENBQzNDLDhDQUErQyxDQUMvQyw0Q0FBNkMsQ0FDN0MsNENBQ0osQ0FFQSxFQUdJLHFCQUFzQixDQUZ0QixRQUFTLENBQ1QsU0FFSixDQUVBLGlCQU9JLGVBQWdCLENBRGhCLFlBQWEsQ0FFYixxQkFBc0IsQ0FDdEIsT0FBUSxDQUxSLFlBQWEsQ0FIYixjQUFlLENBRWYsVUFBVyxDQURYLFFBQVMsQ0FHVCxZQUtKLENBRUEsT0FFSSxpQkFBa0IsQ0FTbEIseUNBQTJDLENBSjNDLHFCQUFzQixDQUN0QixxQkFBdUIsQ0FQdkIsWUFBYSxDQUViLDZCQUE4QixDQU05QixTQUFVLENBSFYsMkJBQWtCLENBSWxCLDBCQUEyQixDQU4zQixXQVFKLENBRUEsZUFFSSxrQkFBbUIsQ0FEbkIsWUFBYSxDQUViLGFBQ0osQ0FFQSxZQUlJLGFBQWMsQ0FGZCxjQUFlLENBQ2Ysa0JBQW9CLENBRnBCLGFBSUosQ0FFQSxhQUVJLGVBQWdCLENBQ2hCLFdBQVksQ0FDWixVQUFzQixDQUN0QixjQUFlLENBSmYsZ0JBS0osQ0FFQSxZQUVJLFdBQVksQ0FEWixVQUVKLENBRUEsa0JBQ0ksR0FDSSxTQUFVLENBQ1YsdUJBQ0osQ0FDSixDQUdBLGVBQ0ksd0NBQXlDLENBQ3pDLDZDQUE4QyxDQUM5QywrQkFDSixDQUVBLGFBQ0ksc0NBQXVDLENBQ3ZDLDJDQUE0QyxDQUM1Qyw2QkFDSixDQUVBLG9CQUNJLCtCQUNKLENBRUEsa0JBQ0ksNkJBQ0oiLCJmaWxlIjoiZ2xvYmFsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpyb290IHtcclxuICAgIC0tY29sb3Itc3VjY2Vzcy1iZzogb2tsY2goMC45NjIgMC4wNDQgMTU2Ljc0Myk7XHJcbiAgICAtLWNvbG9yLXN1Y2Nlc3MtYm9yZGVyOiBva2xjaCgwLjcyMyAwLjIxOSAxNDkuNTc5KTtcclxuICAgIC0tY29sb3Itc3VjY2Vzcy1pY29uOiBva2xjaCgwLjYyNyAwLjE5NCAxNDkuMjE0KTtcclxuICAgIC0tY29sb3Itc3VjY2Vzcy10ZXh0OiBva2xjaCgwLjM5MyAwLjA5NSAxNTIuNTM1KTtcclxuXHJcbiAgICAtLWNvbG9yLWVycm9yLWJnOiBva2xjaCgwLjkzNiAwLjAzMiAxNy43MTcpO1xyXG4gICAgLS1jb2xvci1lcnJvci1ib3JkZXI6IG9rbGNoKDAuNjM3IDAuMjM3IDI1LjMzMSk7XHJcbiAgICAtLWNvbG9yLWVycm9yLWljb246IG9rbGNoKDAuNTc3IDAuMjQ1IDI3LjMyNSk7XHJcbiAgICAtLWNvbG9yLWVycm9yLXRleHQ6IG9rbGNoKDAuMzk2IDAuMTQxIDI1LjcyMyk7XHJcbn1cclxuXHJcbioge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi50b2FzdC1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAyMHB4O1xyXG4gICAgcmlnaHQ6IDIwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgei1pbmRleDogOTk5OTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogZW5kO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogOHB4O1xyXG59XHJcblxyXG4udG9hc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAzMDBweDtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxuICAgIHBhZGRpbmctbGVmdDogMHJlbTtcclxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XHJcbiAgICBhbmltYXRpb246IHJldmVhbCAwLjNzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xyXG59XHJcblxyXG4udG9hc3QtY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxufVxyXG5cclxuLnRvYXN0LWljb24ge1xyXG4gICAgd2lkdGg6IDEuNzVyZW07XHJcbiAgICBoZWlnaHQ6IDEuNzVyZW07XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4udG9hc3QtY2xvc2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY29sb3I6IHJnYig1MSwgNTEsIDUxKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNsb3NlLWljb24ge1xyXG4gICAgd2lkdGg6IDFyZW07XHJcbiAgICBoZWlnaHQ6IDFyZW07XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcmV2ZWFsIHtcclxuICAgIHRvIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgIH1cclxufVxyXG5cclxuLyogVE9BU1QgU1RZTEVTICovXHJcbi50b2FzdC1zdWNjZXNzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtYmcpO1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtYm9yZGVyKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzLXRleHQpO1xyXG59XHJcblxyXG4udG9hc3QtZXJyb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItYmcpO1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLWJvcmRlcik7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItdGV4dCk7XHJcbn1cclxuXHJcbi50b2FzdC1zdWNjZXNzLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtaWNvbik7XHJcbn1cclxuXHJcbi50b2FzdC1lcnJvci1pY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvci1pY29uKTtcclxufSJdfQ== */";
219
+ styleInject(css_248z);
220
+
177
221
  var addToast;
178
222
  var toast = {
179
- show: function show(message) {
180
- addToast && addToast({
181
- message: message,
182
- type: 'default'
183
- });
184
- },
185
223
  success: function success(message) {
186
224
  addToast && addToast({
187
225
  message: message,
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/ToastContainer.jsx","../src/index.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport { _register } from './index.js';\r\nimport './global.css';\r\n\r\nexport default function ToastContainer() {\r\n const [toasts, setToasts] = useState([]);\r\n\r\n useEffect(() => {\r\n _register((toast) => {\r\n const newToast = { ...toast, id: Date.now() + Math.random() };\r\n setToasts((prev) => [newToast, ...prev]);\r\n\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== newToast.id));\r\n }, 3000);\r\n });\r\n }, []);\r\n\r\n return (\r\n <div className=\"toast-container\">\r\n {toasts.map((t) => (\r\n <div key={t.id} className={`toast toast-${t.type}`}>\r\n <div className=\"toast-content\">\r\n <svg className=\"toast-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fillRule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm13.707-1.293a1 1 0 0 0-1.414-1.414L11 12.586l-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4-4Z\" clipRule=\"evenodd\" />\r\n </svg>\r\n <p>{t.message}</p>\r\n </div>\r\n <button\r\n className=\"toast-close\"\r\n aria-label=\"Close\"\r\n onClick={() => setToasts((prev) => prev.filter((x) => x.id !== t.id))}\r\n >\r\n <svg className=\"close-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M6 18 17.94 6M18 18 6.06 6\" />\r\n </svg>\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}","import ToastContainer from './ToastContainer.jsx';\r\n\r\nlet addToast;\r\n\r\nconst toast = {\r\n show(message) {\r\n addToast && addToast({ message, type: 'default' });\r\n },\r\n success(message) {\r\n addToast && addToast({ message, type: 'success' });\r\n },\r\n error(message) {\r\n addToast && addToast({ message, type: 'error' });\r\n },\r\n};\r\n\r\nfunction _register(fn) {\r\n addToast = fn;\r\n}\r\n\r\nexport { ToastContainer, toast, _register };"],"names":["ToastContainer","_useState","useState","_useState2","_slicedToArray","toasts","setToasts","useEffect","_register","toast","newToast","_objectSpread","id","Date","now","Math","random","prev","concat","_toConsumableArray","setTimeout","filter","t","React","createElement","className","map","key","type","xmlns","width","height","fill","viewBox","fillRule","d","clipRule","message","onClick","x","stroke","strokeLinecap","strokeLinejoin","strokeWidth","addToast","show","success","error","fn"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/ToastContainer.jsx","../node_modules/style-inject/dist/style-inject.es.js","../src/index.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport { _register } from './index.js';\r\n\r\nexport default function ToastContainer({ duration = 3000 }) {\r\n const [toasts, setToasts] = useState([]);\r\n\r\n useEffect(() => {\r\n _register((toast) => {\r\n const newToast = { ...toast, id: Date.now() + Math.random() };\r\n setToasts((prev) => [newToast, ...prev]);\r\n\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== newToast.id));\r\n }, duration);\r\n });\r\n }, []);\r\n\r\n return (\r\n <div className=\"toast-container\">\r\n {toasts.map((t) => (\r\n <div key={t.id} className={`toast toast-${t.type}`}>\r\n <div className=\"toast-content\">\r\n {t.type === 'success' ? (\r\n <svg className={`toast-icon toast-${t.type}-icon`} aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fillRule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm13.707-1.293a1 1 0 0 0-1.414-1.414L11 12.586l-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4-4Z\" clipRule=\"evenodd\" />\r\n </svg>\r\n ) : (\r\n <svg className={`toast-icon toast-${t.type}-icon`} aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fillRule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm7.707-3.707a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293Z\" clipRule=\"evenodd\" />\r\n </svg>\r\n )}\r\n\r\n <p>{t.message}</p>\r\n </div>\r\n <button\r\n className=\"toast-close\"\r\n aria-label=\"Close\"\r\n onClick={() => setToasts((prev) => prev.filter((x) => x.id !== t.id))}\r\n >\r\n <svg className=\"close-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M6 18 17.94 6M18 18 6.06 6\" />\r\n </svg>\r\n </button>\r\n </div>\r\n ))\r\n }\r\n </div >\r\n );\r\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import ToastContainer from './ToastContainer.jsx';\r\nimport './global.css';\r\n\r\nlet addToast;\r\n\r\nconst toast = {\r\n success(message) {\r\n addToast && addToast({ message, type: 'success' });\r\n },\r\n error(message) {\r\n addToast && addToast({ message, type: 'error' });\r\n }\r\n};\r\n\r\nfunction _register(fn) {\r\n addToast = fn;\r\n}\r\n\r\nexport { ToastContainer, toast, _register };"],"names":["ToastContainer","_ref","_ref$duration","duration","_useState","useState","_useState2","_slicedToArray","toasts","setToasts","useEffect","_register","toast","newToast","_objectSpread","id","Date","now","Math","random","prev","concat","_toConsumableArray","setTimeout","filter","t","React","createElement","className","map","key","type","xmlns","width","height","fill","viewBox","fillRule","d","clipRule","message","onClick","x","stroke","strokeLinecap","strokeLinejoin","strokeWidth","addToast","success","error","fn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGe,SAASA,cAAcA,CAAAC,IAAA,EAAsB;AAAA,EAAA,IAAAC,aAAA,GAAAD,IAAA,CAAnBE,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,aAAA,CAAA;AACpD,EAAA,IAAAE,SAAA,GAA4BC,QAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAjCI,IAAAA,MAAM,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,SAAS,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAExBI,EAAAA,SAAS,CAAC,YAAM;IACZC,SAAS,CAAC,UAACC,KAAK,EAAK;AACjB,MAAA,IAAMC,QAAQ,GAAAC,cAAA,CAAAA,cAAA,KAAQF,KAAK,CAAA,EAAA,EAAA,EAAA;QAAEG,EAAE,EAAEC,IAAI,CAACC,GAAG,EAAE,GAAGC,IAAI,CAACC,MAAM,EAAC;OAAG,CAAA,CAAA;MAC7DV,SAAS,CAAC,UAACW,IAAI,EAAA;AAAA,QAAA,OAAA,CAAMP,QAAQ,CAAAQ,CAAAA,MAAA,CAAAC,kBAAA,CAAKF,IAAI,CAAA,CAAA,CAAA;AAAA,OAAC,CAAC,CAAA;AAExCG,MAAAA,UAAU,CAAC,YAAM;QACbd,SAAS,CAAC,UAACW,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAACI,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,YAAA,OAAKA,CAAC,CAACV,EAAE,KAAKF,QAAQ,CAACE,EAAE,CAAA;WAAC,CAAA,CAAA;SAAC,CAAA,CAAA;OAChE,EAAEZ,QAAQ,CAAC,CAAA;AAChB,KAAC,CAAC,CAAA;GACL,EAAE,EAAE,CAAC,CAAA;EAEN,oBACIuB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,iBAAA;AAAiB,GAAA,EAC3BpB,MAAM,CAACqB,GAAG,CAAC,UAACJ,CAAC,EAAA;IAAA,oBACVC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKG,GAAG,EAAEL,CAAC,CAACV,EAAG;AAACa,MAAAA,SAAS,EAAAP,cAAAA,CAAAA,MAAA,CAAiBI,CAAC,CAACM,IAAI,CAAA;KAC5CL,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,eAAA;KACVH,EAAAA,CAAC,CAACM,IAAI,KAAK,SAAS,gBACjBL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,sBAAAP,MAAA,CAAsBI,CAAC,CAACM,IAAI,EAAQ,OAAA,CAAA;AAAC,MAAA,aAAA,EAAY,MAAM;AAACC,MAAAA,KAAK,EAAC,4BAA4B;AAACC,MAAAA,KAAK,EAAC,IAAI;AAACC,MAAAA,MAAM,EAAC,IAAI;AAACC,MAAAA,IAAI,EAAC,cAAc;AAACC,MAAAA,OAAO,EAAC,WAAA;KACxJV,eAAAA,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMU,MAAAA,QAAQ,EAAC,SAAS;AAACC,MAAAA,CAAC,EAAC,wLAAwL;AAACC,MAAAA,QAAQ,EAAC,SAAA;AAAS,KAAE,CACvO,CAAC,gBAENb,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,sBAAAP,MAAA,CAAsBI,CAAC,CAACM,IAAI,EAAQ,OAAA,CAAA;AAAC,MAAA,aAAA,EAAY,MAAM;AAACC,MAAAA,KAAK,EAAC,4BAA4B;AAACC,MAAAA,KAAK,EAAC,IAAI;AAACC,MAAAA,MAAM,EAAC,IAAI;AAACC,MAAAA,IAAI,EAAC,cAAc;AAACC,MAAAA,OAAO,EAAC,WAAA;KACxJV,eAAAA,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMU,MAAAA,QAAQ,EAAC,SAAS;AAACC,MAAAA,CAAC,EAAC,uQAAuQ;AAACC,MAAAA,QAAQ,EAAC,SAAA;AAAS,KAAE,CACtT,CACR,eAEDb,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAIF,CAAC,CAACe,OAAW,CAChB,CAAC,eACNd,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACIC,MAAAA,SAAS,EAAC,aAAa;AACvB,MAAA,YAAA,EAAW,OAAO;MAClBa,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQhC,SAAS,CAAC,UAACW,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAACI,MAAM,CAAC,UAACkB,CAAC,EAAA;AAAA,YAAA,OAAKA,CAAC,CAAC3B,EAAE,KAAKU,CAAC,CAACV,EAAE,CAAA;WAAC,CAAA,CAAA;SAAC,CAAA,CAAA;AAAA,OAAA;KAErEW,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,YAAY;AAAC,MAAA,aAAA,EAAY,MAAM;AAACI,MAAAA,KAAK,EAAC,4BAA4B;AAACC,MAAAA,KAAK,EAAC,IAAI;AAACC,MAAAA,MAAM,EAAC,IAAI;AAACC,MAAAA,IAAI,EAAC,MAAM;AAACC,MAAAA,OAAO,EAAC,WAAA;KACzHV,eAAAA,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMgB,MAAAA,MAAM,EAAC,cAAc;AAACC,MAAAA,aAAa,EAAC,OAAO;AAACC,MAAAA,cAAc,EAAC,OAAO;AAACC,MAAAA,WAAW,EAAC,GAAG;AAACR,MAAAA,CAAC,EAAC,4BAAA;KAA8B,CACxH,CACD,CACP,CAAC,CAAA;AAAA,GACT,CAEC,CAAC,CAAA;AAEf;;AChDA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;ACtBA,IAAIS,QAAQ,CAAA;AAEZ,IAAMnC,KAAK,GAAG;AACVoC,EAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACR,OAAO,EAAE;IACbO,QAAQ,IAAIA,QAAQ,CAAC;AAAEP,MAAAA,OAAO,EAAPA,OAAO;AAAET,MAAAA,IAAI,EAAE,SAAA;AAAU,KAAC,CAAC,CAAA;GACrD;AACDkB,EAAAA,KAAK,EAALA,SAAAA,KAAKA,CAACT,OAAO,EAAE;IACXO,QAAQ,IAAIA,QAAQ,CAAC;AAAEP,MAAAA,OAAO,EAAPA,OAAO;AAAET,MAAAA,IAAI,EAAE,OAAA;AAAQ,KAAC,CAAC,CAAA;AACpD,GAAA;AACJ,EAAC;AAED,SAASpB,SAASA,CAACuC,EAAE,EAAE;AACnBH,EAAAA,QAAQ,GAAGG,EAAE,CAAA;AACjB;;;;","x_google_ignoreList":[1]}
package/dist/index.js CHANGED
@@ -106,7 +106,9 @@ function _unsupportedIterableToArray(r, a) {
106
106
  }
107
107
  }
108
108
 
109
- function ToastContainer() {
109
+ function ToastContainer(_ref) {
110
+ var _ref$duration = _ref.duration,
111
+ duration = _ref$duration === void 0 ? 3000 : _ref$duration;
110
112
  var _useState = React.useState([]),
111
113
  _useState2 = _slicedToArray(_useState, 2),
112
114
  toasts = _useState2[0],
@@ -125,7 +127,7 @@ function ToastContainer() {
125
127
  return t.id !== newToast.id;
126
128
  });
127
129
  });
128
- }, 3000);
130
+ }, duration);
129
131
  });
130
132
  }, []);
131
133
  return /*#__PURE__*/React.createElement("div", {
@@ -136,8 +138,8 @@ function ToastContainer() {
136
138
  className: "toast toast-".concat(t.type)
137
139
  }, /*#__PURE__*/React.createElement("div", {
138
140
  className: "toast-content"
139
- }, /*#__PURE__*/React.createElement("svg", {
140
- className: "toast-icon",
141
+ }, t.type === 'success' ? /*#__PURE__*/React.createElement("svg", {
142
+ className: "toast-icon toast-".concat(t.type, "-icon"),
141
143
  "aria-hidden": "true",
142
144
  xmlns: "http://www.w3.org/2000/svg",
143
145
  width: "28",
@@ -148,6 +150,18 @@ function ToastContainer() {
148
150
  fillRule: "evenodd",
149
151
  d: "M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm13.707-1.293a1 1 0 0 0-1.414-1.414L11 12.586l-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4-4Z",
150
152
  clipRule: "evenodd"
153
+ })) : /*#__PURE__*/React.createElement("svg", {
154
+ className: "toast-icon toast-".concat(t.type, "-icon"),
155
+ "aria-hidden": "true",
156
+ xmlns: "http://www.w3.org/2000/svg",
157
+ width: "28",
158
+ height: "28",
159
+ fill: "currentColor",
160
+ viewBox: "0 0 24 24"
161
+ }, /*#__PURE__*/React.createElement("path", {
162
+ fillRule: "evenodd",
163
+ d: "M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm7.707-3.707a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293Z",
164
+ clipRule: "evenodd"
151
165
  })), /*#__PURE__*/React.createElement("p", null, t.message)), /*#__PURE__*/React.createElement("button", {
152
166
  className: "toast-close",
153
167
  "aria-label": "Close",
@@ -176,14 +190,38 @@ function ToastContainer() {
176
190
  }));
177
191
  }
178
192
 
193
+ function styleInject(css, ref) {
194
+ if ( ref === void 0 ) ref = {};
195
+ var insertAt = ref.insertAt;
196
+
197
+ if (!css || typeof document === 'undefined') { return; }
198
+
199
+ var head = document.head || document.getElementsByTagName('head')[0];
200
+ var style = document.createElement('style');
201
+ style.type = 'text/css';
202
+
203
+ if (insertAt === 'top') {
204
+ if (head.firstChild) {
205
+ head.insertBefore(style, head.firstChild);
206
+ } else {
207
+ head.appendChild(style);
208
+ }
209
+ } else {
210
+ head.appendChild(style);
211
+ }
212
+
213
+ if (style.styleSheet) {
214
+ style.styleSheet.cssText = css;
215
+ } else {
216
+ style.appendChild(document.createTextNode(css));
217
+ }
218
+ }
219
+
220
+ var css_248z = ":root{--color-success-bg:oklch(0.962 0.044 156.743);--color-success-border:oklch(0.723 0.219 149.579);--color-success-icon:oklch(0.627 0.194 149.214);--color-success-text:oklch(0.393 0.095 152.535);--color-error-bg:oklch(0.936 0.032 17.717);--color-error-border:oklch(0.637 0.237 25.331);--color-error-icon:oklch(0.577 0.245 27.325);--color-error-text:oklch(0.396 0.141 25.723)}*{box-sizing:border-box;margin:0;padding:0}.toast-container{align-items:end;display:flex;flex-direction:column;gap:8px;height:100vh;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:start;animation:reveal .3s ease-in-out forwards;border-left:4px solid;border-radius:.375rem;display:flex;justify-content:space-between;opacity:0;padding:.5rem .5rem .5rem 0;transform:translateX(100%);width:300px}.toast-content{align-items:center;display:flex;padding:.5rem}.toast-icon{flex-shrink:0;height:1.75rem;margin-right:.5rem;width:1.75rem}.toast-close{background:none;border:none;color:#333;cursor:pointer;margin-left:1rem}.close-icon{height:1rem;width:1rem}@keyframes reveal{to{opacity:1;transform:translateX(0)}}.toast-success{background-color:var(--color-success-bg);border-left-color:var(--color-success-border);color:var(--color-success-text)}.toast-error{background-color:var(--color-error-bg);border-left-color:var(--color-error-border);color:var(--color-error-text)}.toast-success-icon{color:var(--color-success-icon)}.toast-error-icon{color:var(--color-error-icon)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFDSSw2Q0FBOEMsQ0FDOUMsaURBQWtELENBQ2xELCtDQUFnRCxDQUNoRCwrQ0FBZ0QsQ0FFaEQsMENBQTJDLENBQzNDLDhDQUErQyxDQUMvQyw0Q0FBNkMsQ0FDN0MsNENBQ0osQ0FFQSxFQUdJLHFCQUFzQixDQUZ0QixRQUFTLENBQ1QsU0FFSixDQUVBLGlCQU9JLGVBQWdCLENBRGhCLFlBQWEsQ0FFYixxQkFBc0IsQ0FDdEIsT0FBUSxDQUxSLFlBQWEsQ0FIYixjQUFlLENBRWYsVUFBVyxDQURYLFFBQVMsQ0FHVCxZQUtKLENBRUEsT0FFSSxpQkFBa0IsQ0FTbEIseUNBQTJDLENBSjNDLHFCQUFzQixDQUN0QixxQkFBdUIsQ0FQdkIsWUFBYSxDQUViLDZCQUE4QixDQU05QixTQUFVLENBSFYsMkJBQWtCLENBSWxCLDBCQUEyQixDQU4zQixXQVFKLENBRUEsZUFFSSxrQkFBbUIsQ0FEbkIsWUFBYSxDQUViLGFBQ0osQ0FFQSxZQUlJLGFBQWMsQ0FGZCxjQUFlLENBQ2Ysa0JBQW9CLENBRnBCLGFBSUosQ0FFQSxhQUVJLGVBQWdCLENBQ2hCLFdBQVksQ0FDWixVQUFzQixDQUN0QixjQUFlLENBSmYsZ0JBS0osQ0FFQSxZQUVJLFdBQVksQ0FEWixVQUVKLENBRUEsa0JBQ0ksR0FDSSxTQUFVLENBQ1YsdUJBQ0osQ0FDSixDQUdBLGVBQ0ksd0NBQXlDLENBQ3pDLDZDQUE4QyxDQUM5QywrQkFDSixDQUVBLGFBQ0ksc0NBQXVDLENBQ3ZDLDJDQUE0QyxDQUM1Qyw2QkFDSixDQUVBLG9CQUNJLCtCQUNKLENBRUEsa0JBQ0ksNkJBQ0oiLCJmaWxlIjoiZ2xvYmFsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpyb290IHtcclxuICAgIC0tY29sb3Itc3VjY2Vzcy1iZzogb2tsY2goMC45NjIgMC4wNDQgMTU2Ljc0Myk7XHJcbiAgICAtLWNvbG9yLXN1Y2Nlc3MtYm9yZGVyOiBva2xjaCgwLjcyMyAwLjIxOSAxNDkuNTc5KTtcclxuICAgIC0tY29sb3Itc3VjY2Vzcy1pY29uOiBva2xjaCgwLjYyNyAwLjE5NCAxNDkuMjE0KTtcclxuICAgIC0tY29sb3Itc3VjY2Vzcy10ZXh0OiBva2xjaCgwLjM5MyAwLjA5NSAxNTIuNTM1KTtcclxuXHJcbiAgICAtLWNvbG9yLWVycm9yLWJnOiBva2xjaCgwLjkzNiAwLjAzMiAxNy43MTcpO1xyXG4gICAgLS1jb2xvci1lcnJvci1ib3JkZXI6IG9rbGNoKDAuNjM3IDAuMjM3IDI1LjMzMSk7XHJcbiAgICAtLWNvbG9yLWVycm9yLWljb246IG9rbGNoKDAuNTc3IDAuMjQ1IDI3LjMyNSk7XHJcbiAgICAtLWNvbG9yLWVycm9yLXRleHQ6IG9rbGNoKDAuMzk2IDAuMTQxIDI1LjcyMyk7XHJcbn1cclxuXHJcbioge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi50b2FzdC1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAyMHB4O1xyXG4gICAgcmlnaHQ6IDIwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgei1pbmRleDogOTk5OTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogZW5kO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogOHB4O1xyXG59XHJcblxyXG4udG9hc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAzMDBweDtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxuICAgIHBhZGRpbmctbGVmdDogMHJlbTtcclxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XHJcbiAgICBhbmltYXRpb246IHJldmVhbCAwLjNzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xyXG59XHJcblxyXG4udG9hc3QtY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxufVxyXG5cclxuLnRvYXN0LWljb24ge1xyXG4gICAgd2lkdGg6IDEuNzVyZW07XHJcbiAgICBoZWlnaHQ6IDEuNzVyZW07XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4udG9hc3QtY2xvc2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY29sb3I6IHJnYig1MSwgNTEsIDUxKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNsb3NlLWljb24ge1xyXG4gICAgd2lkdGg6IDFyZW07XHJcbiAgICBoZWlnaHQ6IDFyZW07XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcmV2ZWFsIHtcclxuICAgIHRvIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgIH1cclxufVxyXG5cclxuLyogVE9BU1QgU1RZTEVTICovXHJcbi50b2FzdC1zdWNjZXNzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtYmcpO1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtYm9yZGVyKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzLXRleHQpO1xyXG59XHJcblxyXG4udG9hc3QtZXJyb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItYmcpO1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLWJvcmRlcik7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItdGV4dCk7XHJcbn1cclxuXHJcbi50b2FzdC1zdWNjZXNzLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtaWNvbik7XHJcbn1cclxuXHJcbi50b2FzdC1lcnJvci1pY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvci1pY29uKTtcclxufSJdfQ== */";
221
+ styleInject(css_248z);
222
+
179
223
  var addToast;
180
224
  var toast = {
181
- show: function show(message) {
182
- addToast && addToast({
183
- message: message,
184
- type: 'default'
185
- });
186
- },
187
225
  success: function success(message) {
188
226
  addToast && addToast({
189
227
  message: message,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/ToastContainer.jsx","../src/index.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport { _register } from './index.js';\r\nimport './global.css';\r\n\r\nexport default function ToastContainer() {\r\n const [toasts, setToasts] = useState([]);\r\n\r\n useEffect(() => {\r\n _register((toast) => {\r\n const newToast = { ...toast, id: Date.now() + Math.random() };\r\n setToasts((prev) => [newToast, ...prev]);\r\n\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== newToast.id));\r\n }, 3000);\r\n });\r\n }, []);\r\n\r\n return (\r\n <div className=\"toast-container\">\r\n {toasts.map((t) => (\r\n <div key={t.id} className={`toast toast-${t.type}`}>\r\n <div className=\"toast-content\">\r\n <svg className=\"toast-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fillRule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm13.707-1.293a1 1 0 0 0-1.414-1.414L11 12.586l-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4-4Z\" clipRule=\"evenodd\" />\r\n </svg>\r\n <p>{t.message}</p>\r\n </div>\r\n <button\r\n className=\"toast-close\"\r\n aria-label=\"Close\"\r\n onClick={() => setToasts((prev) => prev.filter((x) => x.id !== t.id))}\r\n >\r\n <svg className=\"close-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M6 18 17.94 6M18 18 6.06 6\" />\r\n </svg>\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}","import ToastContainer from './ToastContainer.jsx';\r\n\r\nlet addToast;\r\n\r\nconst toast = {\r\n show(message) {\r\n addToast && addToast({ message, type: 'default' });\r\n },\r\n success(message) {\r\n addToast && addToast({ message, type: 'success' });\r\n },\r\n error(message) {\r\n addToast && addToast({ message, type: 'error' });\r\n },\r\n};\r\n\r\nfunction _register(fn) {\r\n addToast = fn;\r\n}\r\n\r\nexport { ToastContainer, toast, _register };"],"names":["ToastContainer","_useState","useState","_useState2","_slicedToArray","toasts","setToasts","useEffect","_register","toast","newToast","_objectSpread","id","Date","now","Math","random","prev","concat","_toConsumableArray","setTimeout","filter","t","React","createElement","className","map","key","type","xmlns","width","height","fill","viewBox","fillRule","d","clipRule","message","onClick","x","stroke","strokeLinecap","strokeLinejoin","strokeWidth","addToast","show","success","error","fn"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/ToastContainer.jsx","../node_modules/style-inject/dist/style-inject.es.js","../src/index.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport { _register } from './index.js';\r\n\r\nexport default function ToastContainer({ duration = 3000 }) {\r\n const [toasts, setToasts] = useState([]);\r\n\r\n useEffect(() => {\r\n _register((toast) => {\r\n const newToast = { ...toast, id: Date.now() + Math.random() };\r\n setToasts((prev) => [newToast, ...prev]);\r\n\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== newToast.id));\r\n }, duration);\r\n });\r\n }, []);\r\n\r\n return (\r\n <div className=\"toast-container\">\r\n {toasts.map((t) => (\r\n <div key={t.id} className={`toast toast-${t.type}`}>\r\n <div className=\"toast-content\">\r\n {t.type === 'success' ? (\r\n <svg className={`toast-icon toast-${t.type}-icon`} aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fillRule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm13.707-1.293a1 1 0 0 0-1.414-1.414L11 12.586l-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4-4Z\" clipRule=\"evenodd\" />\r\n </svg>\r\n ) : (\r\n <svg className={`toast-icon toast-${t.type}-icon`} aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fillRule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm7.707-3.707a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293Z\" clipRule=\"evenodd\" />\r\n </svg>\r\n )}\r\n\r\n <p>{t.message}</p>\r\n </div>\r\n <button\r\n className=\"toast-close\"\r\n aria-label=\"Close\"\r\n onClick={() => setToasts((prev) => prev.filter((x) => x.id !== t.id))}\r\n >\r\n <svg className=\"close-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M6 18 17.94 6M18 18 6.06 6\" />\r\n </svg>\r\n </button>\r\n </div>\r\n ))\r\n }\r\n </div >\r\n );\r\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import ToastContainer from './ToastContainer.jsx';\r\nimport './global.css';\r\n\r\nlet addToast;\r\n\r\nconst toast = {\r\n success(message) {\r\n addToast && addToast({ message, type: 'success' });\r\n },\r\n error(message) {\r\n addToast && addToast({ message, type: 'error' });\r\n }\r\n};\r\n\r\nfunction _register(fn) {\r\n addToast = fn;\r\n}\r\n\r\nexport { ToastContainer, toast, _register };"],"names":["ToastContainer","_ref","_ref$duration","duration","_useState","useState","_useState2","_slicedToArray","toasts","setToasts","useEffect","_register","toast","newToast","_objectSpread","id","Date","now","Math","random","prev","concat","_toConsumableArray","setTimeout","filter","t","React","createElement","className","map","key","type","xmlns","width","height","fill","viewBox","fillRule","d","clipRule","message","onClick","x","stroke","strokeLinecap","strokeLinejoin","strokeWidth","addToast","success","error","fn"],"mappings":"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","x_google_ignoreList":[1]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-toast-msg",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "A lightweight, customizable React toast notification library with zero-config and fast setup.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.es.js",
package/dist/index.css DELETED
@@ -1,2 +0,0 @@
1
- :root{--color-success-bg:oklch(0.962 0.044 156.743);--color-success-border:oklch(0.723 0.219 149.579);--color-success-text:oklch(0.393 0.095 152.535);--color-success-icon:oklch(0.627 0.194 149.214)}*{box-sizing:border-box;margin:0;padding:0}.toast-container{display:flex;flex-direction:column;gap:8px;left:50%;max-width:90vw;position:fixed;top:20px;transform:translateX(-50%);width:auto;z-index:9999}.toast{align-items:start;animation:fadeInOut 3s ease-in-out forwards;border-left:4px solid;border-radius:.375rem;display:flex;justify-content:space-between;opacity:0;padding:.5rem .5rem .5rem 0;width:300px}.toast-success{background-color:var(--color-success-bg);border-left-color:var(--color-success-border);color:var(--color-success-text)}.toast-content{align-items:center;display:flex;padding:.5rem}.toast-icon{color:var(--color-success-icon);flex-shrink:0;height:1.75rem;margin-right:.5rem;width:1.75rem}.toast-close{background:none;border:none;color:var(--color-success-text);cursor:pointer;margin-left:1rem}.close-icon{height:1rem;width:1rem}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-10px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
2
- /*# sourceMappingURL=index.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["global.css"],"names":[],"mappings":"AAAA,MACI,6CAA8C,CAC9C,iDAAkD,CAClD,+CAAgD,CAChD,+CACJ,CAEA,EAGI,qBAAsB,CAFtB,QAAS,CACT,SAEJ,CAEA,iBAMI,YAAa,CACb,qBAAsB,CACtB,OAAQ,CALR,QAAS,CAOT,cAAe,CATf,cAAe,CACf,QAAS,CAET,0BAA2B,CAK3B,UAAW,CAJX,YAMJ,CAEA,OAEI,iBAAkB,CAQlB,2CAA4C,CAH5C,qBAAsB,CACtB,qBAAuB,CAPvB,YAAa,CAEb,6BAA8B,CAM9B,SAAU,CAHV,2BAAkB,CAFlB,WAOJ,CAEA,eACI,wCAAyC,CACzC,6CAA8C,CAC9C,+BACJ,CAEA,eAEI,kBAAmB,CADnB,YAAa,CAEb,aACJ,CAEA,YAII,+BAAgC,CAChC,aAAc,CAHd,cAAe,CACf,kBAAoB,CAFpB,aAKJ,CAEA,aAEI,eAAgB,CAChB,WAAY,CACZ,+BAAgC,CAChC,cAAe,CAJf,gBAKJ,CAEA,YAEI,WAAY,CADZ,UAEJ,CAEA,qBACI,GACI,SAAU,CACV,2BACJ,CAEA,IACI,SAAU,CACV,uBACJ,CAEA,IACI,SAAU,CACV,uBACJ,CAEA,GACI,SAAU,CACV,2BACJ,CACJ","file":"index.css","sourcesContent":[":root {\r\n --color-success-bg: oklch(0.962 0.044 156.743);\r\n --color-success-border: oklch(0.723 0.219 149.579);\r\n --color-success-text: oklch(0.393 0.095 152.535);\r\n --color-success-icon: oklch(0.627 0.194 149.214);\r\n}\r\n\r\n* {\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.toast-container {\r\n position: fixed;\r\n top: 20px;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n z-index: 9999;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n width: auto;\r\n max-width: 90vw;\r\n}\r\n\r\n.toast {\r\n display: flex;\r\n align-items: start;\r\n justify-content: space-between;\r\n width: 300px;\r\n padding: 0.5rem;\r\n padding-left: 0rem;\r\n border-left: 4px solid;\r\n border-radius: 0.375rem;\r\n opacity: 0;\r\n animation: fadeInOut 3s ease-in-out forwards;\r\n}\r\n\r\n.toast-success {\r\n background-color: var(--color-success-bg);\r\n border-left-color: var(--color-success-border);\r\n color: var(--color-success-text);\r\n}\r\n\r\n.toast-content {\r\n display: flex;\r\n align-items: center;\r\n padding: 0.5rem;\r\n}\r\n\r\n.toast-icon {\r\n width: 1.75rem;\r\n height: 1.75rem;\r\n margin-right: 0.5rem;\r\n color: var(--color-success-icon);\r\n flex-shrink: 0;\r\n}\r\n\r\n.toast-close {\r\n margin-left: 1rem;\r\n background: none;\r\n border: none;\r\n color: var(--color-success-text);\r\n cursor: pointer;\r\n}\r\n\r\n.close-icon {\r\n width: 1rem;\r\n height: 1rem;\r\n}\r\n\r\n@keyframes fadeInOut {\r\n 0% {\r\n opacity: 0;\r\n transform: translateY(-10px);\r\n }\r\n\r\n 10% {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n\r\n 90% {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n\r\n 100% {\r\n opacity: 0;\r\n transform: translateY(-10px);\r\n }\r\n}"]}
package/dist/index.es.css DELETED
@@ -1,2 +0,0 @@
1
- :root{--color-success-bg:oklch(0.962 0.044 156.743);--color-success-border:oklch(0.723 0.219 149.579);--color-success-text:oklch(0.393 0.095 152.535);--color-success-icon:oklch(0.627 0.194 149.214)}*{box-sizing:border-box;margin:0;padding:0}.toast-container{display:flex;flex-direction:column;gap:8px;left:50%;max-width:90vw;position:fixed;top:20px;transform:translateX(-50%);width:auto;z-index:9999}.toast{align-items:start;animation:fadeInOut 3s ease-in-out forwards;border-left:4px solid;border-radius:.375rem;display:flex;justify-content:space-between;opacity:0;padding:.5rem .5rem .5rem 0;width:300px}.toast-success{background-color:var(--color-success-bg);border-left-color:var(--color-success-border);color:var(--color-success-text)}.toast-content{align-items:center;display:flex;padding:.5rem}.toast-icon{color:var(--color-success-icon);flex-shrink:0;height:1.75rem;margin-right:.5rem;width:1.75rem}.toast-close{background:none;border:none;color:var(--color-success-text);cursor:pointer;margin-left:1rem}.close-icon{height:1rem;width:1rem}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-10px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
2
- /*# sourceMappingURL=index.es.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["global.css"],"names":[],"mappings":"AAAA,MACI,6CAA8C,CAC9C,iDAAkD,CAClD,+CAAgD,CAChD,+CACJ,CAEA,EAGI,qBAAsB,CAFtB,QAAS,CACT,SAEJ,CAEA,iBAMI,YAAa,CACb,qBAAsB,CACtB,OAAQ,CALR,QAAS,CAOT,cAAe,CATf,cAAe,CACf,QAAS,CAET,0BAA2B,CAK3B,UAAW,CAJX,YAMJ,CAEA,OAEI,iBAAkB,CAQlB,2CAA4C,CAH5C,qBAAsB,CACtB,qBAAuB,CAPvB,YAAa,CAEb,6BAA8B,CAM9B,SAAU,CAHV,2BAAkB,CAFlB,WAOJ,CAEA,eACI,wCAAyC,CACzC,6CAA8C,CAC9C,+BACJ,CAEA,eAEI,kBAAmB,CADnB,YAAa,CAEb,aACJ,CAEA,YAII,+BAAgC,CAChC,aAAc,CAHd,cAAe,CACf,kBAAoB,CAFpB,aAKJ,CAEA,aAEI,eAAgB,CAChB,WAAY,CACZ,+BAAgC,CAChC,cAAe,CAJf,gBAKJ,CAEA,YAEI,WAAY,CADZ,UAEJ,CAEA,qBACI,GACI,SAAU,CACV,2BACJ,CAEA,IACI,SAAU,CACV,uBACJ,CAEA,IACI,SAAU,CACV,uBACJ,CAEA,GACI,SAAU,CACV,2BACJ,CACJ","file":"index.es.css","sourcesContent":[":root {\r\n --color-success-bg: oklch(0.962 0.044 156.743);\r\n --color-success-border: oklch(0.723 0.219 149.579);\r\n --color-success-text: oklch(0.393 0.095 152.535);\r\n --color-success-icon: oklch(0.627 0.194 149.214);\r\n}\r\n\r\n* {\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.toast-container {\r\n position: fixed;\r\n top: 20px;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n z-index: 9999;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n width: auto;\r\n max-width: 90vw;\r\n}\r\n\r\n.toast {\r\n display: flex;\r\n align-items: start;\r\n justify-content: space-between;\r\n width: 300px;\r\n padding: 0.5rem;\r\n padding-left: 0rem;\r\n border-left: 4px solid;\r\n border-radius: 0.375rem;\r\n opacity: 0;\r\n animation: fadeInOut 3s ease-in-out forwards;\r\n}\r\n\r\n.toast-success {\r\n background-color: var(--color-success-bg);\r\n border-left-color: var(--color-success-border);\r\n color: var(--color-success-text);\r\n}\r\n\r\n.toast-content {\r\n display: flex;\r\n align-items: center;\r\n padding: 0.5rem;\r\n}\r\n\r\n.toast-icon {\r\n width: 1.75rem;\r\n height: 1.75rem;\r\n margin-right: 0.5rem;\r\n color: var(--color-success-icon);\r\n flex-shrink: 0;\r\n}\r\n\r\n.toast-close {\r\n margin-left: 1rem;\r\n background: none;\r\n border: none;\r\n color: var(--color-success-text);\r\n cursor: pointer;\r\n}\r\n\r\n.close-icon {\r\n width: 1rem;\r\n height: 1rem;\r\n}\r\n\r\n@keyframes fadeInOut {\r\n 0% {\r\n opacity: 0;\r\n transform: translateY(-10px);\r\n }\r\n\r\n 10% {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n\r\n 90% {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n\r\n 100% {\r\n opacity: 0;\r\n transform: translateY(-10px);\r\n }\r\n}"]}