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: - * - *