diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php
new file mode 100644
index 0000000..1c38d85
--- /dev/null
+++ b/app/Http/Controllers/CategoryController.php
@@ -0,0 +1,67 @@
+ Category::orderBy('created_at', 'desc')->paginate(5)
+ ]);
+ }
+
+ public function store(Request $request)
+ {
+ $request->validate([
+ 'name' => 'required|string|max:255',
+ 'description' => 'required|string|max:255',
+ 'amount' => 'required|numeric|max:999999999|min:1'
+ ]);
+
+ $category = Category::create([
+ 'name' => $request->name,
+ 'description' => $request->description,
+ 'default_budget' => $request->amount
+ ]);
+
+ $category->budgets()->create([
+ 'budget' => $request->amount,
+ 'start_date' => now()->toDateString(),
+ 'end_date' => now()->endOfMonth()->toDateString(),
+ ]);
+
+ return redirect()->route('categories');
+ }
+
+ public function update(Request $request, Category $category)
+ {
+ $request->validate([
+ 'name' => 'required|string|max:255',
+ 'description' => 'required|string|max:255',
+ 'amount' => 'required|numeric|max:999999999|min:1'
+ ]);
+
+ $category->update([
+ 'name' => $request->name,
+ 'description' => $request->description,
+ 'default_budget' => $request->amount
+ ]);
+
+ $budget = $category->budgets()->whereDate('end_date', now()->endOfMonth()->toDateString());
+ $budget->update(['budget' => $request->amount]);
+
+ return redirect()->route('categories');
+ }
+
+ public function destroy(Category $category)
+ {
+ $category->budgets()->delete();
+ $category->delete();
+
+ return redirect()->route('categories');
+ }
+}
diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php
index b0f4b43..fdc970e 100644
--- a/app/Http/Controllers/ExpenseController.php
+++ b/app/Http/Controllers/ExpenseController.php
@@ -10,4 +10,19 @@ class ExpenseController extends Controller
{
return inertia('Transaction');
}
+
+ public function store()
+ {
+ //
+ }
+
+ public function update()
+ {
+ //
+ }
+
+ public function destroy()
+ {
+ //
+ }
}
diff --git a/app/Models/Category.php b/app/Models/Category.php
index 66bddb1..2e02bdd 100644
--- a/app/Models/Category.php
+++ b/app/Models/Category.php
@@ -15,4 +15,14 @@ class Category extends Model
'description',
'default_budget'
];
+
+ public function budgets()
+ {
+ return $this->hasMany(Budget::class);
+ }
+
+ public function transactions()
+ {
+ return $this->hasMany(Transaction::class);
+ }
}
diff --git a/config/database.php b/config/database.php
index b42d9b3..f69b957 100644
--- a/config/database.php
+++ b/config/database.php
@@ -38,7 +38,7 @@ return [
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
- 'database' => env('DB_DATABASE', database_path('database.sqlite')),
+ 'database' => database_path('database.sqlite'),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
diff --git a/database/.gitignore b/database/.gitignore
index 9b19b93..92ce9c7 100644
--- a/database/.gitignore
+++ b/database/.gitignore
@@ -1 +1,2 @@
*.sqlite*
+!database.sqlite
\ No newline at end of file
diff --git a/database/database.sqlite b/database/database.sqlite
new file mode 100644
index 0000000..b9ce1ed
Binary files /dev/null and b/database/database.sqlite differ
diff --git a/package-lock.json b/package-lock.json
index d953744..b8eee3c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2357,6 +2357,11 @@
"safe-buffer": "^5.0.1"
}
},
+ "classnames": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
+ "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
+ },
"clean-css": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz",
@@ -2413,6 +2418,11 @@
"shallow-clone": "^3.0.0"
}
},
+ "clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
+ },
"collect.js": {
"version": "4.29.3",
"resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.29.3.tgz",
@@ -5971,6 +5981,14 @@
"scheduler": "^0.20.2"
}
},
+ "react-toastify": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-8.1.0.tgz",
+ "integrity": "sha512-M+Q3rTmEw/53Csr7NsV/YnldJe4c7uERcY7Tma9mvLU98QT2VhIkKwjBzzxZkJRk/oBKyUAtkyMjMgO00hx6gQ==",
+ "requires": {
+ "clsx": "^1.1.1"
+ }
+ },
"read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
diff --git a/package.json b/package.json
index 2760153..c2297dd 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,8 @@
"tailwindcss": "^2.1.2"
},
"dependencies": {
- "daisyui": "^1.16.4"
+ "classnames": "^2.3.1",
+ "daisyui": "^1.16.4",
+ "react-toastify": "^8.1.0"
}
}
diff --git a/public/css/app.css b/public/css/app.css
index fe52f57..353246d 100644
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -1372,13 +1372,6 @@ html {
--tw-shadow: 0 0 0 1px var(--border-color) !important;
}
-[data-theme=lofi] *:where(.badge) {
- border-color: var(--border-color) !important;
- --tw-border-opacity: 1 !important;
- --tw-text-opacity: 1 !important;
- --tw-shadow: 0 0 0 1px var(--border-color) !important;
-}
-
[data-theme=lofi] *:where(.card) {
border-color: var(--border-color) !important;
--tw-border-opacity: 1 !important;
@@ -1638,35 +1631,40 @@ html {
--tab-border: 1px;
--tab-radius: 0.5rem;
}
-.avatar.placeholder>div {
+.alert>:not([hidden])~:not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0.5rem*(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0.5rem*var(--tw-space-y-reverse));
+}
+.alert {
display: flex;
+ flex-direction: column;
align-items: center;
- justify-content: center;
+ justify-content: space-between;
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--b2)/var(--tw-bg-opacity,1));
+ padding: 1rem;
+ border-radius: var(--rounded-box,1rem);
}
-.badge {
- display: inline-flex;
+@media (min-width:768px) {
+
+ .alert>:not([hidden])~:not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0px*(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0px*var(--tw-space-y-reverse));
+ }
+
+ .alert {
+ flex-direction: row;
+ }
+}
+.alert>* {
+ display: flex;
+}
+.avatar.placeholder>div {
+ display: flex;
align-items: center;
justify-content: center;
- transition-property: background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;
- transition-duration: .15s;
- transition-duration: .2s;
- transition-timing-function: cubic-bezier(.4,0,.2,1);
- height: 1.25rem;
- font-size: .875rem;
- line-height: 1.25rem;
- width: -webkit-fit-content;
- width: -moz-fit-content;
- width: fit-content;
- padding-left: .563rem;
- padding-right: .563rem;
- --tw-bg-opacity: 1;
- background-color: hsla(var(--n)/var(--tw-bg-opacity,1));
- --tw-border-opacity: 1;
- border-color: hsla(var(--n)/var(--tw-border-opacity,1));
- border-width: 1px;
- --tw-text-opacity: 1;
- color: hsla(var(--nc)/var(--tw-text-opacity,1));
- border-radius: var(--rounded-badge,1.9rem);
}
.btn {
border-color: transparent;
@@ -1935,12 +1933,6 @@ html {
--tw-text-opacity: 1;
color: hsla(var(--b2)/var(--tw-text-opacity,1));
}
-.btn-outline .badge {
- --tw-border-opacity: 1;
- border-color: hsla(var(--nf)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--nc)/var(--tw-text-opacity,1));
-}
.btn-outline.btn-primary .badge {
--tw-bg-opacity: 1;
background-color: hsla(var(--p)/var(--tw-bg-opacity,1));
@@ -1957,18 +1949,12 @@ html {
--tw-text-opacity: 1;
color: hsla(var(--sc)/var(--tw-text-opacity,1));
}
-.btn-outline.btn-accent .badge {
- --tw-bg-opacity: 1;
- background-color: hsla(var(--a)/var(--tw-bg-opacity,1));
- --tw-border-opacity: 1;
- border-color: hsla(var(--a)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--ac)/var(--tw-text-opacity,1));
-}
-.btn-outline .badge.outline {
+.btn-outline.btn-primary .badge-outline {
background-color: transparent;
--tw-border-opacity: 1;
- border-color: hsla(var(--nf)/var(--tw-border-opacity,1));
+ border-color: hsla(var(--p)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--p)/var(--tw-text-opacity,1));
}
.btn-outline.btn-secondary .badge-outline {
background-color: transparent;
@@ -1977,20 +1963,6 @@ html {
--tw-text-opacity: 1;
color: hsla(var(--s)/var(--tw-text-opacity,1));
}
-.btn-outline:hover .badge {
- --tw-bg-opacity: 1;
- background-color: hsla(var(--b2)/var(--tw-bg-opacity,1));
- --tw-border-opacity: 1;
- border-color: hsla(var(--b2)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--bc)/var(--tw-text-opacity,1));
-}
-.btn-outline:hover .badge.outline {
- --tw-border-opacity: 1;
- border-color: hsla(var(--b2)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--nc)/var(--tw-text-opacity,1));
-}
.btn-outline.btn-primary:hover .badge {
--tw-bg-opacity: 1;
background-color: hsla(var(--pc)/var(--tw-bg-opacity,1));
@@ -2023,22 +1995,6 @@ html {
--tw-text-opacity: 1;
color: hsla(var(--sc)/var(--tw-text-opacity,1));
}
-.btn-outline.btn-accent:hover .badge {
- --tw-bg-opacity: 1;
- background-color: hsla(var(--ac)/var(--tw-bg-opacity,1));
- --tw-border-opacity: 1;
- border-color: hsla(var(--ac)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--a)/var(--tw-text-opacity,1));
-}
-.btn-outline.btn-accent:hover .badge.outline {
- --tw-bg-opacity: 1;
- background-color: hsla(var(--af)/var(--tw-bg-opacity,1));
- --tw-border-opacity: 1;
- border-color: hsla(var(--ac)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--ac)/var(--tw-text-opacity,1));
-}
.btn:active:focus,.btn:active:hover {
-webkit-animation: none;
animation: none;
@@ -2053,6 +2009,23 @@ html {
.btn:focus-visible {
box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--nf));
}
+.btn-primary {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--p)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--p)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--pc)/var(--tw-text-opacity,1));
+}
+.btn-primary.btn-active,.btn-primary:hover {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--pf)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--pf)/var(--tw-border-opacity,1));
+}
+.btn-primary:focus-visible {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--p));
+}
.btn-secondary {
--tw-bg-opacity: 1;
background-color: hsla(var(--s)/var(--tw-bg-opacity,1));
@@ -2070,6 +2043,40 @@ html {
.btn-secondary:focus-visible {
box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--s));
}
+.btn-warning {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--wa)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--wa)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--b2)/var(--tw-text-opacity,1));
+}
+.btn-warning.btn-active,.btn-warning:hover {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--wa)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--wa)/var(--tw-border-opacity,1));
+}
+.btn-warning:focus-visible {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--wa));
+}
+.btn-error {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--er)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--er)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--b2)/var(--tw-text-opacity,1));
+}
+.btn-error.btn-active,.btn-error:hover {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--er)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--er)/var(--tw-border-opacity,1));
+}
+.btn-error:focus-visible {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--er));
+}
.btn.glass.btn-active,.btn.glass:hover {
--glass-opacity: 25%;
--glass-border-opacity: 15%;
@@ -2077,6 +2084,18 @@ html {
.btn.glass:focus-visible {
box-shadow: 0 0 0 2px currentColor;
}
+.btn-outline.btn-primary {
+ --tw-text-opacity: 1;
+ color: hsla(var(--p)/var(--tw-text-opacity,1));
+}
+.btn-outline.btn-primary:hover {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--pf)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--pf)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--pc)/var(--tw-text-opacity,1));
+}
.btn-outline.btn-secondary {
--tw-text-opacity: 1;
color: hsla(var(--s)/var(--tw-text-opacity,1));
@@ -2089,6 +2108,30 @@ html {
--tw-text-opacity: 1;
color: hsla(var(--sc)/var(--tw-text-opacity,1));
}
+.btn-outline.btn-warning {
+ --tw-text-opacity: 1;
+ color: hsla(var(--wa)/var(--tw-text-opacity,1));
+}
+.btn-outline.btn-warning:hover {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--wa)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--wa)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--nc)/var(--tw-text-opacity,1));
+}
+.btn-outline.btn-error {
+ --tw-text-opacity: 1;
+ color: hsla(var(--er)/var(--tw-text-opacity,1));
+}
+.btn-outline.btn-error:hover {
+ --tw-bg-opacity: 1;
+ background-color: hsla(var(--er)/var(--tw-bg-opacity,1));
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--er)/var(--tw-border-opacity,1));
+ --tw-text-opacity: 1;
+ color: hsla(var(--nc)/var(--tw-text-opacity,1));
+}
.btn.loading.btn-circle:before,.btn.loading.btn-square:before {
margin-right: 0;
}
@@ -2164,12 +2207,6 @@ html {
.card.compact .card-title {
margin-bottom: .25rem;
}
-.card-title {
- font-weight: 600;
- font-size: 1.25rem;
- line-height: 1.75rem;
- margin-bottom: .75rem;
-}
.card-actions:first-child {
margin-bottom: .5rem;
}
@@ -2237,15 +2274,30 @@ html {
background-position-y: 0;
}
}
+.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-primary {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--p));
+}
.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-secondary {
box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--s));
}
+.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-warning {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--wa));
+}
+.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-error {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--er));
+}
.label-text {
font-size: .875rem;
line-height: 1.25rem;
--tw-text-opacity: 1;
color: hsla(var(--bc)/var(--tw-text-opacity,1));
}
+.label-text-alt {
+ font-size: .75rem;
+ line-height: 1rem;
+ --tw-text-opacity: 1;
+ color: hsla(var(--bc)/var(--tw-text-opacity,1));
+}
.label a:hover {
--tw-text-opacity: 1;
color: hsla(var(--bc)/var(--tw-text-opacity,1));
@@ -2253,6 +2305,13 @@ html {
.input-bordered {
--tw-border-opacity: 0.2;
}
+.input-error {
+ --tw-border-opacity: 1;
+ border-color: hsla(var(--er)/var(--tw-border-opacity,1));
+}
+.input-error:focus {
+ box-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsl(var(--er));
+}
.input-disabled,.input[disabled] {
--tw-bg-opacity: 1;
background-color: hsla(var(--b2)/var(--tw-bg-opacity,1));
@@ -2441,18 +2500,6 @@ html {
--tw-bg-opacity: 1;
background-color: hsla(var(--b2)/var(--tw-bg-opacity,1));
}
-.badge-secondary {
- --tw-bg-opacity: 1;
- background-color: hsla(var(--s)/var(--tw-bg-opacity,1));
- --tw-border-opacity: 1;
- border-color: hsla(var(--s)/var(--tw-border-opacity,1));
- --tw-text-opacity: 1;
- color: hsla(var(--sc)/var(--tw-text-opacity,1));
-}
-.badge-outline.badge-secondary {
- --tw-text-opacity: 1;
- color: hsla(var(--s)/var(--tw-text-opacity,1));
-}
.fixed {
position: fixed;
}
@@ -2477,6 +2524,12 @@ html {
.left-0 {
left: 0px;
}
+.top-10 {
+ top: 2.5rem;
+}
+.right-5 {
+ right: 1.25rem;
+}
.z-0 {
z-index: 0;
}
@@ -2490,9 +2543,9 @@ html {
margin-left: auto;
margin-right: auto;
}
-.mx-2 {
- margin-left: 0.5rem;
- margin-right: 0.5rem;
+.mx-1 {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem;
}
.ml-3 {
margin-left: 0.75rem;
@@ -2527,23 +2580,32 @@ html {
.-mt-px {
margin-top: -1px;
}
+.mr-1 {
+ margin-right: 0.25rem;
+}
+.mb-1 {
+ margin-bottom: 0.25rem;
+}
+.mt-6 {
+ margin-top: 1.5rem;
+}
+.-mb-1 {
+ margin-bottom: -0.25rem;
+}
.mb-4 {
margin-bottom: 1rem;
}
.mt-3 {
margin-top: 0.75rem;
}
-.-mr-0\.5 {
- margin-right: -0.125rem;
-}
-.-mr-0 {
- margin-right: 0px;
-}
.-mr-2 {
margin-right: -0.5rem;
}
-.mt-6 {
- margin-top: 1.5rem;
+.mb-2 {
+ margin-bottom: 0.5rem;
+}
+.mr-3 {
+ margin-right: 0.75rem;
}
.mt-1 {
margin-top: 0.25rem;
@@ -2578,9 +2640,6 @@ html {
.h-9 {
height: 2.25rem;
}
-.h-4 {
- height: 1rem;
-}
.h-6 {
height: 1.5rem;
}
@@ -2605,24 +2664,12 @@ html {
.w-full {
width: 100%;
}
-.w-4 {
- width: 1rem;
-}
.w-6 {
width: 1.5rem;
}
.w-20 {
width: 5rem;
}
-.w-1\/3 {
- width: 33.333333%;
-}
-.w-2\/3 {
- width: 66.666667%;
-}
-.min-w-full {
- min-width: 100%;
-}
.max-w-xl {
max-width: 36rem;
}
@@ -2632,6 +2679,9 @@ html {
.max-w-7xl {
max-width: 80rem;
}
+.max-w-xs {
+ max-width: 20rem;
+}
.flex-1 {
flex: 1 1 0%;
}
@@ -2660,6 +2710,16 @@ html {
.transform {
transform: var(--tw-transform);
}
+@keyframes spin {
+
+ to {
+ transform: rotate(360deg);
+ }
+}
+.animate-spin {
+ -webkit-animation: spin 1s linear infinite;
+ animation: spin 1s linear infinite;
+}
.cursor-default {
cursor: default;
}
@@ -2672,12 +2732,12 @@ html {
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
-.flex-row {
- flex-direction: row;
-}
.flex-col {
flex-direction: column;
}
+.flex-wrap {
+ flex-wrap: wrap;
+}
.items-start {
align-items: flex-start;
}
@@ -2703,21 +2763,11 @@ html {
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
-.space-x-2 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.5rem * var(--tw-space-x-reverse));
- margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
-}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
-.space-y-0 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0px * var(--tw-space-y-reverse));
-}
.overflow-hidden {
overflow: hidden;
}
@@ -2730,6 +2780,9 @@ html {
.rounded {
border-radius: 0.25rem;
}
+.rounded-full {
+ border-radius: 9999px;
+}
.rounded-l-md {
border-top-left-radius: 0.375rem;
border-bottom-left-radius: 0.375rem;
@@ -2756,6 +2809,9 @@ html {
.border-b {
border-bottom-width: 1px;
}
+.border-solid {
+ border-style: solid;
+}
.border-gray-300 {
--tw-border-opacity: 1;
border-color: rgba(209, 213, 219, var(--tw-border-opacity));
@@ -2775,10 +2831,18 @@ html {
--tw-border-opacity: 1;
border-color: rgba(129, 140, 248, var(--tw-border-opacity));
}
+.border-indigo-600 {
+ --tw-border-opacity: 1;
+ border-color: rgba(79, 70, 229, var(--tw-border-opacity));
+}
.border-gray-100 {
--tw-border-opacity: 1;
border-color: rgba(243, 244, 246, var(--tw-border-opacity));
}
+.border-green-700 {
+ --tw-border-opacity: 1;
+ border-color: rgba(4, 120, 87, var(--tw-border-opacity));
+}
.bg-white {
--tw-bg-opacity: 1;
background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
@@ -2795,6 +2859,18 @@ html {
--tw-bg-opacity: 1;
background-color: rgba(238, 242, 255, var(--tw-bg-opacity));
}
+.bg-green-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgba(16, 185, 129, var(--tw-bg-opacity));
+}
+.bg-indigo-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgba(129, 140, 248, var(--tw-bg-opacity));
+}
+.bg-indigo-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgba(79, 70, 229, var(--tw-bg-opacity));
+}
.fill-current {
fill: currentColor;
}
@@ -2832,14 +2908,18 @@ html {
padding-left: 0.25rem;
padding-right: 0.25rem;
}
-.px-3 {
- padding-left: 0.75rem;
- padding-right: 0.75rem;
+.py-3 {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
}
.py-6 {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
}
+.px-3 {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+}
.py-12 {
padding-top: 3rem;
padding-bottom: 3rem;
@@ -2862,12 +2942,6 @@ html {
.pb-3 {
padding-bottom: 0.75rem;
}
-.pt-4 {
- padding-top: 1rem;
-}
-.pb-1 {
- padding-bottom: 0.25rem;
-}
.pt-6 {
padding-top: 1.5rem;
}
@@ -2896,14 +2970,14 @@ html {
font-size: 1rem;
line-height: 1.5rem;
}
-.text-xl {
- font-size: 1.25rem;
- line-height: 1.75rem;
-}
.text-2xl {
font-size: 1.5rem;
line-height: 2rem;
}
+.text-xl {
+ font-size: 1.25rem;
+ line-height: 1.75rem;
+}
.font-medium {
font-weight: 500;
}
@@ -2922,9 +2996,6 @@ html {
.leading-7 {
line-height: 1.75rem;
}
-.leading-4 {
- line-height: 1rem;
-}
.leading-tight {
line-height: 1.25;
}
@@ -2985,6 +3056,10 @@ html {
--tw-text-opacity: 1;
color: rgba(31, 41, 55, var(--tw-text-opacity));
}
+.text-green-500 {
+ --tw-text-opacity: 1;
+ color: rgba(16, 185, 129, var(--tw-text-opacity));
+}
.text-green-600 {
--tw-text-opacity: 1;
color: rgba(5, 150, 105, var(--tw-text-opacity));
@@ -3005,6 +3080,9 @@ html {
.opacity-100 {
opacity: 1;
}
+.opacity-70 {
+ opacity: 0.7;
+}
.shadow-sm {
--tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
@@ -3070,10 +3148,18 @@ html {
--tw-bg-opacity: 1;
background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
}
+.hover\:bg-white:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
+}
.hover\:bg-gray-50:hover {
--tw-bg-opacity: 1;
background-color: rgba(249, 250, 251, var(--tw-bg-opacity));
}
+.hover\:bg-indigo-400:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgba(129, 140, 248, var(--tw-bg-opacity));
+}
.hover\:text-gray-500:hover {
--tw-text-opacity: 1;
color: rgba(107, 114, 128, var(--tw-text-opacity));
@@ -3125,6 +3211,10 @@ html {
--tw-text-opacity: 1;
color: rgba(55, 65, 81, var(--tw-text-opacity));
}
+.focus\:text-indigo-700:focus {
+ --tw-text-opacity: 1;
+ color: rgba(67, 56, 202, var(--tw-text-opacity));
+}
.focus\:text-indigo-800:focus {
--tw-text-opacity: 1;
color: rgba(55, 48, 163, var(--tw-text-opacity));
@@ -3180,10 +3270,6 @@ html {
margin-left: 2.5rem;
}
- .sm\:ml-6 {
- margin-left: 1.5rem;
- }
-
.sm\:block {
display: block;
}
@@ -3200,10 +3286,6 @@ html {
height: 5rem;
}
- .sm\:min-w-full {
- min-width: 100%;
- }
-
.sm\:max-w-md {
max-width: 28rem;
}
@@ -3255,18 +3337,10 @@ html {
width: 33.333333%;
}
- .md\:w-3\/4 {
- width: 75%;
- }
-
.md\:w-2\/3 {
width: 66.666667%;
}
- .md\:flex-1 {
- flex: 1 1 0%;
- }
-
.md\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@@ -3275,12 +3349,6 @@ html {
flex-direction: row;
}
- .md\:space-x-0 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0px * var(--tw-space-x-reverse));
- margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
- }
-
.md\:space-y-0 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
@@ -3295,11 +3363,6 @@ html {
border-left-width: 1px;
}
- .md\:px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
- }
-
.md\:pl-8 {
padding-left: 2rem;
}
diff --git a/public/js/app.js b/public/js/app.js
index d5deb74..e9bc6bf 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -1,1170 +1,6 @@
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
-/***/ "./node_modules/@headlessui/react/dist/_virtual/_rollupPluginBabelHelpers.js":
-/*!***********************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/_virtual/_rollupPluginBabelHelpers.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "arrayLikeToArray": () => (/* binding */ _arrayLikeToArray),
-/* harmony export */ "createForOfIteratorHelperLoose": () => (/* binding */ _createForOfIteratorHelperLoose),
-/* harmony export */ "extends": () => (/* binding */ _extends),
-/* harmony export */ "objectWithoutPropertiesLoose": () => (/* binding */ _objectWithoutPropertiesLoose),
-/* harmony export */ "unsupportedIterableToArray": () => (/* binding */ _unsupportedIterableToArray)
-/* harmony export */ });
-function _extends() {
- _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
- };
-
- return _extends.apply(this, arguments);
-}
-
-function _objectWithoutPropertiesLoose(source, excluded) {
- if (source == null) return {};
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
-
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
-
- return target;
-}
-
-function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
-}
-
-function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
- return arr2;
-}
-
-function _createForOfIteratorHelperLoose(o, allowArrayLike) {
- var it;
-
- if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
- var i = 0;
- return function () {
- if (i >= o.length) return {
- done: true
- };
- return {
- done: false,
- value: o[i++]
- };
- };
- }
-
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
-
- it = o[Symbol.iterator]();
- return it.next.bind(it);
-}
-
-
-//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/components/transitions/transition.esm.js":
-/*!**************************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/components/transitions/transition.esm.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "Transition": () => (/* binding */ Transition)
-/* harmony export */ });
-/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ "./node_modules/@headlessui/react/dist/_virtual/_rollupPluginBabelHelpers.js");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-/* harmony import */ var _utils_match_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/match.esm.js */ "./node_modules/@headlessui/react/dist/utils/match.esm.js");
-/* harmony import */ var _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/render.esm.js */ "./node_modules/@headlessui/react/dist/utils/render.esm.js");
-/* harmony import */ var _hooks_use_iso_morphic_effect_esm_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../hooks/use-iso-morphic-effect.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.esm.js");
-/* harmony import */ var _hooks_use_server_handoff_complete_esm_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../hooks/use-server-handoff-complete.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.esm.js");
-/* harmony import */ var _hooks_use_id_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../hooks/use-id.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-id.esm.js");
-/* harmony import */ var _hooks_use_is_mounted_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../hooks/use-is-mounted.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-is-mounted.esm.js");
-/* harmony import */ var _internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../internal/open-closed.esm.js */ "./node_modules/@headlessui/react/dist/internal/open-closed.esm.js");
-/* harmony import */ var _hooks_use_is_initial_render_esm_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../hooks/use-is-initial-render.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-is-initial-render.esm.js");
-/* harmony import */ var _utils_transition_esm_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/transition.esm.js */ "./node_modules/@headlessui/react/dist/components/transitions/utils/transition.esm.js");
-
-
-
-
-
-
-
-
-
-
-
-
-function useSplitClasses(classes) {
- if (classes === void 0) {
- classes = '';
- }
-
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {
- return classes.split(' ').filter(function (className) {
- return className.trim().length > 1;
- });
- }, [classes]);
-}
-
-var TransitionContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
-TransitionContext.displayName = 'TransitionContext';
-var TreeStates;
-
-(function (TreeStates) {
- TreeStates["Visible"] = "visible";
- TreeStates["Hidden"] = "hidden";
-})(TreeStates || (TreeStates = {}));
-
-function useTransitionContext() {
- var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(TransitionContext);
-
- if (context === null) {
- throw new Error('A is used but it is missing a parent or .');
- }
-
- return context;
-}
-
-function useParentNesting() {
- var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(NestingContext);
-
- if (context === null) {
- throw new Error('A is used but it is missing a parent or .');
- }
-
- return context;
-}
-
-var NestingContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
-NestingContext.displayName = 'NestingContext';
-
-function hasChildren(bag) {
- if ('children' in bag) return hasChildren(bag.children);
- return bag.current.filter(function (_ref) {
- var state = _ref.state;
- return state === TreeStates.Visible;
- }).length > 0;
-}
-
-function useNesting(done) {
- var doneRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(done);
- var transitionableChildren = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)([]);
- var mounted = (0,_hooks_use_is_mounted_esm_js__WEBPACK_IMPORTED_MODULE_1__.useIsMounted)();
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- doneRef.current = done;
- }, [done]);
- var unregister = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (childId, strategy) {
- var _match;
-
- if (strategy === void 0) {
- strategy = _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Hidden;
- }
-
- var idx = transitionableChildren.current.findIndex(function (_ref2) {
- var id = _ref2.id;
- return id === childId;
- });
- if (idx === -1) return;
- (0,_utils_match_esm_js__WEBPACK_IMPORTED_MODULE_3__.match)(strategy, (_match = {}, _match[_utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Unmount] = function () {
- transitionableChildren.current.splice(idx, 1);
- }, _match[_utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Hidden] = function () {
- transitionableChildren.current[idx].state = TreeStates.Hidden;
- }, _match));
-
- if (!hasChildren(transitionableChildren) && mounted.current) {
- doneRef.current == null ? void 0 : doneRef.current();
- }
- }, [doneRef, mounted, transitionableChildren]);
- var register = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (childId) {
- var child = transitionableChildren.current.find(function (_ref3) {
- var id = _ref3.id;
- return id === childId;
- });
-
- if (!child) {
- transitionableChildren.current.push({
- id: childId,
- state: TreeStates.Visible
- });
- } else if (child.state !== TreeStates.Visible) {
- child.state = TreeStates.Visible;
- }
-
- return function () {
- return unregister(childId, _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Unmount);
- };
- }, [transitionableChildren, unregister]);
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {
- return {
- children: transitionableChildren,
- register: register,
- unregister: unregister
- };
- }, [register, unregister, transitionableChildren]);
-}
-
-function noop() {}
-
-var eventNames = ['beforeEnter', 'afterEnter', 'beforeLeave', 'afterLeave'];
-
-function ensureEventHooksExist(events) {
- var result = {};
-
- for (var _iterator = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_4__.createForOfIteratorHelperLoose)(eventNames), _step; !(_step = _iterator()).done;) {
- var _events$name;
-
- var name = _step.value;
- result[name] = (_events$name = events[name]) != null ? _events$name : noop;
- }
-
- return result;
-}
-
-function useEvents(events) {
- var eventsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(ensureEventHooksExist(events));
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- eventsRef.current = ensureEventHooksExist(events);
- }, [events]);
- return eventsRef;
-} // ---
-
-
-var DEFAULT_TRANSITION_CHILD_TAG = 'div';
-var TransitionChildRenderFeatures = _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.Features.RenderStrategy;
-
-function TransitionChild(props) {
- var _match3;
-
- var beforeEnter = props.beforeEnter,
- afterEnter = props.afterEnter,
- beforeLeave = props.beforeLeave,
- afterLeave = props.afterLeave,
- enter = props.enter,
- enterFrom = props.enterFrom,
- enterTo = props.enterTo,
- entered = props.entered,
- leave = props.leave,
- leaveFrom = props.leaveFrom,
- leaveTo = props.leaveTo,
- rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_4__.objectWithoutPropertiesLoose)(props, ["beforeEnter", "afterEnter", "beforeLeave", "afterLeave", "enter", "enterFrom", "enterTo", "entered", "leave", "leaveFrom", "leaveTo"]);
-
- var container = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
-
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(TreeStates.Visible),
- state = _useState[0],
- setState = _useState[1];
-
- var strategy = rest.unmount ? _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Unmount : _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Hidden;
-
- var _useTransitionContext = useTransitionContext(),
- show = _useTransitionContext.show,
- appear = _useTransitionContext.appear,
- initial = _useTransitionContext.initial;
-
- var _useParentNesting = useParentNesting(),
- register = _useParentNesting.register,
- unregister = _useParentNesting.unregister;
-
- var id = (0,_hooks_use_id_esm_js__WEBPACK_IMPORTED_MODULE_5__.useId)();
- var isTransitioning = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
- var nesting = useNesting(function () {
- // When all children have been unmounted we can only hide ourselves if and only if we are not
- // transitioning ourselves. Otherwise we would unmount before the transitions are finished.
- if (!isTransitioning.current) {
- setState(TreeStates.Hidden);
- unregister(id);
- events.current.afterLeave();
- }
- });
- (0,_hooks_use_iso_morphic_effect_esm_js__WEBPACK_IMPORTED_MODULE_6__.useIsoMorphicEffect)(function () {
- if (!id) return;
- return register(id);
- }, [register, id]);
- (0,_hooks_use_iso_morphic_effect_esm_js__WEBPACK_IMPORTED_MODULE_6__.useIsoMorphicEffect)(function () {
- var _match2;
-
- // If we are in another mode than the Hidden mode then ignore
- if (strategy !== _utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.RenderStrategy.Hidden) return;
- if (!id) return; // Make sure that we are visible
-
- if (show && state !== TreeStates.Visible) {
- setState(TreeStates.Visible);
- return;
- }
-
- (0,_utils_match_esm_js__WEBPACK_IMPORTED_MODULE_3__.match)(state, (_match2 = {}, _match2[TreeStates.Hidden] = function () {
- return unregister(id);
- }, _match2[TreeStates.Visible] = function () {
- return register(id);
- }, _match2));
- }, [state, id, register, unregister, show, strategy]);
- var enterClasses = useSplitClasses(enter);
- var enterFromClasses = useSplitClasses(enterFrom);
- var enterToClasses = useSplitClasses(enterTo);
- var enteredClasses = useSplitClasses(entered);
- var leaveClasses = useSplitClasses(leave);
- var leaveFromClasses = useSplitClasses(leaveFrom);
- var leaveToClasses = useSplitClasses(leaveTo);
- var events = useEvents({
- beforeEnter: beforeEnter,
- afterEnter: afterEnter,
- beforeLeave: beforeLeave,
- afterLeave: afterLeave
- });
- var ready = (0,_hooks_use_server_handoff_complete_esm_js__WEBPACK_IMPORTED_MODULE_7__.useServerHandoffComplete)();
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- if (ready && state === TreeStates.Visible && container.current === null) {
- throw new Error('Did you forget to passthrough the `ref` to the actual DOM node?');
- }
- }, [container, state, ready]); // Skipping initial transition
-
- var skip = initial && !appear;
- (0,_hooks_use_iso_morphic_effect_esm_js__WEBPACK_IMPORTED_MODULE_6__.useIsoMorphicEffect)(function () {
- var node = container.current;
- if (!node) return;
- if (skip) return;
- isTransitioning.current = true;
- if (show) events.current.beforeEnter();
- if (!show) events.current.beforeLeave();
- return show ? (0,_utils_transition_esm_js__WEBPACK_IMPORTED_MODULE_8__.transition)(node, enterClasses, enterFromClasses, enterToClasses, enteredClasses, function (reason) {
- isTransitioning.current = false;
- if (reason === _utils_transition_esm_js__WEBPACK_IMPORTED_MODULE_8__.Reason.Finished) events.current.afterEnter();
- }) : (0,_utils_transition_esm_js__WEBPACK_IMPORTED_MODULE_8__.transition)(node, leaveClasses, leaveFromClasses, leaveToClasses, enteredClasses, function (reason) {
- isTransitioning.current = false;
- if (reason !== _utils_transition_esm_js__WEBPACK_IMPORTED_MODULE_8__.Reason.Finished) return; // When we don't have children anymore we can safely unregister from the parent and hide
- // ourselves.
-
- if (!hasChildren(nesting)) {
- setState(TreeStates.Hidden);
- unregister(id);
- events.current.afterLeave();
- }
- });
- }, [events, id, isTransitioning, unregister, nesting, container, skip, show, enterClasses, enterFromClasses, enterToClasses, leaveClasses, leaveFromClasses, leaveToClasses]);
- var propsWeControl = {
- ref: container
- };
- var passthroughProps = rest;
- return react__WEBPACK_IMPORTED_MODULE_0__.createElement(NestingContext.Provider, {
- value: nesting
- }, react__WEBPACK_IMPORTED_MODULE_0__.createElement(_internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.OpenClosedProvider, {
- value: (0,_utils_match_esm_js__WEBPACK_IMPORTED_MODULE_3__.match)(state, (_match3 = {}, _match3[TreeStates.Visible] = _internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.State.Open, _match3[TreeStates.Hidden] = _internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.State.Closed, _match3))
- }, (0,_utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.render)({
- props: (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_4__["extends"])({}, passthroughProps, propsWeControl),
- defaultTag: DEFAULT_TRANSITION_CHILD_TAG,
- features: TransitionChildRenderFeatures,
- visible: state === TreeStates.Visible,
- name: 'Transition.Child'
- })));
-}
-
-function Transition(props) {
- // @ts-expect-error
- var show = props.show,
- _props$appear = props.appear,
- appear = _props$appear === void 0 ? false : _props$appear,
- unmount = props.unmount,
- passthroughProps = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_4__.objectWithoutPropertiesLoose)(props, ["show", "appear", "unmount"]);
-
- var usesOpenClosedState = (0,_internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.useOpenClosed)();
-
- if (show === undefined && usesOpenClosedState !== null) {
- var _match4;
-
- show = (0,_utils_match_esm_js__WEBPACK_IMPORTED_MODULE_3__.match)(usesOpenClosedState, (_match4 = {}, _match4[_internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.State.Open] = true, _match4[_internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.State.Closed] = false, _match4));
- }
-
- if (![true, false].includes(show)) {
- throw new Error('A is used but it is missing a `show={true | false}` prop.');
- }
-
- var _useState2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(show ? TreeStates.Visible : TreeStates.Hidden),
- state = _useState2[0],
- setState = _useState2[1];
-
- var nestingBag = useNesting(function () {
- setState(TreeStates.Hidden);
- });
- var initial = (0,_hooks_use_is_initial_render_esm_js__WEBPACK_IMPORTED_MODULE_10__.useIsInitialRender)();
- var transitionBag = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {
- return {
- show: show,
- appear: appear || !initial,
- initial: initial
- };
- }, [show, appear, initial]);
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- if (show) {
- setState(TreeStates.Visible);
- } else if (!hasChildren(nestingBag)) {
- setState(TreeStates.Hidden);
- }
- }, [show, nestingBag]);
- var sharedProps = {
- unmount: unmount
- };
- return react__WEBPACK_IMPORTED_MODULE_0__.createElement(NestingContext.Provider, {
- value: nestingBag
- }, react__WEBPACK_IMPORTED_MODULE_0__.createElement(TransitionContext.Provider, {
- value: transitionBag
- }, (0,_utils_render_esm_js__WEBPACK_IMPORTED_MODULE_2__.render)({
- props: (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_4__["extends"])({}, sharedProps, {
- as: react__WEBPACK_IMPORTED_MODULE_0__.Fragment,
- children: react__WEBPACK_IMPORTED_MODULE_0__.createElement(TransitionChild, Object.assign({}, sharedProps, passthroughProps))
- }),
- defaultTag: react__WEBPACK_IMPORTED_MODULE_0__.Fragment,
- features: TransitionChildRenderFeatures,
- visible: state === TreeStates.Visible,
- name: 'Transition'
- })));
-}
-
-Transition.Child = function Child(props) {
- var hasTransitionContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(TransitionContext) !== null;
- var hasOpenClosedContext = (0,_internal_open_closed_esm_js__WEBPACK_IMPORTED_MODULE_9__.useOpenClosed)() !== null;
- return !hasTransitionContext && hasOpenClosedContext ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(Transition, Object.assign({}, props)) : react__WEBPACK_IMPORTED_MODULE_0__.createElement(TransitionChild, Object.assign({}, props));
-};
-
-Transition.Root = Transition;
-
-
-//# sourceMappingURL=transition.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/components/transitions/utils/transition.esm.js":
-/*!********************************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/components/transitions/utils/transition.esm.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "Reason": () => (/* binding */ Reason),
-/* harmony export */ "transition": () => (/* binding */ transition)
-/* harmony export */ });
-/* harmony import */ var _utils_disposables_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/disposables.esm.js */ "./node_modules/@headlessui/react/dist/utils/disposables.esm.js");
-/* harmony import */ var _utils_once_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/once.esm.js */ "./node_modules/@headlessui/react/dist/utils/once.esm.js");
-
-
-
-function addClasses(node) {
- var _node$classList;
-
- for (var _len = arguments.length, classes = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- classes[_key - 1] = arguments[_key];
- }
-
- node && classes.length > 0 && (_node$classList = node.classList).add.apply(_node$classList, classes);
-}
-
-function removeClasses(node) {
- var _node$classList2;
-
- for (var _len2 = arguments.length, classes = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- classes[_key2 - 1] = arguments[_key2];
- }
-
- node && classes.length > 0 && (_node$classList2 = node.classList).remove.apply(_node$classList2, classes);
-}
-
-var Reason;
-
-(function (Reason) {
- Reason["Finished"] = "finished";
- Reason["Cancelled"] = "cancelled";
-})(Reason || (Reason = {}));
-
-function waitForTransition(node, done) {
- var d = (0,_utils_disposables_esm_js__WEBPACK_IMPORTED_MODULE_0__.disposables)();
- if (!node) return d.dispose; // Safari returns a comma separated list of values, so let's sort them and take the highest value.
-
- var _getComputedStyle = getComputedStyle(node),
- transitionDuration = _getComputedStyle.transitionDuration,
- transitionDelay = _getComputedStyle.transitionDelay;
-
- var _map = [transitionDuration, transitionDelay].map(function (value) {
- var _value$split$filter$m = value.split(',') // Remove falsy we can't work with
- .filter(Boolean) // Values are returned as `0.3s` or `75ms`
- .map(function (v) {
- return v.includes('ms') ? parseFloat(v) : parseFloat(v) * 1000;
- }).sort(function (a, z) {
- return z - a;
- }),
- _value$split$filter$m2 = _value$split$filter$m[0],
- resolvedValue = _value$split$filter$m2 === void 0 ? 0 : _value$split$filter$m2;
-
- return resolvedValue;
- }),
- durationMs = _map[0],
- delaysMs = _map[1]; // Waiting for the transition to end. We could use the `transitionend` event, however when no
- // actual transition/duration is defined then the `transitionend` event is not fired.
- //
- // TODO: Downside is, when you slow down transitions via devtools this timeout is still using the
- // full 100% speed instead of the 25% or 10%.
-
-
- if (durationMs !== 0) {
- d.setTimeout(function () {
- done(Reason.Finished);
- }, durationMs + delaysMs);
- } else {
- // No transition is happening, so we should cleanup already. Otherwise we have to wait until we
- // get disposed.
- done(Reason.Finished);
- } // If we get disposed before the timeout runs we should cleanup anyway
-
-
- d.add(function () {
- return done(Reason.Cancelled);
- });
- return d.dispose;
-}
-
-function transition(node, base, from, to, entered, done) {
- var d = (0,_utils_disposables_esm_js__WEBPACK_IMPORTED_MODULE_0__.disposables)();
-
- var _done = done !== undefined ? (0,_utils_once_esm_js__WEBPACK_IMPORTED_MODULE_1__.once)(done) : function () {};
-
- removeClasses.apply(void 0, [node].concat(entered));
- addClasses.apply(void 0, [node].concat(base, from));
- d.nextFrame(function () {
- removeClasses.apply(void 0, [node].concat(from));
- addClasses.apply(void 0, [node].concat(to));
- d.add(waitForTransition(node, function (reason) {
- removeClasses.apply(void 0, [node].concat(to, base));
- addClasses.apply(void 0, [node].concat(entered));
- return _done(reason);
- }));
- }); // Once we get disposed, we should ensure that we cleanup after ourselves. In case of an unmount,
- // the node itself will be nullified and will be a no-op. In case of a full transition the classes
- // are already removed which is also a no-op. However if you go from enter -> leave mid-transition
- // then we have some leftovers that should be cleaned.
-
- d.add(function () {
- return removeClasses.apply(void 0, [node].concat(base, from, to, entered));
- }); // When we get disposed early, than we should also call the done method but switch the reason.
-
- d.add(function () {
- return _done(Reason.Cancelled);
- });
- return d.dispose;
-}
-
-
-//# sourceMappingURL=transition.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/hooks/use-id.esm.js":
-/*!*****************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/hooks/use-id.esm.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "useId": () => (/* binding */ useId)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-/* harmony import */ var _use_iso_morphic_effect_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-iso-morphic-effect.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.esm.js");
-/* harmony import */ var _use_server_handoff_complete_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-server-handoff-complete.esm.js */ "./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.esm.js");
-
-
-
-
-// didn't take care of the Suspense case. To fix this we used the approach the @reach-ui/auto-id
-// uses.
-//
-// Credits: https://github.com/reach/reach-ui/blob/develop/packages/auto-id/src/index.tsx
-
-var id = 0;
-
-function generateId() {
- return ++id;
-}
-
-function useId() {
- var ready = (0,_use_server_handoff_complete_esm_js__WEBPACK_IMPORTED_MODULE_1__.useServerHandoffComplete)();
-
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(ready ? generateId : null),
- id = _useState[0],
- setId = _useState[1];
-
- (0,_use_iso_morphic_effect_esm_js__WEBPACK_IMPORTED_MODULE_2__.useIsoMorphicEffect)(function () {
- if (id === null) setId(generateId());
- }, [id]);
- return id != null ? '' + id : undefined;
-}
-
-
-//# sourceMappingURL=use-id.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/hooks/use-is-initial-render.esm.js":
-/*!********************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/hooks/use-is-initial-render.esm.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "useIsInitialRender": () => (/* binding */ useIsInitialRender)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-
-
-function useIsInitialRender() {
- var initial = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true);
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- initial.current = false;
- }, []);
- return initial.current;
-}
-
-
-//# sourceMappingURL=use-is-initial-render.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/hooks/use-is-mounted.esm.js":
-/*!*************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/hooks/use-is-mounted.esm.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "useIsMounted": () => (/* binding */ useIsMounted)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-
-
-function useIsMounted() {
- var mounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- mounted.current = true;
- return function () {
- mounted.current = false;
- };
- }, []);
- return mounted;
-}
-
-
-//# sourceMappingURL=use-is-mounted.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.esm.js":
-/*!*********************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.esm.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "useIsoMorphicEffect": () => (/* binding */ useIsoMorphicEffect)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-
-
-var useIsoMorphicEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;
-
-
-//# sourceMappingURL=use-iso-morphic-effect.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.esm.js":
-/*!**************************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.esm.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "useServerHandoffComplete": () => (/* binding */ useServerHandoffComplete)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-
-
-var state = {
- serverHandoffComplete: false
-};
-function useServerHandoffComplete() {
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(state.serverHandoffComplete),
- serverHandoffComplete = _useState[0],
- setServerHandoffComplete = _useState[1];
-
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- if (serverHandoffComplete === true) return;
- setServerHandoffComplete(true);
- }, [serverHandoffComplete]);
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
- if (state.serverHandoffComplete === false) state.serverHandoffComplete = true;
- }, []);
- return serverHandoffComplete;
-}
-
-
-//# sourceMappingURL=use-server-handoff-complete.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/internal/open-closed.esm.js":
-/*!*************************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/internal/open-closed.esm.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "OpenClosedProvider": () => (/* binding */ OpenClosedProvider),
-/* harmony export */ "State": () => (/* binding */ State),
-/* harmony export */ "useOpenClosed": () => (/* binding */ useOpenClosed)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-
-
-var Context = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
-Context.displayName = 'OpenClosedContext';
-var State;
-
-(function (State) {
- State[State["Open"] = 0] = "Open";
- State[State["Closed"] = 1] = "Closed";
-})(State || (State = {}));
-
-function useOpenClosed() {
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(Context);
-}
-function OpenClosedProvider(_ref) {
- var value = _ref.value,
- children = _ref.children;
- return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Context.Provider, {
- value: value
- }, children);
-}
-
-
-//# sourceMappingURL=open-closed.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/utils/disposables.esm.js":
-/*!**********************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/utils/disposables.esm.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "disposables": () => (/* binding */ disposables)
-/* harmony export */ });
-/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_virtual/_rollupPluginBabelHelpers.js */ "./node_modules/@headlessui/react/dist/_virtual/_rollupPluginBabelHelpers.js");
-
-
-function disposables() {
- var disposables = [];
- var api = {
- requestAnimationFrame: function (_requestAnimationFrame) {
- function requestAnimationFrame() {
- return _requestAnimationFrame.apply(this, arguments);
- }
-
- requestAnimationFrame.toString = function () {
- return _requestAnimationFrame.toString();
- };
-
- return requestAnimationFrame;
- }(function () {
- var raf = requestAnimationFrame.apply(void 0, arguments);
- api.add(function () {
- return cancelAnimationFrame(raf);
- });
- }),
- nextFrame: function nextFrame() {
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- api.requestAnimationFrame(function () {
- api.requestAnimationFrame.apply(api, args);
- });
- },
- setTimeout: function (_setTimeout) {
- function setTimeout() {
- return _setTimeout.apply(this, arguments);
- }
-
- setTimeout.toString = function () {
- return _setTimeout.toString();
- };
-
- return setTimeout;
- }(function () {
- var timer = setTimeout.apply(void 0, arguments);
- api.add(function () {
- return clearTimeout(timer);
- });
- }),
- add: function add(cb) {
- disposables.push(cb);
- },
- dispose: function dispose() {
- for (var _iterator = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_0__.createForOfIteratorHelperLoose)(disposables.splice(0)), _step; !(_step = _iterator()).done;) {
- var dispose = _step.value;
- dispose();
- }
- }
- };
- return api;
-}
-
-
-//# sourceMappingURL=disposables.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/utils/match.esm.js":
-/*!****************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/utils/match.esm.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "match": () => (/* binding */ match)
-/* harmony export */ });
-function match(value, lookup) {
- if (value in lookup) {
- var returnValue = lookup[value];
-
- for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
-
- return typeof returnValue === 'function' ? returnValue.apply(void 0, args) : returnValue;
- }
-
- var error = new Error("Tried to handle \"" + value + "\" but there is no handler defined. Only defined handlers are: " + Object.keys(lookup).map(function (key) {
- return "\"" + key + "\"";
- }).join(', ') + ".");
- if (Error.captureStackTrace) Error.captureStackTrace(error, match);
- throw error;
-}
-
-
-//# sourceMappingURL=match.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/utils/once.esm.js":
-/*!***************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/utils/once.esm.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "once": () => (/* binding */ once)
-/* harmony export */ });
-function once(cb) {
- var state = {
- called: false
- };
- return function () {
- if (state.called) return;
- state.called = true;
- return cb.apply(void 0, arguments);
- };
-}
-
-
-//# sourceMappingURL=once.esm.js.map
-
-
-/***/ }),
-
-/***/ "./node_modules/@headlessui/react/dist/utils/render.esm.js":
-/*!*****************************************************************!*\
- !*** ./node_modules/@headlessui/react/dist/utils/render.esm.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "Features": () => (/* binding */ Features),
-/* harmony export */ "RenderStrategy": () => (/* binding */ RenderStrategy),
-/* harmony export */ "forwardRefWithAs": () => (/* binding */ forwardRefWithAs),
-/* harmony export */ "render": () => (/* binding */ render)
-/* harmony export */ });
-/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_virtual/_rollupPluginBabelHelpers.js */ "./node_modules/@headlessui/react/dist/_virtual/_rollupPluginBabelHelpers.js");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-/* harmony import */ var _match_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./match.esm.js */ "./node_modules/@headlessui/react/dist/utils/match.esm.js");
-
-
-
-
-var Features;
-
-(function (Features) {
- /** No features at all */
- Features[Features["None"] = 0] = "None";
- /**
- * When used, this will allow us to use one of the render strategies.
- *
- * **The render strategies are:**
- * - **Unmount** _(Will unmount the component.)_
- * - **Hidden** _(Will hide the component using the [hidden] attribute.)_
- */
-
- Features[Features["RenderStrategy"] = 1] = "RenderStrategy";
- /**
- * When used, this will allow the user of our component to be in control. This can be used when
- * you want to transition based on some state.
- */
-
- Features[Features["Static"] = 2] = "Static";
-})(Features || (Features = {}));
-
-var RenderStrategy;
-
-(function (RenderStrategy) {
- RenderStrategy[RenderStrategy["Unmount"] = 0] = "Unmount";
- RenderStrategy[RenderStrategy["Hidden"] = 1] = "Hidden";
-})(RenderStrategy || (RenderStrategy = {}));
-
-function render(_ref) {
- var props = _ref.props,
- slot = _ref.slot,
- defaultTag = _ref.defaultTag,
- features = _ref.features,
- _ref$visible = _ref.visible,
- visible = _ref$visible === void 0 ? true : _ref$visible,
- name = _ref.name;
- // Visible always render
- if (visible) return _render(props, slot, defaultTag, name);
- var featureFlags = features != null ? features : Features.None;
-
- if (featureFlags & Features.Static) {
- var _props$static = props["static"],
- isStatic = _props$static === void 0 ? false : _props$static,
- rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__.objectWithoutPropertiesLoose)(props, ["static"]); // When the `static` prop is passed as `true`, then the user is in control, thus we don't care about anything else
-
-
- if (isStatic) return _render(rest, slot, defaultTag, name);
- }
-
- if (featureFlags & Features.RenderStrategy) {
- var _match;
-
- var _props$unmount = props.unmount,
- unmount = _props$unmount === void 0 ? true : _props$unmount,
- _rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__.objectWithoutPropertiesLoose)(props, ["unmount"]);
-
- var strategy = unmount ? RenderStrategy.Unmount : RenderStrategy.Hidden;
- return (0,_match_esm_js__WEBPACK_IMPORTED_MODULE_2__.match)(strategy, (_match = {}, _match[RenderStrategy.Unmount] = function () {
- return null;
- }, _match[RenderStrategy.Hidden] = function () {
- return _render((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__["extends"])({}, _rest, {
- hidden: true,
- style: {
- display: 'none'
- }
- }), slot, defaultTag, name);
- }, _match));
- } // No features enabled, just render
-
-
- return _render(props, slot, defaultTag, name);
-}
-
-function _render(props, slot, tag, name) {
- var _ref2;
-
- if (slot === void 0) {
- slot = {};
- }
-
- var _omit = omit(props, ['unmount', 'static']),
- _omit$as = _omit.as,
- Component = _omit$as === void 0 ? tag : _omit$as,
- children = _omit.children,
- _omit$refName = _omit.refName,
- refName = _omit$refName === void 0 ? 'ref' : _omit$refName,
- passThroughProps = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__.objectWithoutPropertiesLoose)(_omit, ["as", "children", "refName"]); // This allows us to use ``
-
-
- var refRelatedProps = props.ref !== undefined ? (_ref2 = {}, _ref2[refName] = props.ref, _ref2) : {};
- var resolvedChildren = typeof children === 'function' ? children(slot) : children; // Allow for className to be a function with the slot as the contents
-
- if (passThroughProps.className && typeof passThroughProps.className === 'function') {
- passThroughProps.className = passThroughProps.className(slot);
- }
-
- if (Component === react__WEBPACK_IMPORTED_MODULE_0__.Fragment) {
- if (Object.keys(passThroughProps).length > 0) {
- if (!(0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(resolvedChildren) || Array.isArray(resolvedChildren) && resolvedChildren.length > 1) {
- throw new Error(['Passing props on "Fragment"!', '', "The current component <" + name + " /> is rendering a \"Fragment\".", "However we need to passthrough the following props:", Object.keys(passThroughProps).map(function (line) {
- return " - " + line;
- }).join('\n'), '', 'You can apply a few solutions:', ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".', 'Render a single element as the child so that we can forward the props onto that element.'].map(function (line) {
- return " - " + line;
- }).join('\n')].join('\n'));
- }
-
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(resolvedChildren, Object.assign({}, // Filter out undefined values so that they don't override the existing values
- mergeEventFunctions(compact(omit(passThroughProps, ['ref'])), resolvedChildren.props, ['onClick']), refRelatedProps));
- }
- }
-
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component, Object.assign({}, omit(passThroughProps, ['ref']), Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment && refRelatedProps), resolvedChildren);
-}
-/**
- * We can use this function for the following useCase:
- *
- *
- *
- * Our `Menu.Item` will have an internal `onClick`, if you passthrough an `onClick` to the actual
- * `Menu.Item` component we will call it correctly. However, when we have an `onClick` on the actual
- * first child, that one should _also_ be called (but before this implementation, it was just
- * overriding the `onClick`). But it is only when we *render* that we have access to the existing
- * props of this component.
- *
- * It's a bit hacky, and not that clean, but it is something internal and we have tests to rely on
- * so that we can refactor this later (if needed).
- */
-
-
-function mergeEventFunctions(passThroughProps, existingProps, functionsToMerge) {
- var clone = Object.assign({}, passThroughProps);
-
- var _loop = function _loop() {
- var func = _step.value;
-
- if (passThroughProps[func] !== undefined && existingProps[func] !== undefined) {
- var _Object$assign;
-
- Object.assign(clone, (_Object$assign = {}, _Object$assign[func] = function (event) {
- // Props we control
- if (!event.defaultPrevented) passThroughProps[func](event); // Existing props on the component
-
- if (!event.defaultPrevented) existingProps[func](event);
- }, _Object$assign));
- }
- };
-
- for (var _iterator = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__.createForOfIteratorHelperLoose)(functionsToMerge), _step; !(_step = _iterator()).done;) {
- _loop();
- }
-
- return clone;
-}
-/**
- * This is a hack, but basically we want to keep the full 'API' of the component, but we do want to
- * wrap it in a forwardRef so that we _can_ passthrough the ref
- */
-
-
-function forwardRefWithAs(component) {
- var _component$displayNam;
-
- return Object.assign((0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(component), {
- displayName: (_component$displayNam = component.displayName) != null ? _component$displayNam : component.name
- });
-}
-
-function compact(object) {
- var clone = Object.assign({}, object);
-
- for (var key in clone) {
- if (clone[key] === undefined) delete clone[key];
- }
-
- return clone;
-}
-
-function omit(object, keysToOmit) {
- if (keysToOmit === void 0) {
- keysToOmit = [];
- }
-
- var clone = Object.assign({}, object);
-
- for (var _iterator2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_1__.createForOfIteratorHelperLoose)(keysToOmit), _step2; !(_step2 = _iterator2()).done;) {
- var key = _step2.value;
- if (key in clone) delete clone[key];
- }
-
- return clone;
-}
-
-
-//# sourceMappingURL=render.esm.js.map
-
-
-/***/ }),
-
/***/ "./node_modules/@inertiajs/inertia-react/dist/index.js":
/*!*************************************************************!*\
!*** ./node_modules/@inertiajs/inertia-react/dist/index.js ***!
@@ -3347,162 +2183,6 @@ function Checkbox(_ref) {
/***/ }),
-/***/ "./resources/js/Components/Dropdown.js":
-/*!*********************************************!*\
- !*** ./resources/js/Components/Dropdown.js ***!
- \*********************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
-/* harmony import */ var _headlessui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @headlessui/react */ "./node_modules/@headlessui/react/dist/components/transitions/transition.esm.js");
-/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
-
-function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
-function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-
-
-
-
-
-
-var DropDownContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext();
-
-var Dropdown = function Dropdown(_ref) {
- var children = _ref.children;
-
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
- _useState2 = _slicedToArray(_useState, 2),
- open = _useState2[0],
- setOpen = _useState2[1];
-
- var toggleOpen = function toggleOpen() {
- setOpen(function (previousState) {
- return !previousState;
- });
- };
-
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(DropDownContext.Provider, {
- value: {
- open: open,
- setOpen: setOpen,
- toggleOpen: toggleOpen
- },
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
- className: "relative",
- children: children
- })
- });
-};
-
-var Trigger = function Trigger(_ref2) {
- var children = _ref2.children;
-
- var _useContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(DropDownContext),
- open = _useContext.open,
- setOpen = _useContext.setOpen,
- toggleOpen = _useContext.toggleOpen;
-
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
- onClick: toggleOpen,
- children: children
- }), open && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
- className: "fixed inset-0 z-40",
- onClick: function onClick() {
- return setOpen(false);
- }
- })]
- });
-};
-
-var Content = function Content(_ref3) {
- var _ref3$align = _ref3.align,
- align = _ref3$align === void 0 ? 'right' : _ref3$align,
- _ref3$width = _ref3.width,
- width = _ref3$width === void 0 ? '48' : _ref3$width,
- _ref3$contentClasses = _ref3.contentClasses,
- contentClasses = _ref3$contentClasses === void 0 ? 'py-1 bg-white' : _ref3$contentClasses,
- children = _ref3.children;
-
- var _useContext2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(DropDownContext),
- open = _useContext2.open,
- setOpen = _useContext2.setOpen;
-
- var alignmentClasses = 'origin-top';
-
- if (align === 'left') {
- alignmentClasses = 'origin-top-left left-0';
- } else if (align === 'right') {
- alignmentClasses = 'origin-top-right right-0';
- }
-
- var widthClasses = '';
-
- if (width === '48') {
- widthClasses = 'w-48';
- }
-
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_headlessui_react__WEBPACK_IMPORTED_MODULE_3__.Transition, {
- show: open,
- enter: "transition ease-out duration-200",
- enterFrom: "transform opacity-0 scale-95",
- enterTo: "transform opacity-100 scale-100",
- leave: "transition ease-in duration-75",
- leaveFrom: "transform opacity-100 scale-100",
- leaveTo: "transform opacity-0 scale-95",
- children: open && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
- className: "absolute z-50 mt-2 rounded-md shadow-lg ".concat(alignmentClasses, " ").concat(widthClasses),
- onClick: function onClick() {
- return setOpen(false);
- },
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
- className: "rounded-md ring-1 ring-black ring-opacity-5 " + contentClasses,
- children: children
- })
- })
- })
- });
-};
-
-var DropdownLink = function DropdownLink(_ref4) {
- var href = _ref4.href,
- _ref4$method = _ref4.method,
- method = _ref4$method === void 0 ? 'post' : _ref4$method,
- _ref4$as = _ref4.as,
- as = _ref4$as === void 0 ? 'a' : _ref4$as,
- children = _ref4.children;
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_1__.Link, {
- href: href,
- method: method,
- as: as,
- className: "block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out",
- children: children
- });
-};
-
-Dropdown.Trigger = Trigger;
-Dropdown.Content = Content;
-Dropdown.Link = DropdownLink;
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Dropdown);
-
-/***/ }),
-
/***/ "./resources/js/Components/Input.js":
/*!******************************************!*\
!*** ./resources/js/Components/Input.js ***!
@@ -3614,6 +2294,81 @@ function NavLink(_ref) {
/***/ }),
+/***/ "./resources/js/Components/Pagination.js":
+/*!***********************************************!*\
+ !*** ./resources/js/Components/Pagination.js ***!
+ \***********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
+/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
+/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
+
+
+
+
+var PageLink = function PageLink(_ref) {
+ var active = _ref.active,
+ label = _ref.label,
+ url = _ref.url;
+ var className = classnames__WEBPACK_IMPORTED_MODULE_1___default()(['mr-1 mb-1', 'px-4 py-3', 'border border-solid border-gray-300 rounded', 'text-sm', 'bg-white', 'hover:bg-white', 'focus:outline-none focus:border-indigo-700 focus:text-indigo-700'], {
+ 'border-indigo-600 bg-indigo-600 text-white hover:bg-indigo-400': active
+ });
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_0__.Link, {
+ className: className,
+ href: url,
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
+ dangerouslySetInnerHTML: {
+ __html: label
+ }
+ })
+ });
+}; // Previous, if on first page
+// Next, if on last page
+// and dots, if exists (...)
+
+
+var PageInactive = function PageInactive(_ref2) {
+ var label = _ref2.label;
+ var className = classnames__WEBPACK_IMPORTED_MODULE_1___default()('mr-1 mb-1 px-4 py-3 text-sm border rounded border-solid border-gray-300 text-gray');
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
+ className: className,
+ dangerouslySetInnerHTML: {
+ __html: label
+ }
+ });
+};
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (_ref3) {
+ var _ref3$links = _ref3.links,
+ links = _ref3$links === void 0 ? [] : _ref3$links;
+ // dont render, if there's only 1 page (previous, 1, next)
+ if (links.length === 3) return null;
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
+ className: "flex flex-wrap mt-6 -mb-1",
+ children: links.map(function (_ref4) {
+ var active = _ref4.active,
+ label = _ref4.label,
+ url = _ref4.url;
+ return url === null ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(PageInactive, {
+ label: label
+ }, label) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(PageLink, {
+ label: label,
+ active: active,
+ url: url
+ }, label);
+ })
+ });
+});
+
+/***/ }),
+
/***/ "./resources/js/Components/ResponsiveNavLink.js":
/*!******************************************************!*\
!*** ./resources/js/Components/ResponsiveNavLink.js ***!
@@ -3699,12 +2454,11 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ "default": () => (/* binding */ Authenticated)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-/* harmony import */ var _Components_ApplicationLogo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Components/ApplicationLogo */ "./resources/js/Components/ApplicationLogo.js");
-/* harmony import */ var _Components_Dropdown__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Components/Dropdown */ "./resources/js/Components/Dropdown.js");
-/* harmony import */ var _Components_NavLink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Components/NavLink */ "./resources/js/Components/NavLink.js");
-/* harmony import */ var _Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/Components/ResponsiveNavLink */ "./resources/js/Components/ResponsiveNavLink.js");
-/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
-/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
+/* harmony import */ var react_toastify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-toastify */ "./node_modules/react-toastify/dist/react-toastify.esm.js");
+/* harmony import */ var _Components_NavLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Components/NavLink */ "./resources/js/Components/NavLink.js");
+/* harmony import */ var _Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Components/ResponsiveNavLink */ "./resources/js/Components/ResponsiveNavLink.js");
+/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
+/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -3724,7 +2478,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
function Authenticated(_ref) {
var header = _ref.header,
children = _ref.children;
@@ -3734,62 +2487,62 @@ function Authenticated(_ref) {
showingNavigationDropdown = _useState2[0],
setShowingNavigationDropdown = _useState2[1];
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "min-h-screen bg-gray-100",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("nav", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("nav", {
className: "bg-white border-b border-gray-100",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "flex justify-between h-16",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "flex",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "flex-shrink-0 flex items-center",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_5__.Link, {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__.Link, {
href: "/",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h1", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h1", {
className: "font-bold text-2xl",
children: "Expense Tracker"
})
})
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "hidden space-x-8 sm:-my-px sm:ml-10 sm:flex",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_3__["default"], {
- href: route('dashboard'),
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], {
+ href: route('transactions'),
active: route().current('transactions'),
children: "Transaction"
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_3__["default"], {
- href: route('dashboard'),
- active: route().current('dashboard'),
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], {
+ href: route('categories'),
+ active: route().current('categories'),
children: "Category"
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_3__["default"], {
- href: route('dashboard'),
- active: route().current('dashboard'),
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], {
+ href: route('summary'),
+ active: route().current('summary'),
children: "Summary"
})]
})]
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "-mr-2 flex items-center sm:hidden",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
onClick: function onClick() {
return setShowingNavigationDropdown(function (previousState) {
return !previousState;
});
},
className: "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("svg", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("svg", {
className: "h-6 w-6",
stroke: "currentColor",
fill: "none",
viewBox: "0 0 24 24",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("path", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("path", {
className: !showingNavigationDropdown ? 'inline-flex' : 'hidden',
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: "2",
d: "M4 6h16M4 12h16M4 18h16"
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("path", {
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("path", {
className: showingNavigationDropdown ? 'inline-flex' : 'hidden',
strokeLinecap: "round",
strokeLinejoin: "round",
@@ -3800,33 +2553,44 @@ function Authenticated(_ref) {
})
})]
})
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: (showingNavigationDropdown ? 'block' : 'hidden') + ' sm:hidden',
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "pt-2 pb-3 space-y-1",
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_4__["default"], {
- href: route('dashboard'),
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__["default"], {
+ href: route('transactions'),
active: route().current('transactions'),
children: "Transaction"
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_4__["default"], {
- href: route('dashboard'),
- active: route().current('dashboard'),
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__["default"], {
+ href: route('transactions'),
+ active: route().current('transactions'),
children: "Category"
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_4__["default"], {
- href: route('dashboard'),
- active: route().current('dashboard'),
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__["default"], {
+ href: route('summary'),
+ active: route().current('summary'),
children: "Summary"
})]
})
})]
- }), header && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("header", {
+ }), header && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("header", {
className: "bg-white shadow",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8",
children: header
})
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("main", {
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("main", {
children: children
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react_toastify__WEBPACK_IMPORTED_MODULE_1__.ToastContainer, {
+ position: "top-right",
+ autoClose: 5000,
+ theme: "colored",
+ hideProgressBar: false,
+ newestOnTop: false,
+ closeOnClick: true,
+ rtl: false,
+ pauseOnFocusLoss: true,
+ draggable: true,
+ pauseOnHover: true
})]
});
}
@@ -4494,47 +3258,274 @@ function VerifyEmail(_ref) {
/***/ }),
-/***/ "./resources/js/Pages/Dashboard.js":
-/*!*****************************************!*\
- !*** ./resources/js/Pages/Dashboard.js ***!
- \*****************************************/
+/***/ "./resources/js/Pages/Category.js":
+/*!****************************************!*\
+ !*** ./resources/js/Pages/Category.js ***!
+ \****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (/* binding */ Dashboard)
+/* harmony export */ "default": () => (/* binding */ Category)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
-/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js");
-/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
-/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
+/* harmony import */ var _Components_Pagination__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Components/Pagination */ "./resources/js/Components/Pagination.js");
+/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js");
+/* harmony import */ var react_toastify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-toastify */ "./node_modules/react-toastify/dist/react-toastify.esm.js");
+/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
+/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
+function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-function Dashboard(props) {
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__["default"], {
+function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+
+
+
+
+
+
+
+function Category(props) {
+ var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
+ _useState2 = _slicedToArray(_useState, 2),
+ category = _useState2[0],
+ setCategory = _useState2[1];
+
+ var _props$categories = props.categories,
+ categories = _props$categories.data,
+ links = _props$categories.links;
+
+ var _useForm = (0,_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__.useForm)({
+ name: '',
+ description: '',
+ amount: 0
+ }),
+ data = _useForm.data,
+ setData = _useForm.setData,
+ errors = _useForm.errors,
+ post = _useForm.post,
+ put = _useForm.put,
+ processing = _useForm.processing,
+ destroy = _useForm["delete"];
+
+ var handleChange = function handleChange(e) {
+ var key = e.target.id;
+ var value = e.target.value;
+ setData(key, value);
+ };
+
+ var handleReset = function handleReset() {
+ setCategory(null);
+ setData({
+ name: '',
+ description: '',
+ amount: ''
+ });
+ };
+
+ var handleEdit = function handleEdit(category) {
+ setCategory(category);
+ setData({
+ name: category.name,
+ description: category.description,
+ amount: category.default_budget
+ });
+ };
+
+ var handleDelete = function handleDelete(category) {
+ destroy(route('categories.destroy', category), {
+ onBefore: function onBefore() {
+ return confirm('Are you sure you want to delete this record?');
+ },
+ onSuccess: function onSuccess() {
+ return Promise.all([handleReset(), react_toastify__WEBPACK_IMPORTED_MODULE_3__.toast.success('data has been deleted')]);
+ }
+ });
+ };
+
+ var handleSubmit = function handleSubmit(e) {
+ e.preventDefault();
+
+ if (category !== null) {
+ put(route('categories.update', category), {
+ onSuccess: function onSuccess() {
+ return Promise.all([handleReset(), react_toastify__WEBPACK_IMPORTED_MODULE_3__.toast.success('The Data has been changed')]);
+ }
+ });
+ return;
+ }
+
+ post(route('categories.store'), {
+ onSuccess: function onSuccess() {
+ return Promise.all([handleReset(), react_toastify__WEBPACK_IMPORTED_MODULE_3__.toast.success('Data has been saved')]);
+ }
+ });
+ };
+
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_2__["default"], {
errors: props.errors,
- header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h2", {
+ header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h2", {
className: "font-semibold text-xl text-gray-800 leading-tight",
- children: "Dashboard"
+ children: "Category"
}),
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Head, {
- title: "Dashboard"
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
- className: "py-12",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
- className: "max-w-7xl mx-auto sm:px-6 lg:px-8",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
- className: "bg-white overflow-hidden shadow-sm sm:rounded-lg",
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
- className: "p-6 bg-white border-b border-gray-200",
- children: "You're logged in!"
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__.Head, {
+ title: "Category"
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "flex flex-col space-y-2 md:space-y-0 md:flex-row py-12",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "w-full md:w-1/3 px-6 md:pl-8",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "card bg-white",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "card-body",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "form-control",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", {
+ className: "label",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
+ className: "label-text",
+ children: "Name"
+ })
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", {
+ type: "text",
+ placeholder: "Name",
+ className: "input input-bordered ".concat(errors.name ? 'input-error' : ''),
+ id: "name",
+ value: data.name,
+ onChange: handleChange
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", {
+ className: "label",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
+ className: "label-text-alt",
+ children: errors.name
+ })
+ })]
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "form-control",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", {
+ className: "label",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
+ className: "label-text",
+ children: "Description"
+ })
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", {
+ type: "text",
+ placeholder: "Description",
+ className: "input input-bordered ".concat(errors.description ? 'input-error' : ''),
+ id: "description",
+ value: data.description,
+ onChange: handleChange
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", {
+ className: "label",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
+ className: "label-text-alt",
+ children: errors.description
+ })
+ })]
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "form-control",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", {
+ className: "label",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
+ className: "label-text",
+ children: "Amount"
+ })
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", {
+ type: "number",
+ placeholder: "Amount",
+ className: "input input-bordered ".concat(errors.amount ? 'input-error' : ''),
+ id: "amount",
+ value: data.amount,
+ onChange: handleChange
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", {
+ className: "label",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
+ className: "label-text-alt",
+ children: errors.amount
+ })
+ })]
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "card-actions",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
+ className: "btn btn-primary ".concat(processing && 'animate-spin'),
+ onClick: handleSubmit,
+ disabled: processing,
+ children: "Add"
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
+ className: "btn btn-secondary",
+ onClick: handleReset,
+ disabled: processing,
+ children: "Clear"
+ })]
+ })]
})
})
- })
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "w-full md:w-2/3 px-6 md:pr-8",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "card bg-white",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
+ className: "card-body",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "overflow-x-auto",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("table", {
+ className: "table w-full table-zebra",
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("thead", {
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("tr", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {
+ children: "Name"
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {
+ children: "Description"
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {
+ children: "Amount"
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {})]
+ })
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("tbody", {
+ className: processing ? "opacity-70" : "",
+ children: categories === null || categories === void 0 ? void 0 : categories.map(function (category) {
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("tr", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {
+ children: category.id
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("td", {
+ children: category.name
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("td", {
+ children: category.description
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("td", {
+ children: category.default_budget
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("td", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "btn btn-warning mx-1",
+ onClick: function onClick() {
+ return handleEdit(category);
+ },
+ children: "Edit"
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
+ className: "btn btn-error mx-1",
+ onClick: function onClick() {
+ return handleDelete(category);
+ },
+ children: "Delete"
+ })]
+ })]
+ }, category.id);
+ })
+ })]
+ })
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Components_Pagination__WEBPACK_IMPORTED_MODULE_1__["default"], {
+ links: links
+ })]
+ })
+ })
+ })]
})]
});
}
@@ -4607,9 +3598,9 @@ function Transaction(props) {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
className: "card-body",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
- "class": "overflow-x-auto",
+ className: "overflow-x-auto",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("table", {
- "class": "table w-full table-zebra",
+ className: "table w-full table-zebra",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("thead", {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("tr", {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("th", {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("th", {
@@ -4686,7 +3677,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js");
/* harmony import */ var _inertiajs_progress__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @inertiajs/progress */ "./node_modules/@inertiajs/progress/dist/index.js");
-/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
+/* harmony import */ var react_toastify_dist_ReactToastify_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-toastify/dist/ReactToastify.css */ "./node_modules/react-toastify/dist/ReactToastify.css");
+/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
var _window$document$getE;
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
@@ -4702,6 +3694,7 @@ __webpack_require__(/*! ./bootstrap */ "./resources/js/bootstrap.js");
+
var appName = ((_window$document$getE = window.document.getElementsByTagName('title')[0]) === null || _window$document$getE === void 0 ? void 0 : _window$document$getE.innerText) || 'Laravel';
(0,_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.createInertiaApp)({
title: function title(_title) {
@@ -4714,7 +3707,7 @@ var appName = ((_window$document$getE = window.document.getElementsByTagName('ti
var el = _ref.el,
App = _ref.App,
props = _ref.props;
- return (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.render)( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(App, _objectSpread({}, props)), el);
+ return (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.render)( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(App, _objectSpread({}, props)), el);
}
});
_inertiajs_progress__WEBPACK_IMPORTED_MODULE_3__.InertiaProgress.init({
@@ -4836,6 +3829,228 @@ if ($defineProperty) {
}
+/***/ }),
+
+/***/ "./node_modules/classnames/index.js":
+/*!******************************************!*\
+ !*** ./node_modules/classnames/index.js ***!
+ \******************************************/
+/***/ ((module, exports) => {
+
+var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+/* global define */
+
+(function () {
+ 'use strict';
+
+ var hasOwn = {}.hasOwnProperty;
+
+ function classNames() {
+ var classes = [];
+
+ for (var i = 0; i < arguments.length; i++) {
+ var arg = arguments[i];
+ if (!arg) continue;
+
+ var argType = typeof arg;
+
+ if (argType === 'string' || argType === 'number') {
+ classes.push(arg);
+ } else if (Array.isArray(arg)) {
+ if (arg.length) {
+ var inner = classNames.apply(null, arg);
+ if (inner) {
+ classes.push(inner);
+ }
+ }
+ } else if (argType === 'object') {
+ if (arg.toString === Object.prototype.toString) {
+ for (var key in arg) {
+ if (hasOwn.call(arg, key) && arg[key]) {
+ classes.push(key);
+ }
+ }
+ } else {
+ classes.push(arg.toString());
+ }
+ }
+ }
+
+ return classes.join(' ');
+ }
+
+ if ( true && module.exports) {
+ classNames.default = classNames;
+ module.exports = classNames;
+ } else if (true) {
+ // register as 'classnames', consistent with npm package name
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
+ return classNames;
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {}
+}());
+
+
+/***/ }),
+
+/***/ "./node_modules/clsx/dist/clsx.m.js":
+/*!******************************************!*\
+ !*** ./node_modules/clsx/dist/clsx.m.js ***!
+ \******************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+function toVal(mix) {
+ var k, y, str='';
+
+ if (typeof mix === 'string' || typeof mix === 'number') {
+ str += mix;
+ } else if (typeof mix === 'object') {
+ if (Array.isArray(mix)) {
+ for (k=0; k < mix.length; k++) {
+ if (mix[k]) {
+ if (y = toVal(mix[k])) {
+ str && (str += ' ');
+ str += y;
+ }
+ }
+ }
+ } else {
+ for (k in mix) {
+ if (mix[k]) {
+ str && (str += ' ');
+ str += k;
+ }
+ }
+ }
+ }
+
+ return str;
+}
+
+/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
+ var i=0, tmp, x, str='';
+ while (i < arguments.length) {
+ if (tmp = arguments[i++]) {
+ if (x = toVal(tmp)) {
+ str && (str += ' ');
+ str += x
+ }
+ }
+ }
+ return str;
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./node_modules/react-toastify/dist/ReactToastify.css":
+/*!**********************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./node_modules/react-toastify/dist/ReactToastify.css ***!
+ \**********************************************************************************************************************************************************************************************************************/
+/***/ ((module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
+// Imports
+
+var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
+// Module
+___CSS_LOADER_EXPORT___.push([module.id, ":root {\n --toastify-color-light: #fff;\n --toastify-color-dark: #121212;\n --toastify-color-info: #3498db;\n --toastify-color-success: #07bc0c;\n --toastify-color-warning: #f1c40f;\n --toastify-color-error: #e74c3c;\n --toastify-color-transparent: rgba(255, 255, 255, 0.7);\n --toastify-icon-color-info: var(--toastify-color-info);\n --toastify-icon-color-success: var(--toastify-color-success);\n --toastify-icon-color-warning: var(--toastify-color-warning);\n --toastify-icon-color-error: var(--toastify-color-error);\n --toastify-toast-width: 320px;\n --toastify-toast-background: #fff;\n --toastify-toast-min-height: 64px;\n --toastify-toast-max-height: 800px;\n --toastify-font-family: sans-serif;\n --toastify-z-index: 9999;\n --toastify-text-color-light: #757575;\n --toastify-text-color-dark: #fff;\n --toastify-text-color-info: #fff;\n --toastify-text-color-success: #fff;\n --toastify-text-color-warning: #fff;\n --toastify-text-color-error: #fff;\n --toastify-spinner-color: #616161;\n --toastify-spinner-color-empty-area: #e0e0e0;\n --toastify-color-progress-light: linear-gradient(\n to right,\n #4cd964,\n #5ac8fa,\n #007aff,\n #34aadc,\n #5856d6,\n #ff2d55\n );\n --toastify-color-progress-dark: #bb86fc;\n --toastify-color-progress-info: var(--toastify-color-info);\n --toastify-color-progress-success: var(--toastify-color-success);\n --toastify-color-progress-warning: var(--toastify-color-warning);\n --toastify-color-progress-error: var(--toastify-color-error);\n}\n\n.Toastify__toast-container {\n z-index: var(--toastify-z-index);\n -webkit-transform: translate3d(0, 0, var(--toastify-z-index) px);\n position: fixed;\n padding: 4px;\n width: var(--toastify-toast-width);\n box-sizing: border-box;\n color: #fff;\n}\n.Toastify__toast-container--top-left {\n top: 1em;\n left: 1em;\n}\n.Toastify__toast-container--top-center {\n top: 1em;\n left: 50%;\n transform: translateX(-50%);\n}\n.Toastify__toast-container--top-right {\n top: 1em;\n right: 1em;\n}\n.Toastify__toast-container--bottom-left {\n bottom: 1em;\n left: 1em;\n}\n.Toastify__toast-container--bottom-center {\n bottom: 1em;\n left: 50%;\n transform: translateX(-50%);\n}\n.Toastify__toast-container--bottom-right {\n bottom: 1em;\n right: 1em;\n}\n\n@media only screen and (max-width : 480px) {\n .Toastify__toast-container {\n width: 100vw;\n padding: 0;\n left: 0;\n margin: 0;\n }\n .Toastify__toast-container--top-left, .Toastify__toast-container--top-center, .Toastify__toast-container--top-right {\n top: 0;\n transform: translateX(0);\n }\n .Toastify__toast-container--bottom-left, .Toastify__toast-container--bottom-center, .Toastify__toast-container--bottom-right {\n bottom: 0;\n transform: translateX(0);\n }\n .Toastify__toast-container--rtl {\n right: 0;\n left: initial;\n }\n}\n.Toastify__toast {\n position: relative;\n min-height: var(--toastify-toast-min-height);\n box-sizing: border-box;\n margin-bottom: 1rem;\n padding: 8px;\n border-radius: 4px;\n box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 15px 0 rgba(0, 0, 0, 0.05);\n display: flex;\n justify-content: space-between;\n max-height: var(--toastify-toast-max-height);\n overflow: hidden;\n font-family: var(--toastify-font-family);\n cursor: pointer;\n direction: ltr;\n}\n.Toastify__toast--rtl {\n direction: rtl;\n}\n.Toastify__toast-body {\n margin: auto 0;\n flex: 1 1 auto;\n padding: 6px;\n display: flex;\n align-items: center;\n}\n.Toastify__toast-body > div:last-child {\n flex: 1;\n}\n.Toastify__toast-icon {\n -webkit-margin-end: 10px;\n margin-inline-end: 10px;\n width: 20px;\n flex-shrink: 0;\n display: flex;\n}\n\n.Toastify--animate {\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-duration: 0.7s;\n animation-duration: 0.7s;\n}\n\n.Toastify--animate-icon {\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-duration: 0.3s;\n animation-duration: 0.3s;\n}\n\n@media only screen and (max-width : 480px) {\n .Toastify__toast {\n margin-bottom: 0;\n border-radius: 0;\n }\n}\n.Toastify__toast-theme--dark {\n background: var(--toastify-color-dark);\n color: var(--toastify-text-color-dark);\n}\n.Toastify__toast-theme--light {\n background: var(--toastify-color-light);\n color: var(--toastify-text-color-light);\n}\n.Toastify__toast-theme--colored.Toastify__toast--default {\n background: var(--toastify-color-light);\n color: var(--toastify-text-color-light);\n}\n.Toastify__toast-theme--colored.Toastify__toast--info {\n color: var(--toastify-text-color-info);\n background: var(--toastify-color-info);\n}\n.Toastify__toast-theme--colored.Toastify__toast--success {\n color: var(--toastify-text-color-success);\n background: var(--toastify-color-success);\n}\n.Toastify__toast-theme--colored.Toastify__toast--warning {\n color: var(--toastify-text-color-warning);\n background: var(--toastify-color-warning);\n}\n.Toastify__toast-theme--colored.Toastify__toast--error {\n color: var(--toastify-text-color-error);\n background: var(--toastify-color-error);\n}\n\n.Toastify__progress-bar-theme--light {\n background: var(--toastify-color-progress-light);\n}\n.Toastify__progress-bar-theme--dark {\n background: var(--toastify-color-progress-dark);\n}\n.Toastify__progress-bar--info {\n background: var(--toastify-color-progress-info);\n}\n.Toastify__progress-bar--success {\n background: var(--toastify-color-progress-success);\n}\n.Toastify__progress-bar--warning {\n background: var(--toastify-color-progress-warning);\n}\n.Toastify__progress-bar--error {\n background: var(--toastify-color-progress-error);\n}\n.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--success, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--error {\n background: var(--toastify-color-transparent);\n}\n\n.Toastify__close-button {\n color: #fff;\n background: transparent;\n outline: none;\n border: none;\n padding: 0;\n cursor: pointer;\n opacity: 0.7;\n transition: 0.3s ease;\n align-self: flex-start;\n}\n.Toastify__close-button--light {\n color: #000;\n opacity: 0.3;\n}\n.Toastify__close-button > svg {\n fill: currentColor;\n height: 16px;\n width: 14px;\n}\n.Toastify__close-button:hover, .Toastify__close-button:focus {\n opacity: 1;\n}\n\n@-webkit-keyframes Toastify__trackProgress {\n 0% {\n transform: scaleX(1);\n }\n 100% {\n transform: scaleX(0);\n }\n}\n\n@keyframes Toastify__trackProgress {\n 0% {\n transform: scaleX(1);\n }\n 100% {\n transform: scaleX(0);\n }\n}\n.Toastify__progress-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 5px;\n z-index: var(--toastify-z-index);\n opacity: 0.7;\n transform-origin: left;\n}\n.Toastify__progress-bar--animated {\n -webkit-animation: Toastify__trackProgress linear 1 forwards;\n animation: Toastify__trackProgress linear 1 forwards;\n}\n.Toastify__progress-bar--controlled {\n transition: transform 0.2s;\n}\n.Toastify__progress-bar--rtl {\n right: 0;\n left: initial;\n transform-origin: right;\n}\n\n.Toastify__spinner {\n width: 20px;\n height: 20px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: var(--toastify-spinner-color-empty-area);\n border-right-color: var(--toastify-spinner-color);\n -webkit-animation: Toastify__spin 0.65s linear infinite;\n animation: Toastify__spin 0.65s linear infinite;\n}\n\n@-webkit-keyframes Toastify__bounceInRight {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n\n@keyframes Toastify__bounceInRight {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@-webkit-keyframes Toastify__bounceOutRight {\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n}\n@keyframes Toastify__bounceOutRight {\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceInLeft {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0);\n }\n 75% {\n transform: translate3d(-10px, 0, 0);\n }\n 90% {\n transform: translate3d(5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes Toastify__bounceInLeft {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0);\n }\n 75% {\n transform: translate3d(-10px, 0, 0);\n }\n 90% {\n transform: translate3d(5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@-webkit-keyframes Toastify__bounceOutLeft {\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n}\n@keyframes Toastify__bounceOutLeft {\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceInUp {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n transform: translate3d(0, -5px, 0);\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__bounceInUp {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n transform: translate3d(0, -5px, 0);\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceOutUp {\n 20% {\n transform: translate3d(0, -10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n}\n@keyframes Toastify__bounceOutUp {\n 20% {\n transform: translate3d(0, -10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceInDown {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0);\n }\n 75% {\n transform: translate3d(0, -10px, 0);\n }\n 90% {\n transform: translate3d(0, 5px, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes Toastify__bounceInDown {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0);\n }\n 75% {\n transform: translate3d(0, -10px, 0);\n }\n 90% {\n transform: translate3d(0, 5px, 0);\n }\n to {\n transform: none;\n }\n}\n@-webkit-keyframes Toastify__bounceOutDown {\n 20% {\n transform: translate3d(0, 10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n}\n@keyframes Toastify__bounceOutDown {\n 20% {\n transform: translate3d(0, 10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n}\n.Toastify__bounce-enter--top-left, .Toastify__bounce-enter--bottom-left {\n -webkit-animation-name: Toastify__bounceInLeft;\n animation-name: Toastify__bounceInLeft;\n}\n.Toastify__bounce-enter--top-right, .Toastify__bounce-enter--bottom-right {\n -webkit-animation-name: Toastify__bounceInRight;\n animation-name: Toastify__bounceInRight;\n}\n.Toastify__bounce-enter--top-center {\n -webkit-animation-name: Toastify__bounceInDown;\n animation-name: Toastify__bounceInDown;\n}\n.Toastify__bounce-enter--bottom-center {\n -webkit-animation-name: Toastify__bounceInUp;\n animation-name: Toastify__bounceInUp;\n}\n\n.Toastify__bounce-exit--top-left, .Toastify__bounce-exit--bottom-left {\n -webkit-animation-name: Toastify__bounceOutLeft;\n animation-name: Toastify__bounceOutLeft;\n}\n.Toastify__bounce-exit--top-right, .Toastify__bounce-exit--bottom-right {\n -webkit-animation-name: Toastify__bounceOutRight;\n animation-name: Toastify__bounceOutRight;\n}\n.Toastify__bounce-exit--top-center {\n -webkit-animation-name: Toastify__bounceOutUp;\n animation-name: Toastify__bounceOutUp;\n}\n.Toastify__bounce-exit--bottom-center {\n -webkit-animation-name: Toastify__bounceOutDown;\n animation-name: Toastify__bounceOutDown;\n}\n\n@-webkit-keyframes Toastify__zoomIn {\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes Toastify__zoomIn {\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n@-webkit-keyframes Toastify__zoomOut {\n from {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n to {\n opacity: 0;\n }\n}\n@keyframes Toastify__zoomOut {\n from {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n to {\n opacity: 0;\n }\n}\n.Toastify__zoom-enter {\n -webkit-animation-name: Toastify__zoomIn;\n animation-name: Toastify__zoomIn;\n}\n\n.Toastify__zoom-exit {\n -webkit-animation-name: Toastify__zoomOut;\n animation-name: Toastify__zoomOut;\n}\n\n@-webkit-keyframes Toastify__flipIn {\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n to {\n transform: perspective(400px);\n }\n}\n\n@keyframes Toastify__flipIn {\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n to {\n transform: perspective(400px);\n }\n}\n@-webkit-keyframes Toastify__flipOut {\n from {\n transform: perspective(400px);\n }\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n@keyframes Toastify__flipOut {\n from {\n transform: perspective(400px);\n }\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n.Toastify__flip-enter {\n -webkit-animation-name: Toastify__flipIn;\n animation-name: Toastify__flipIn;\n}\n\n.Toastify__flip-exit {\n -webkit-animation-name: Toastify__flipOut;\n animation-name: Toastify__flipOut;\n}\n\n@-webkit-keyframes Toastify__slideInRight {\n from {\n transform: translate3d(110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n@keyframes Toastify__slideInRight {\n from {\n transform: translate3d(110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideInLeft {\n from {\n transform: translate3d(-110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__slideInLeft {\n from {\n transform: translate3d(-110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideInUp {\n from {\n transform: translate3d(0, 110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__slideInUp {\n from {\n transform: translate3d(0, 110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideInDown {\n from {\n transform: translate3d(0, -110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__slideInDown {\n from {\n transform: translate3d(0, -110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutRight {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(110%, 0, 0);\n }\n}\n@keyframes Toastify__slideOutRight {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(110%, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutLeft {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(-110%, 0, 0);\n }\n}\n@keyframes Toastify__slideOutLeft {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(-110%, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutDown {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, 500px, 0);\n }\n}\n@keyframes Toastify__slideOutDown {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, 500px, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutUp {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, -500px, 0);\n }\n}\n@keyframes Toastify__slideOutUp {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, -500px, 0);\n }\n}\n.Toastify__slide-enter--top-left, .Toastify__slide-enter--bottom-left {\n -webkit-animation-name: Toastify__slideInLeft;\n animation-name: Toastify__slideInLeft;\n}\n.Toastify__slide-enter--top-right, .Toastify__slide-enter--bottom-right {\n -webkit-animation-name: Toastify__slideInRight;\n animation-name: Toastify__slideInRight;\n}\n.Toastify__slide-enter--top-center {\n -webkit-animation-name: Toastify__slideInDown;\n animation-name: Toastify__slideInDown;\n}\n.Toastify__slide-enter--bottom-center {\n -webkit-animation-name: Toastify__slideInUp;\n animation-name: Toastify__slideInUp;\n}\n\n.Toastify__slide-exit--top-left, .Toastify__slide-exit--bottom-left {\n -webkit-animation-name: Toastify__slideOutLeft;\n animation-name: Toastify__slideOutLeft;\n}\n.Toastify__slide-exit--top-right, .Toastify__slide-exit--bottom-right {\n -webkit-animation-name: Toastify__slideOutRight;\n animation-name: Toastify__slideOutRight;\n}\n.Toastify__slide-exit--top-center {\n -webkit-animation-name: Toastify__slideOutUp;\n animation-name: Toastify__slideOutUp;\n}\n.Toastify__slide-exit--bottom-center {\n -webkit-animation-name: Toastify__slideOutDown;\n animation-name: Toastify__slideOutDown;\n}\n\n@-webkit-keyframes Toastify__spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes Toastify__spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}", ""]);
+// Exports
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/runtime/api.js":
+/*!*****************************************************!*\
+ !*** ./node_modules/css-loader/dist/runtime/api.js ***!
+ \*****************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+// css base code, injected by the css-loader
+// eslint-disable-next-line func-names
+module.exports = function (cssWithMappingToString) {
+ var list = []; // return the list of modules as css string
+
+ list.toString = function toString() {
+ return this.map(function (item) {
+ var content = cssWithMappingToString(item);
+
+ if (item[2]) {
+ return "@media ".concat(item[2], " {").concat(content, "}");
+ }
+
+ return content;
+ }).join("");
+ }; // import a list of modules into the list
+ // eslint-disable-next-line func-names
+
+
+ list.i = function (modules, mediaQuery, dedupe) {
+ if (typeof modules === "string") {
+ // eslint-disable-next-line no-param-reassign
+ modules = [[null, modules, ""]];
+ }
+
+ var alreadyImportedModules = {};
+
+ if (dedupe) {
+ for (var i = 0; i < this.length; i++) {
+ // eslint-disable-next-line prefer-destructuring
+ var id = this[i][0];
+
+ if (id != null) {
+ alreadyImportedModules[id] = true;
+ }
+ }
+ }
+
+ for (var _i = 0; _i < modules.length; _i++) {
+ var item = [].concat(modules[_i]);
+
+ if (dedupe && alreadyImportedModules[item[0]]) {
+ // eslint-disable-next-line no-continue
+ continue;
+ }
+
+ if (mediaQuery) {
+ if (!item[2]) {
+ item[2] = mediaQuery;
+ } else {
+ item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
+ }
+ }
+
+ list.push(item);
+ }
+ };
+
+ return list;
+};
+
/***/ }),
/***/ "./node_modules/deepmerge/dist/cjs.js":
@@ -53072,6 +52287,1491 @@ if (false) {} else {
}
+/***/ }),
+
+/***/ "./node_modules/react-toastify/dist/react-toastify.esm.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/react-toastify/dist/react-toastify.esm.js ***!
+ \****************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "Bounce": () => (/* binding */ Bounce),
+/* harmony export */ "Flip": () => (/* binding */ Flip),
+/* harmony export */ "Icons": () => (/* binding */ Icons),
+/* harmony export */ "Slide": () => (/* binding */ Slide),
+/* harmony export */ "ToastContainer": () => (/* binding */ ToastContainer),
+/* harmony export */ "Zoom": () => (/* binding */ Zoom),
+/* harmony export */ "collapseToast": () => (/* binding */ collapseToast),
+/* harmony export */ "cssTransition": () => (/* binding */ cssTransition),
+/* harmony export */ "toast": () => (/* binding */ toast),
+/* harmony export */ "useToast": () => (/* binding */ useToast),
+/* harmony export */ "useToastContainer": () => (/* binding */ useToastContainer)
+/* harmony export */ });
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
+/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");
+/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
+
+
+
+
+function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+}
+
+function _objectWithoutPropertiesLoose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+
+ return target;
+}
+
+function isNum(v) {
+ return typeof v === 'number' && !isNaN(v);
+}
+function isBool(v) {
+ return typeof v === 'boolean';
+}
+function isStr(v) {
+ return typeof v === 'string';
+}
+function isFn(v) {
+ return typeof v === 'function';
+}
+function parseClassName(v) {
+ return isStr(v) || isFn(v) ? v : null;
+}
+function isToastIdValid(toastId) {
+ return toastId === 0 || toastId;
+}
+function getAutoCloseDelay(toastAutoClose, containerAutoClose) {
+ return toastAutoClose === false || isNum(toastAutoClose) && toastAutoClose > 0 ? toastAutoClose : containerAutoClose;
+}
+var canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
+function canBeRendered(content) {
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(content) || isStr(content) || isFn(content) || isNum(content);
+}
+
+var POSITION = {
+ TOP_LEFT: 'top-left',
+ TOP_RIGHT: 'top-right',
+ TOP_CENTER: 'top-center',
+ BOTTOM_LEFT: 'bottom-left',
+ BOTTOM_RIGHT: 'bottom-right',
+ BOTTOM_CENTER: 'bottom-center'
+};
+var TYPE = {
+ INFO: 'info',
+ SUCCESS: 'success',
+ WARNING: 'warning',
+ ERROR: 'error',
+ DEFAULT: 'default'
+};
+
+/**
+ * Used to collapse toast after exit animation
+ */
+function collapseToast(node, done, duration
+/* COLLAPSE_DURATION */
+) {
+ if (duration === void 0) {
+ duration = 300;
+ }
+
+ var scrollHeight = node.scrollHeight,
+ style = node.style;
+ requestAnimationFrame(function () {
+ style.minHeight = 'initial';
+ style.height = scrollHeight + 'px';
+ style.transition = "all " + duration + "ms";
+ requestAnimationFrame(function () {
+ style.height = '0';
+ style.padding = '0';
+ style.margin = '0';
+ setTimeout(done, duration);
+ });
+ });
+}
+
+/**
+ * Css animation that just work.
+ * You could use animate.css for instance
+ *
+ *
+ * ```
+ * cssTransition({
+ * enter: "animate__animated animate__bounceIn",
+ * exit: "animate__animated animate__bounceOut"
+ * })
+ * ```
+ *
+ */
+
+function cssTransition(_ref) {
+ var enter = _ref.enter,
+ exit = _ref.exit,
+ _ref$appendPosition = _ref.appendPosition,
+ appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition,
+ _ref$collapse = _ref.collapse,
+ collapse = _ref$collapse === void 0 ? true : _ref$collapse,
+ _ref$collapseDuration = _ref.collapseDuration,
+ collapseDuration = _ref$collapseDuration === void 0 ? 300 : _ref$collapseDuration;
+ return function ToastTransition(_ref2) {
+ var children = _ref2.children,
+ position = _ref2.position,
+ preventExitTransition = _ref2.preventExitTransition,
+ done = _ref2.done,
+ nodeRef = _ref2.nodeRef,
+ isIn = _ref2.isIn;
+ var enterClassName = appendPosition ? enter + "--" + position : enter;
+ var exitClassName = appendPosition ? exit + "--" + position : exit;
+ var baseClassName = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
+ var animationStep = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0
+ /* Enter */
+ );
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(function () {
+ onEnter();
+ }, []);
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ if (!isIn) preventExitTransition ? onExited() : onExit();
+ }, [isIn]);
+
+ function onEnter() {
+ var node = nodeRef.current;
+ baseClassName.current = node.className;
+ node.className += " " + enterClassName;
+ node.addEventListener('animationend', onEntered);
+ }
+
+ function onEntered(e) {
+ if (e.target !== nodeRef.current) return;
+ var node = nodeRef.current;
+ node.removeEventListener('animationend', onEntered);
+
+ if (animationStep.current === 0
+ /* Enter */
+ ) {
+ node.className = baseClassName.current;
+ }
+ }
+
+ function onExit() {
+ animationStep.current = 1
+ /* Exit */
+ ;
+ var node = nodeRef.current;
+ node.className += " " + exitClassName;
+ node.addEventListener('animationend', onExited);
+ }
+
+ function onExited() {
+ var node = nodeRef.current;
+ node.removeEventListener('animationend', onExited);
+ collapse ? collapseToast(node, done, collapseDuration) : done();
+ }
+
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, children);
+ };
+}
+
+var eventManager = {
+ list: /*#__PURE__*/new Map(),
+ emitQueue: /*#__PURE__*/new Map(),
+ on: function on(event, callback) {
+ this.list.has(event) || this.list.set(event, []);
+ this.list.get(event).push(callback);
+ return this;
+ },
+ off: function off(event, callback) {
+ if (callback) {
+ var cb = this.list.get(event).filter(function (cb) {
+ return cb !== callback;
+ });
+ this.list.set(event, cb);
+ return this;
+ }
+
+ this.list["delete"](event);
+ return this;
+ },
+ cancelEmit: function cancelEmit(event) {
+ var timers = this.emitQueue.get(event);
+
+ if (timers) {
+ timers.forEach(clearTimeout);
+ this.emitQueue["delete"](event);
+ }
+
+ return this;
+ },
+
+ /**
+ * Enqueue the event at the end of the call stack
+ * Doing so let the user call toast as follow:
+ * toast('1')
+ * toast('2')
+ * toast('3')
+ * Without setTimemout the code above will not work
+ */
+ emit: function emit(event) {
+ var _this = this;
+
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ this.list.has(event) && this.list.get(event).forEach(function (callback) {
+ var timer = setTimeout(function () {
+ // @ts-ignore
+ callback.apply(void 0, args);
+ }, 0);
+ _this.emitQueue.has(event) || _this.emitQueue.set(event, []);
+
+ _this.emitQueue.get(event).push(timer);
+ });
+ }
+};
+
+/**
+ * `useKeeper` is a helper around `useRef`.
+ *
+ * You don't need to access the `.current`property to get the value
+ * If refresh is set to true. The ref will be updated every render
+ */
+
+function useKeeper(arg, refresh) {
+ if (refresh === void 0) {
+ refresh = false;
+ }
+
+ var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(arg);
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ if (refresh) ref.current = arg;
+ });
+ return ref.current;
+}
+
+function reducer(state, action) {
+ switch (action.type) {
+ case 0
+ /* ADD */
+ :
+ return [].concat(state, [action.toastId]).filter(function (id) {
+ return id !== action.staleId;
+ });
+
+ case 1
+ /* REMOVE */
+ :
+ return isToastIdValid(action.toastId) ? state.filter(function (id) {
+ return id !== action.toastId;
+ }) : [];
+ }
+}
+
+var _excluded = ["delay", "staleId"];
+function useToastContainer(props) {
+ var _useReducer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(function (x) {
+ return x + 1;
+ }, 0),
+ forceUpdate = _useReducer[1];
+
+ var _useReducer2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, []),
+ toast = _useReducer2[0],
+ dispatch = _useReducer2[1];
+
+ var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
+ var toastCount = useKeeper(0);
+ var queue = useKeeper([]);
+ var collection = useKeeper({});
+ var instance = useKeeper({
+ toastKey: 1,
+ displayedToast: 0,
+ props: props,
+ containerId: null,
+ isToastActive: isToastActive,
+ getToast: function getToast(id) {
+ return collection[id] || null;
+ }
+ });
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ instance.containerId = props.containerId;
+ eventManager.cancelEmit(3
+ /* WillUnmount */
+ ).on(0
+ /* Show */
+ , buildToast).on(1
+ /* Clear */
+ , function (toastId) {
+ return containerRef.current && removeToast(toastId);
+ }).on(5
+ /* ClearWaitingQueue */
+ , clearWaitingQueue).emit(2
+ /* DidMount */
+ , instance);
+ return function () {
+ return eventManager.emit(3
+ /* WillUnmount */
+ , instance);
+ };
+ }, []);
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ instance.isToastActive = isToastActive;
+ instance.displayedToast = toast.length;
+ eventManager.emit(4
+ /* Change */
+ , toast.length, props.containerId);
+ }, [toast]);
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ instance.props = props;
+ });
+
+ function isToastActive(id) {
+ return toast.indexOf(id) !== -1;
+ }
+
+ function clearWaitingQueue(_ref) {
+ var containerId = _ref.containerId;
+ var limit = instance.props.limit;
+
+ if (limit && (!containerId || instance.containerId === containerId)) {
+ toastCount -= queue.length;
+ queue = [];
+ }
+ }
+
+ function removeToast(toastId) {
+ dispatch({
+ type: 1
+ /* REMOVE */
+ ,
+ toastId: toastId
+ });
+ }
+
+ function dequeueToast() {
+ var _queue$shift = queue.shift(),
+ toastContent = _queue$shift.toastContent,
+ toastProps = _queue$shift.toastProps,
+ staleId = _queue$shift.staleId;
+
+ appendToast(toastContent, toastProps, staleId);
+ }
+ /**
+ * check if a container is attached to the dom
+ * check for multi-container, build only if associated
+ * check for duplicate toastId if no update
+ */
+
+
+ function isNotValid(_ref2) {
+ var containerId = _ref2.containerId,
+ toastId = _ref2.toastId,
+ updateId = _ref2.updateId;
+ return !containerRef.current || instance.props.enableMultiContainer && containerId !== instance.props.containerId || collection[toastId] && updateId == null ? true : false;
+ } // this function and all the function called inside needs to rely on ref(`useKeeper`)
+
+
+ function buildToast(content, _ref3) {
+ var _options$icon;
+
+ var delay = _ref3.delay,
+ staleId = _ref3.staleId,
+ options = _objectWithoutPropertiesLoose(_ref3, _excluded);
+
+ if (!canBeRendered(content) || isNotValid(options)) return;
+ var toastId = options.toastId,
+ updateId = options.updateId,
+ data = options.data;
+ var props = instance.props;
+
+ var closeToast = function closeToast() {
+ return removeToast(toastId);
+ };
+
+ var isNotAnUpdate = options.updateId == null;
+ if (isNotAnUpdate) toastCount++;
+ var toastProps = {
+ toastId: toastId,
+ updateId: updateId,
+ isLoading: options.isLoading,
+ theme: options.theme || props.theme,
+ icon: (_options$icon = options.icon) != null ? _options$icon : props.icon,
+ isIn: false,
+ key: options.key || instance.toastKey++,
+ type: options.type,
+ closeToast: closeToast,
+ closeButton: options.closeButton,
+ rtl: props.rtl,
+ position: options.position || props.position,
+ transition: options.transition || props.transition,
+ className: parseClassName(options.className || props.toastClassName),
+ bodyClassName: parseClassName(options.bodyClassName || props.bodyClassName),
+ style: options.style || props.toastStyle,
+ bodyStyle: options.bodyStyle || props.bodyStyle,
+ onClick: options.onClick || props.onClick,
+ pauseOnHover: isBool(options.pauseOnHover) ? options.pauseOnHover : props.pauseOnHover,
+ pauseOnFocusLoss: isBool(options.pauseOnFocusLoss) ? options.pauseOnFocusLoss : props.pauseOnFocusLoss,
+ draggable: isBool(options.draggable) ? options.draggable : props.draggable,
+ draggablePercent: isNum(options.draggablePercent) ? options.draggablePercent : props.draggablePercent,
+ draggableDirection: options.draggableDirection || props.draggableDirection,
+ closeOnClick: isBool(options.closeOnClick) ? options.closeOnClick : props.closeOnClick,
+ progressClassName: parseClassName(options.progressClassName || props.progressClassName),
+ progressStyle: options.progressStyle || props.progressStyle,
+ autoClose: options.isLoading ? false : getAutoCloseDelay(options.autoClose, props.autoClose),
+ hideProgressBar: isBool(options.hideProgressBar) ? options.hideProgressBar : props.hideProgressBar,
+ progress: options.progress,
+ role: isStr(options.role) ? options.role : props.role,
+ deleteToast: function deleteToast() {
+ removeFromCollection(toastId);
+ }
+ };
+ if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;
+ if (isFn(options.onClose)) toastProps.onClose = options.onClose; // tweak for vertical dragging
+
+ if (toastProps.draggableDirection === "y"
+ /* Y */
+ && toastProps.draggablePercent === 80
+ /* DRAGGABLE_PERCENT */
+ ) {
+ toastProps.draggablePercent *= 1.5;
+ }
+
+ var closeButton = props.closeButton;
+
+ if (options.closeButton === false || canBeRendered(options.closeButton)) {
+ closeButton = options.closeButton;
+ } else if (options.closeButton === true) {
+ closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;
+ }
+
+ toastProps.closeButton = closeButton;
+ var toastContent = content;
+
+ if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(content) && !isStr(content.type)) {
+ toastContent = (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(content, {
+ closeToast: closeToast,
+ toastProps: toastProps,
+ data: data
+ });
+ } else if (isFn(content)) {
+ toastContent = content({
+ closeToast: closeToast,
+ toastProps: toastProps,
+ data: data
+ });
+ } // not handling limit + delay by design. Waiting for user feedback first
+
+
+ if (props.limit && props.limit > 0 && toastCount > props.limit && isNotAnUpdate) {
+ queue.push({
+ toastContent: toastContent,
+ toastProps: toastProps,
+ staleId: staleId
+ });
+ } else if (isNum(delay) && delay > 0) {
+ setTimeout(function () {
+ appendToast(toastContent, toastProps, staleId);
+ }, delay);
+ } else {
+ appendToast(toastContent, toastProps, staleId);
+ }
+ }
+
+ function appendToast(content, toastProps, staleId) {
+ var toastId = toastProps.toastId;
+ if (staleId) delete collection[staleId];
+ collection[toastId] = {
+ content: content,
+ props: toastProps
+ };
+ dispatch({
+ type: 0
+ /* ADD */
+ ,
+ toastId: toastId,
+ staleId: staleId
+ });
+ }
+
+ function removeFromCollection(toastId) {
+ delete collection[toastId];
+ var queueLen = queue.length;
+ toastCount = isToastIdValid(toastId) ? toastCount - 1 : toastCount - instance.displayedToast;
+ if (toastCount < 0) toastCount = 0;
+
+ if (queueLen > 0) {
+ var freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit;
+
+ if (queueLen === 1 || freeSlot === 1) {
+ instance.displayedToast++;
+ dequeueToast();
+ } else {
+ var toDequeue = freeSlot > queueLen ? queueLen : freeSlot;
+ instance.displayedToast = toDequeue;
+
+ for (var i = 0; i < toDequeue; i++) {
+ dequeueToast();
+ }
+ }
+ } else {
+ forceUpdate();
+ }
+ }
+
+ function getToastToRender(cb) {
+ var toastToRender = {};
+ var toastList = props.newestOnTop ? Object.keys(collection).reverse() : Object.keys(collection);
+
+ for (var i = 0; i < toastList.length; i++) {
+ var _toast = collection[toastList[i]];
+ var position = _toast.props.position;
+ toastToRender[position] || (toastToRender[position] = []);
+ toastToRender[position].push(_toast);
+ }
+
+ return Object.keys(toastToRender).map(function (p) {
+ return cb(p, toastToRender[p]);
+ });
+ }
+
+ return {
+ getToastToRender: getToastToRender,
+ collection: collection,
+ containerRef: containerRef,
+ isToastActive: isToastActive
+ };
+}
+
+function getX(e) {
+ return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX;
+}
+
+function getY(e) {
+ return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY;
+}
+
+function useToast(props) {
+ var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true),
+ isRunning = _useState[0],
+ setIsRunning = _useState[1];
+
+ var _useState2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
+ preventExitTransition = _useState2[0],
+ setPreventExitTransition = _useState2[1];
+
+ var toastRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
+ var drag = useKeeper({
+ start: 0,
+ x: 0,
+ y: 0,
+ delta: 0,
+ removalDistance: 0,
+ canCloseOnClick: true,
+ canDrag: false,
+ boundingRect: null
+ });
+ var syncProps = useKeeper(props, true);
+ var autoClose = props.autoClose,
+ pauseOnHover = props.pauseOnHover,
+ closeToast = props.closeToast,
+ onClick = props.onClick,
+ closeOnClick = props.closeOnClick;
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ if (isFn(props.onOpen)) props.onOpen((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(props.children) && props.children.props);
+ return function () {
+ if (isFn(syncProps.onClose)) syncProps.onClose((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(syncProps.children) && syncProps.children.props);
+ };
+ }, []);
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ props.draggable && bindDragEvents();
+ return function () {
+ props.draggable && unbindDragEvents();
+ };
+ }, [props.draggable]);
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
+ props.pauseOnFocusLoss && bindFocusEvents();
+ return function () {
+ props.pauseOnFocusLoss && unbindFocusEvents();
+ };
+ }, [props.pauseOnFocusLoss]);
+
+ function onDragStart(e) {
+ if (props.draggable) {
+ var toast = toastRef.current;
+ drag.canCloseOnClick = true;
+ drag.canDrag = true;
+ drag.boundingRect = toast.getBoundingClientRect();
+ toast.style.transition = '';
+ drag.x = getX(e.nativeEvent);
+ drag.y = getY(e.nativeEvent);
+
+ if (props.draggableDirection === "x"
+ /* X */
+ ) {
+ drag.start = drag.x;
+ drag.removalDistance = toast.offsetWidth * (props.draggablePercent / 100);
+ } else {
+ drag.start = drag.y;
+ drag.removalDistance = toast.offsetHeight * (props.draggablePercent / 100);
+ }
+ }
+ }
+
+ function onDragTransitionEnd() {
+ if (drag.boundingRect) {
+ var _drag$boundingRect = drag.boundingRect,
+ top = _drag$boundingRect.top,
+ bottom = _drag$boundingRect.bottom,
+ left = _drag$boundingRect.left,
+ right = _drag$boundingRect.right;
+
+ if (props.pauseOnHover && drag.x >= left && drag.x <= right && drag.y >= top && drag.y <= bottom) {
+ pauseToast();
+ } else {
+ playToast();
+ }
+ }
+ }
+
+ function playToast() {
+ setIsRunning(true);
+ }
+
+ function pauseToast() {
+ setIsRunning(false);
+ }
+
+ function bindFocusEvents() {
+ if (!document.hasFocus()) pauseToast();
+ window.addEventListener('focus', playToast);
+ window.addEventListener('blur', pauseToast);
+ }
+
+ function unbindFocusEvents() {
+ window.removeEventListener('focus', playToast);
+ window.removeEventListener('blur', pauseToast);
+ }
+
+ function bindDragEvents() {
+ document.addEventListener('mousemove', onDragMove);
+ document.addEventListener('mouseup', onDragEnd);
+ document.addEventListener('touchmove', onDragMove);
+ document.addEventListener('touchend', onDragEnd);
+ }
+
+ function unbindDragEvents() {
+ document.removeEventListener('mousemove', onDragMove);
+ document.removeEventListener('mouseup', onDragEnd);
+ document.removeEventListener('touchmove', onDragMove);
+ document.removeEventListener('touchend', onDragEnd);
+ }
+
+ function onDragMove(e) {
+ if (drag.canDrag) {
+ e.preventDefault();
+ var toast = toastRef.current;
+ if (isRunning) pauseToast();
+ drag.x = getX(e);
+ drag.y = getY(e);
+
+ if (props.draggableDirection === "x"
+ /* X */
+ ) {
+ drag.delta = drag.x - drag.start;
+ } else {
+ drag.delta = drag.y - drag.start;
+ } // prevent false positif during a toast click
+
+
+ if (drag.start !== drag.x) drag.canCloseOnClick = false;
+ toast.style.transform = "translate" + props.draggableDirection + "(" + drag.delta + "px)";
+ toast.style.opacity = "" + (1 - Math.abs(drag.delta / drag.removalDistance));
+ }
+ }
+
+ function onDragEnd() {
+ var toast = toastRef.current;
+
+ if (drag.canDrag) {
+ drag.canDrag = false;
+
+ if (Math.abs(drag.delta) > drag.removalDistance) {
+ setPreventExitTransition(true);
+ props.closeToast();
+ return;
+ }
+
+ toast.style.transition = 'transform 0.2s, opacity 0.2s';
+ toast.style.transform = "translate" + props.draggableDirection + "(0)";
+ toast.style.opacity = '1';
+ }
+ }
+
+ var eventHandlers = {
+ onMouseDown: onDragStart,
+ onTouchStart: onDragStart,
+ onMouseUp: onDragTransitionEnd,
+ onTouchEnd: onDragTransitionEnd
+ };
+
+ if (autoClose && pauseOnHover) {
+ eventHandlers.onMouseEnter = pauseToast;
+ eventHandlers.onMouseLeave = playToast;
+ } // prevent toast from closing when user drags the toast
+
+
+ if (closeOnClick) {
+ eventHandlers.onClick = function (e) {
+ onClick && onClick(e);
+ drag.canCloseOnClick && closeToast();
+ };
+ }
+
+ return {
+ playToast: playToast,
+ pauseToast: pauseToast,
+ isRunning: isRunning,
+ preventExitTransition: preventExitTransition,
+ toastRef: toastRef,
+ eventHandlers: eventHandlers
+ };
+}
+
+function CloseButton(_ref) {
+ var closeToast = _ref.closeToast,
+ theme = _ref.theme,
+ _ref$ariaLabel = _ref.ariaLabel,
+ ariaLabel = _ref$ariaLabel === void 0 ? 'close' : _ref$ariaLabel;
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("button", {
+ className: "Toastify"
+ /* CSS_NAMESPACE */
+ + "__close-button " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__close-button--" + theme,
+ type: "button",
+ onClick: function onClick(e) {
+ e.stopPropagation();
+ closeToast(e);
+ },
+ "aria-label": ariaLabel
+ }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("svg", {
+ "aria-hidden": "true",
+ viewBox: "0 0 14 16"
+ }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", {
+ fillRule: "evenodd",
+ d: "M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"
+ })));
+}
+
+function ProgressBar(_ref) {
+ var _cx, _animationEvent;
+
+ var delay = _ref.delay,
+ isRunning = _ref.isRunning,
+ closeToast = _ref.closeToast,
+ type = _ref.type,
+ hide = _ref.hide,
+ className = _ref.className,
+ userStyle = _ref.style,
+ controlledProgress = _ref.controlledProgress,
+ progress = _ref.progress,
+ rtl = _ref.rtl,
+ isIn = _ref.isIn,
+ theme = _ref.theme;
+
+ var style = _extends({}, userStyle, {
+ animationDuration: delay + "ms",
+ animationPlayState: isRunning ? 'running' : 'paused',
+ opacity: hide ? 0 : 1
+ });
+
+ if (controlledProgress) style.transform = "scaleX(" + progress + ")";
+ var defaultClassName = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify"
+ /* CSS_NAMESPACE */
+ + "__progress-bar", controlledProgress ? "Toastify"
+ /* CSS_NAMESPACE */
+ + "__progress-bar--controlled" : "Toastify"
+ /* CSS_NAMESPACE */
+ + "__progress-bar--animated", "Toastify"
+ /* CSS_NAMESPACE */
+ + "__progress-bar-theme--" + theme, "Toastify"
+ /* CSS_NAMESPACE */
+ + "__progress-bar--" + type, (_cx = {}, _cx["Toastify"
+ /* CSS_NAMESPACE */
+ + "__progress-bar--rtl"] = rtl, _cx));
+ var classNames = isFn(className) ? className({
+ rtl: rtl,
+ type: type,
+ defaultClassName: defaultClassName
+ }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultClassName, className); // 🧐 controlledProgress is derived from progress
+ // so if controlledProgress is set
+ // it means that this is also the case for progress
+
+ var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : function () {
+ isIn && closeToast();
+ }, _animationEvent); // TODO: add aria-valuenow, aria-valuemax, aria-valuemin
+
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", Object.assign({
+ role: "progressbar",
+ "aria-hidden": hide ? 'true' : 'false',
+ "aria-label": "notification timer",
+ className: classNames,
+ style: style
+ }, animationEvent));
+}
+ProgressBar.defaultProps = {
+ type: TYPE.DEFAULT,
+ hide: false
+};
+
+var _excluded$1 = ["theme", "type"];
+
+var Svg = function Svg(_ref) {
+ var theme = _ref.theme,
+ type = _ref.type,
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
+
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
+ viewBox: "0 0 24 24",
+ width: "100%",
+ height: "100%",
+ fill: theme === 'colored' ? 'currentColor' : "var(--toastify-icon-color-" + type + ")"
+ }, rest));
+};
+
+function Warning(props) {
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
+ d: "M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"
+ }));
+}
+
+function Info(props) {
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
+ d: "M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"
+ }));
+}
+
+function Success(props) {
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
+ d: "M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"
+ }));
+}
+
+function Error(props) {
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
+ d: "M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"
+ }));
+}
+
+function Spinner() {
+ return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
+ className: "Toastify"
+ /* CSS_NAMESPACE */
+ + "__spinner"
+ });
+}
+
+var Icons = {
+ info: Info,
+ warning: Warning,
+ success: Success,
+ error: Error,
+ spinner: Spinner
+};
+
+var Toast = function Toast(props) {
+ var _cx, _cx2;
+
+ var _useToast = useToast(props),
+ isRunning = _useToast.isRunning,
+ preventExitTransition = _useToast.preventExitTransition,
+ toastRef = _useToast.toastRef,
+ eventHandlers = _useToast.eventHandlers;
+
+ var closeButton = props.closeButton,
+ children = props.children,
+ autoClose = props.autoClose,
+ onClick = props.onClick,
+ type = props.type,
+ hideProgressBar = props.hideProgressBar,
+ closeToast = props.closeToast,
+ Transition = props.transition,
+ position = props.position,
+ className = props.className,
+ style = props.style,
+ bodyClassName = props.bodyClassName,
+ bodyStyle = props.bodyStyle,
+ progressClassName = props.progressClassName,
+ progressStyle = props.progressStyle,
+ updateId = props.updateId,
+ role = props.role,
+ progress = props.progress,
+ rtl = props.rtl,
+ toastId = props.toastId,
+ deleteToast = props.deleteToast,
+ isIn = props.isIn,
+ isLoading = props.isLoading,
+ icon = props.icon,
+ theme = props.theme;
+ var defaultClassName = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast", "Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast-theme--" + theme, "Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast--" + type, (_cx = {}, _cx["Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast--rtl"] = rtl, _cx));
+ var cssClasses = isFn(className) ? className({
+ rtl: rtl,
+ position: position,
+ type: type,
+ defaultClassName: defaultClassName
+ }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultClassName, className);
+ var isProgressControlled = !!progress;
+ var maybeIcon = Icons[type];
+ var iconProps = {
+ theme: theme,
+ type: type
+ };
+ var Icon = maybeIcon && maybeIcon(iconProps);
+
+ if (icon === false) {
+ Icon = void 0;
+ } else if (isFn(icon)) {
+ Icon = icon(iconProps);
+ } else if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(icon)) {
+ Icon = (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(icon, iconProps);
+ } else if (isStr(icon)) {
+ Icon = icon;
+ } else if (isLoading) {
+ Icon = Icons.spinner();
+ }
+
+ function renderCloseButton(closeButton) {
+ if (!closeButton) return;
+ var props = {
+ closeToast: closeToast,
+ type: type,
+ theme: theme
+ };
+ if (isFn(closeButton)) return closeButton(props);
+ if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(closeButton)) return (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(closeButton, props);
+ }
+
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Transition, {
+ isIn: isIn,
+ done: deleteToast,
+ position: position,
+ preventExitTransition: preventExitTransition,
+ nodeRef: toastRef
+ }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", Object.assign({
+ id: toastId,
+ onClick: onClick,
+ className: cssClasses
+ }, eventHandlers, {
+ style: style,
+ ref: toastRef
+ }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", Object.assign({}, isIn && {
+ role: role
+ }, {
+ className: isFn(bodyClassName) ? bodyClassName({
+ type: type
+ }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast-body", bodyClassName),
+ style: bodyStyle
+ }), Icon && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
+ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast-icon", (_cx2 = {}, _cx2["Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate-icon " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__zoom-enter"] = !isLoading, _cx2))
+ }, Icon), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, children)), renderCloseButton(closeButton), (autoClose || isProgressControlled) && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ProgressBar, Object.assign({}, updateId && !isProgressControlled ? {
+ key: "pb-" + updateId
+ } : {}, {
+ rtl: rtl,
+ theme: theme,
+ delay: autoClose,
+ isRunning: isRunning,
+ isIn: isIn,
+ closeToast: closeToast,
+ hide: hideProgressBar,
+ type: type,
+ style: progressStyle,
+ className: progressClassName,
+ controlledProgress: isProgressControlled,
+ progress: progress
+ }))));
+};
+
+var Bounce = /*#__PURE__*/cssTransition({
+ enter: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__bounce-enter",
+ exit: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__bounce-exit",
+ appendPosition: true
+});
+var Slide = /*#__PURE__*/cssTransition({
+ enter: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__slide-enter",
+ exit: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__slide-exit",
+ appendPosition: true
+});
+var Zoom = /*#__PURE__*/cssTransition({
+ enter: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__zoom-enter",
+ exit: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__zoom-exit"
+});
+var Flip = /*#__PURE__*/cssTransition({
+ enter: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__flip-enter",
+ exit: "Toastify"
+ /* CSS_NAMESPACE */
+ + "--animate " + "Toastify"
+ /* CSS_NAMESPACE */
+ + "__flip-exit"
+});
+
+var ToastContainer = function ToastContainer(props) {
+ var _useToastContainer = useToastContainer(props),
+ getToastToRender = _useToastContainer.getToastToRender,
+ containerRef = _useToastContainer.containerRef,
+ isToastActive = _useToastContainer.isToastActive;
+
+ var className = props.className,
+ style = props.style,
+ rtl = props.rtl,
+ containerId = props.containerId;
+
+ function getClassName(position) {
+ var _cx;
+
+ var defaultClassName = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast-container", "Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast-container--" + position, (_cx = {}, _cx["Toastify"
+ /* CSS_NAMESPACE */
+ + "__toast-container--rtl"] = rtl, _cx));
+ return isFn(className) ? className({
+ position: position,
+ rtl: rtl,
+ defaultClassName: defaultClassName
+ }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultClassName, parseClassName(className));
+ }
+
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
+ ref: containerRef,
+ className: "Toastify"
+ /* CSS_NAMESPACE */
+ ,
+ id: containerId
+ }, getToastToRender(function (position, toastList) {
+ var containerStyle = toastList.length === 0 ? _extends({}, style, {
+ pointerEvents: 'none'
+ }) : _extends({}, style);
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
+ className: getClassName(position),
+ style: containerStyle,
+ key: "container-" + position
+ }, toastList.map(function (_ref) {
+ var content = _ref.content,
+ toastProps = _ref.props;
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Toast, Object.assign({}, toastProps, {
+ isIn: isToastActive(toastProps.toastId),
+ key: "toast-" + toastProps.key,
+ closeButton: toastProps.closeButton === true ? CloseButton : toastProps.closeButton
+ }), content);
+ }));
+ }));
+};
+ToastContainer.defaultProps = {
+ position: POSITION.TOP_RIGHT,
+ transition: Bounce,
+ rtl: false,
+ autoClose: 5000,
+ hideProgressBar: false,
+ closeButton: CloseButton,
+ pauseOnHover: true,
+ pauseOnFocusLoss: true,
+ closeOnClick: true,
+ newestOnTop: false,
+ draggable: true,
+ draggablePercent: 80
+ /* DRAGGABLE_PERCENT */
+ ,
+ draggableDirection: "x"
+ /* X */
+ ,
+ role: 'alert',
+ theme: 'light'
+};
+
+var containers = /*#__PURE__*/new Map();
+var latestInstance;
+var containerDomNode;
+var containerConfig;
+var queue = [];
+var lazy = false;
+/**
+ * Check whether any container is currently mounted in the DOM
+ */
+
+function isAnyContainerMounted() {
+ return containers.size > 0;
+}
+/**
+ * Get the toast by id, given it's in the DOM, otherwise returns null
+ */
+
+
+function getToast(toastId, _ref) {
+ var containerId = _ref.containerId;
+ var container = containers.get(containerId || latestInstance);
+ if (!container) return null;
+ return container.getToast(toastId);
+}
+/**
+ * Generate a random toastId
+ */
+
+
+function generateToastId() {
+ return Math.random().toString(36).substr(2, 9);
+}
+/**
+ * Generate a toastId or use the one provided
+ */
+
+
+function getToastId(options) {
+ if (options && (isStr(options.toastId) || isNum(options.toastId))) {
+ return options.toastId;
+ }
+
+ return generateToastId();
+}
+/**
+ * If the container is not mounted, the toast is enqueued and
+ * the container lazy mounted
+ */
+
+
+function dispatchToast(content, options) {
+ if (isAnyContainerMounted()) {
+ eventManager.emit(0
+ /* Show */
+ , content, options);
+ } else {
+ queue.push({
+ content: content,
+ options: options
+ });
+
+ if (lazy && canUseDom) {
+ lazy = false;
+ containerDomNode = document.createElement('div');
+ document.body.appendChild(containerDomNode);
+ (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.render)((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ToastContainer, Object.assign({}, containerConfig)), containerDomNode);
+ }
+ }
+
+ return options.toastId;
+}
+/**
+ * Merge provided options with the defaults settings and generate the toastId
+ */
+
+
+function mergeOptions(type, options) {
+ return _extends({}, options, {
+ type: options && options.type || type,
+ toastId: getToastId(options)
+ });
+}
+
+var createToastByType = function createToastByType(type) {
+ return function (content, options) {
+ return dispatchToast(content, mergeOptions(type, options));
+ };
+};
+
+var toast = function toast(content, options) {
+ return dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));
+};
+
+toast.loading = function (content, options) {
+ return dispatchToast(content, mergeOptions(TYPE.DEFAULT, _extends({
+ isLoading: true,
+ autoClose: false,
+ closeOnClick: false,
+ closeButton: false,
+ draggable: false
+ }, options)));
+};
+
+function handlePromise(promise, _ref2, options) {
+ var pending = _ref2.pending,
+ error = _ref2.error,
+ success = _ref2.success;
+ var id;
+
+ if (pending) {
+ id = isStr(pending) ? toast.loading(pending, options) : toast.loading(pending.render, _extends({}, options, pending));
+ }
+
+ var resetParams = {
+ isLoading: null,
+ autoClose: null,
+ closeOnClick: null,
+ closeButton: null,
+ draggable: null
+ };
+
+ var resolver = function resolver(type, input, result) {
+ var baseParams = _extends({
+ type: type
+ }, resetParams, options, {
+ data: result
+ });
+
+ var params = isStr(input) ? {
+ render: input
+ } : input; // if the id is set we know that it's an update
+
+ if (id) {
+ toast.update(id, _extends({}, baseParams, params));
+ } else {
+ // using toast.promise without loading
+ toast(params.render, _extends({}, baseParams, params));
+ }
+
+ return result;
+ };
+
+ var p = isFn(promise) ? promise() : promise; //call the resolvers only when needed
+
+ p.then(function (result) {
+ return success && resolver('success', success, result);
+ })["catch"](function (err) {
+ return error && resolver('error', error, err);
+ });
+ return p;
+}
+
+toast.promise = handlePromise;
+toast.success = /*#__PURE__*/createToastByType(TYPE.SUCCESS);
+toast.info = /*#__PURE__*/createToastByType(TYPE.INFO);
+toast.error = /*#__PURE__*/createToastByType(TYPE.ERROR);
+toast.warning = /*#__PURE__*/createToastByType(TYPE.WARNING);
+toast.warn = toast.warning;
+
+toast.dark = function (content, options) {
+ return dispatchToast(content, mergeOptions(TYPE.DEFAULT, _extends({
+ theme: 'dark'
+ }, options)));
+};
+/**
+ * Remove toast programmaticaly
+ */
+
+
+toast.dismiss = function (id) {
+ return eventManager.emit(1
+ /* Clear */
+ , id);
+};
+/**
+ * Clear waiting queue when limit is used
+ */
+
+
+toast.clearWaitingQueue = function (params) {
+ if (params === void 0) {
+ params = {};
+ }
+
+ return eventManager.emit(5
+ /* ClearWaitingQueue */
+ , params);
+};
+/**
+ * return true if one container is displaying the toast
+ */
+
+
+toast.isActive = function (id) {
+ var isToastActive = false;
+ containers.forEach(function (container) {
+ if (container.isToastActive && container.isToastActive(id)) {
+ isToastActive = true;
+ }
+ });
+ return isToastActive;
+};
+
+toast.update = function (toastId, options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ // if you call toast and toast.update directly nothing will be displayed
+ // this is why I defered the update
+ setTimeout(function () {
+ var toast = getToast(toastId, options);
+
+ if (toast) {
+ var oldOptions = toast.props,
+ oldContent = toast.content;
+
+ var nextOptions = _extends({}, oldOptions, options, {
+ toastId: options.toastId || toastId,
+ updateId: generateToastId()
+ });
+
+ if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;
+ var content = nextOptions.render || oldContent;
+ delete nextOptions.render;
+ dispatchToast(content, nextOptions);
+ }
+ }, 0);
+};
+/**
+ * Used for controlled progress bar.
+ */
+
+
+toast.done = function (id) {
+ toast.update(id, {
+ progress: 1
+ });
+};
+/**
+ * Track changes. The callback get the number of toast displayed
+ *
+ */
+
+
+toast.onChange = function (callback) {
+ if (isFn(callback)) {
+ eventManager.on(4
+ /* Change */
+ , callback);
+ }
+
+ return function () {
+ isFn(callback) && eventManager.off(4
+ /* Change */
+ , callback);
+ };
+};
+/**
+ * Configure the ToastContainer when lazy mounted
+ */
+
+
+toast.configure = function (config) {
+ if (config === void 0) {
+ config = {};
+ }
+
+ lazy = true;
+ containerConfig = config;
+};
+
+toast.POSITION = POSITION;
+toast.TYPE = TYPE;
+/**
+ * Wait until the ToastContainer is mounted to dispatch the toast
+ * and attach isActive method
+ */
+
+eventManager.on(2
+/* DidMount */
+, function (containerInstance) {
+ latestInstance = containerInstance.containerId || containerInstance;
+ containers.set(latestInstance, containerInstance);
+ queue.forEach(function (item) {
+ eventManager.emit(0
+ /* Show */
+ , item.content, item.options);
+ });
+ queue = [];
+}).on(3
+/* WillUnmount */
+, function (containerInstance) {
+ containers["delete"](containerInstance.containerId || containerInstance);
+
+ if (containers.size === 0) {
+ eventManager.off(0
+ /* Show */
+ ).off(1
+ /* Clear */
+ ).off(5
+ /* ClearWaitingQueue */
+ );
+ }
+
+ if (canUseDom && containerDomNode) {
+ document.body.removeChild(containerDomNode);
+ }
+});
+
+
+//# sourceMappingURL=react-toastify.esm.js.map
+
+
/***/ }),
/***/ "./node_modules/react/cjs/react-jsx-runtime.development.js":
@@ -57862,6 +58562,315 @@ module.exports = function getSideChannel() {
};
+/***/ }),
+
+/***/ "./node_modules/react-toastify/dist/ReactToastify.css":
+/*!************************************************************!*\
+ !*** ./node_modules/react-toastify/dist/ReactToastify.css ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_2_ReactToastify_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!../../postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./ReactToastify.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./node_modules/react-toastify/dist/ReactToastify.css");
+
+
+
+var options = {};
+
+options.insert = "head";
+options.singleton = false;
+
+var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_2_ReactToastify_css__WEBPACK_IMPORTED_MODULE_1__["default"], options);
+
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_2_ReactToastify_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
+ \****************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var isOldIE = function isOldIE() {
+ var memo;
+ return function memorize() {
+ if (typeof memo === 'undefined') {
+ // Test for IE <= 9 as proposed by Browserhacks
+ // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
+ // Tests for existence of standard globals is to allow style-loader
+ // to operate correctly into non-standard environments
+ // @see https://github.com/webpack-contrib/style-loader/issues/177
+ memo = Boolean(window && document && document.all && !window.atob);
+ }
+
+ return memo;
+ };
+}();
+
+var getTarget = function getTarget() {
+ var memo = {};
+ return function memorize(target) {
+ if (typeof memo[target] === 'undefined') {
+ var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
+
+ if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
+ try {
+ // This will throw an exception if access to iframe is blocked
+ // due to cross-origin restrictions
+ styleTarget = styleTarget.contentDocument.head;
+ } catch (e) {
+ // istanbul ignore next
+ styleTarget = null;
+ }
+ }
+
+ memo[target] = styleTarget;
+ }
+
+ return memo[target];
+ };
+}();
+
+var stylesInDom = [];
+
+function getIndexByIdentifier(identifier) {
+ var result = -1;
+
+ for (var i = 0; i < stylesInDom.length; i++) {
+ if (stylesInDom[i].identifier === identifier) {
+ result = i;
+ break;
+ }
+ }
+
+ return result;
+}
+
+function modulesToDom(list, options) {
+ var idCountMap = {};
+ var identifiers = [];
+
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i];
+ var id = options.base ? item[0] + options.base : item[0];
+ var count = idCountMap[id] || 0;
+ var identifier = "".concat(id, " ").concat(count);
+ idCountMap[id] = count + 1;
+ var index = getIndexByIdentifier(identifier);
+ var obj = {
+ css: item[1],
+ media: item[2],
+ sourceMap: item[3]
+ };
+
+ if (index !== -1) {
+ stylesInDom[index].references++;
+ stylesInDom[index].updater(obj);
+ } else {
+ stylesInDom.push({
+ identifier: identifier,
+ updater: addStyle(obj, options),
+ references: 1
+ });
+ }
+
+ identifiers.push(identifier);
+ }
+
+ return identifiers;
+}
+
+function insertStyleElement(options) {
+ var style = document.createElement('style');
+ var attributes = options.attributes || {};
+
+ if (typeof attributes.nonce === 'undefined') {
+ var nonce = true ? __webpack_require__.nc : 0;
+
+ if (nonce) {
+ attributes.nonce = nonce;
+ }
+ }
+
+ Object.keys(attributes).forEach(function (key) {
+ style.setAttribute(key, attributes[key]);
+ });
+
+ if (typeof options.insert === 'function') {
+ options.insert(style);
+ } else {
+ var target = getTarget(options.insert || 'head');
+
+ if (!target) {
+ throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
+ }
+
+ target.appendChild(style);
+ }
+
+ return style;
+}
+
+function removeStyleElement(style) {
+ // istanbul ignore if
+ if (style.parentNode === null) {
+ return false;
+ }
+
+ style.parentNode.removeChild(style);
+}
+/* istanbul ignore next */
+
+
+var replaceText = function replaceText() {
+ var textStore = [];
+ return function replace(index, replacement) {
+ textStore[index] = replacement;
+ return textStore.filter(Boolean).join('\n');
+ };
+}();
+
+function applyToSingletonTag(style, index, remove, obj) {
+ var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
+
+ /* istanbul ignore if */
+
+ if (style.styleSheet) {
+ style.styleSheet.cssText = replaceText(index, css);
+ } else {
+ var cssNode = document.createTextNode(css);
+ var childNodes = style.childNodes;
+
+ if (childNodes[index]) {
+ style.removeChild(childNodes[index]);
+ }
+
+ if (childNodes.length) {
+ style.insertBefore(cssNode, childNodes[index]);
+ } else {
+ style.appendChild(cssNode);
+ }
+ }
+}
+
+function applyToTag(style, options, obj) {
+ var css = obj.css;
+ var media = obj.media;
+ var sourceMap = obj.sourceMap;
+
+ if (media) {
+ style.setAttribute('media', media);
+ } else {
+ style.removeAttribute('media');
+ }
+
+ if (sourceMap && typeof btoa !== 'undefined') {
+ css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
+ } // For old IE
+
+ /* istanbul ignore if */
+
+
+ if (style.styleSheet) {
+ style.styleSheet.cssText = css;
+ } else {
+ while (style.firstChild) {
+ style.removeChild(style.firstChild);
+ }
+
+ style.appendChild(document.createTextNode(css));
+ }
+}
+
+var singleton = null;
+var singletonCounter = 0;
+
+function addStyle(obj, options) {
+ var style;
+ var update;
+ var remove;
+
+ if (options.singleton) {
+ var styleIndex = singletonCounter++;
+ style = singleton || (singleton = insertStyleElement(options));
+ update = applyToSingletonTag.bind(null, style, styleIndex, false);
+ remove = applyToSingletonTag.bind(null, style, styleIndex, true);
+ } else {
+ style = insertStyleElement(options);
+ update = applyToTag.bind(null, style, options);
+
+ remove = function remove() {
+ removeStyleElement(style);
+ };
+ }
+
+ update(obj);
+ return function updateStyle(newObj) {
+ if (newObj) {
+ if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
+ return;
+ }
+
+ update(obj = newObj);
+ } else {
+ remove();
+ }
+ };
+}
+
+module.exports = function (list, options) {
+ options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of