diff --git a/.gitignore b/.gitignore index 7099806..7696596 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,7 @@ ui-kit/node_modules/ *.sqlite3 *.db /data/emails/ + +# Root JS deps +node_modules/ +flowbite-ui/node_modules/ diff --git a/Makefile b/Makefile index 5735c44..5906f3e 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,22 @@ -.PHONY: dev ui-build ui-dev css-build css-dev test db-reset fmt +.PHONY: tw-build tw-watch htmx-copy flowbite-copy assets server test db-reset fmt -dev: +tw-build: + npm --prefix flowbite-ui run tw:build + +tw-watch: + npm --prefix flowbite-ui run tw:watch + +htmx-copy: + mkdir -p web/static/vendor && cp flowbite-ui/node_modules/htmx.org/dist/htmx.min.js web/static/vendor/htmx.min.js + +flowbite-copy: + mkdir -p web/static/vendor && cp flowbite-ui/node_modules/flowbite/dist/flowbite.min.js web/static/vendor/flowbite.js + +assets: htmx-copy flowbite-copy tw-build + +server: go run ./cmd/server -ui-build: - cd ui-kit && npm i && npm run build && npm run css:build - -ui-dev: - cd ui-kit && npm i && npm run dev - -css-build: - cd ui-kit && npm i && npm run css:build - -css-dev: - cd ui-kit && npm i && npm run css:dev - test: go test ./... diff --git a/README.md b/README.md index cff6fd1..c5e64c9 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,34 @@ # GoFiber MVC Boilerplate -Boilerplate GoFiber MVC + HTMX + Svelte Custom Elements + GORM, con auth server-rendered, area private/admin e mail sink in sviluppo. +Boilerplate GoFiber MVC + HTMX + Flowbite + GORM, con auth server-rendered, area private/admin e mail sink in sviluppo. + +## Setup Assets + Server + +Terminale 1: + +```bash +npm i --prefix flowbite-ui +make assets +make tw-watch +``` + +Terminale 2: + +```bash +make server +``` + +`make assets` esegue: +- copia di `flowbite-ui/node_modules/flowbite/dist/flowbite.min.js` in `web/static/vendor/flowbite.js` +- build Tailwind in `web/static/css/app.css` ## Quickstart SQLite ```bash cp .env.example .env -make css-build -make ui-build -make dev +npm i --prefix flowbite-ui +make assets +make server ``` Default SQLite path: `./data/app.sqlite3`. @@ -37,32 +57,12 @@ DB_PG_DSN=postgres://trustcontact:trustcontact@localhost:5432/trustcontact?sslmo `DB_POSTGRES_DSN` è comunque supportato. -## Tailwind + UI Kit - -Tailwind (template server-rendered) compila in `web/static/css/app.css`. - -UI kit (Svelte custom elements) compila in `web/static/ui`. - -Comandi: - -```bash -make css-build # build tailwind -make css-dev # watch tailwind -make ui-build # build ui-kit + css tailwind -make ui-dev # vite dev server ui-kit -``` - -Layout include: - -- `/static/css/app.css?v={{.BuildHash}}` -- `/static/ui/ui.css?v={{.BuildHash}}` -- `/static/ui/ui.esm.js?v={{.BuildHash}}` - ## Template Directories - Public: `web/templates/public` - Private: `web/templates/private` - Admin: `web/templates/admin` +- Components Flowbite: `web/templates/components` ## Email in Develop @@ -70,11 +70,25 @@ In `develop`, le email vengono salvate in `./data/emails`. ## Make Targets -- `make dev` -> `go run ./cmd/server` -- `make ui-build` -> install + build ui-kit + build css tailwind -- `make ui-dev` -> watch UI con Vite -- `make css-build` -> build Tailwind CSS -- `make css-dev` -> watch Tailwind CSS +- `make tw-build` -> build Tailwind CSS +- `make tw-watch` -> watch Tailwind CSS +- `make flowbite-copy` -> copia `flowbite-ui/node_modules/flowbite/dist/flowbite.min.js` in `web/static/vendor/flowbite.js` +- `make assets` -> `flowbite-copy` + `tw-build` +- `make server` -> `go run ./cmd/server` - `make test` -> `go test ./...` - `make db-reset` -> reset DB sqlite locale (`./data/app.db` / `./data/app.sqlite3`) - `make fmt` -> `gofmt` su `cmd/` e `internal/` +# Third-Party Notices + +This project uses third-party software distributed under the MIT License. + +## Flowbite +- Package: `flowbite` +- License: MIT +- Upstream: https://github.com/themesberg/flowbite +- Full text: `licenses/FLOWBITE-MIT.txt` + +## Tailwind CSS +- Packages: `tailwindcss`, `@tailwindcss/cli` +- License: MIT +- Upstream: https://github.com/tailwindlabs/tailwindcss diff --git a/assets/tailwind/input.css b/assets/tailwind/input.css new file mode 100644 index 0000000..70e92d7 --- /dev/null +++ b/assets/tailwind/input.css @@ -0,0 +1 @@ +@import "../../flowbite-ui/node_modules/tailwindcss/index.css"; diff --git a/codex-prompt/add-flowbite.txt b/codex-prompt/add-flowbite.txt new file mode 100644 index 0000000..40daaee --- /dev/null +++ b/codex-prompt/add-flowbite.txt @@ -0,0 +1,71 @@ +TASK: Integra Flowbite (UI + JS behavior) e aggiungi Makefile per Tailwind CLI (build/watch). Uso più terminali: non aggiungere tool per runner multi-process. + +1) Dipendenze Node +- Se non esiste package.json in root, crearlo. +- Installare: + - npm install -D @tailwindcss/cli tailwindcss + - npm install flowbite + +2) Tailwind config +- Creare tailwind.config.js con: + content: [ + "./web/templates/**/*.{html,gohtml}", + "./web/static/**/*.js", + "./node_modules/flowbite/**/*.js" + ], + theme: { extend: {} }, + plugins: [ require("flowbite/plugin") ] + +3) CSS input +- Creare ./assets/tailwind/input.css con: + @import "tailwindcss"; + +4) Scripts npm +- In package.json aggiungere: + "scripts": { + "tw:build": "npx @tailwindcss/cli -i ./assets/tailwind/input.css -o ./web/static/css/app.css --minify", + "tw:watch": "npx @tailwindcss/cli -i ./assets/tailwind/input.css -o ./web/static/css/app.css --watch" + } + +5) Copia Flowbite JS +- Creare directory web/static/vendor se manca +- Copiare: + node_modules/flowbite/dist/flowbite.min.js -> web/static/vendor/flowbite.js + +6) Layout +- Aggiornare /web/templates/layout.html per includere: + + + +- Rimuovere dal layout riferimenti attivi al vecchio UI kit Svelte (ma non cancellare /ui-kit dal repo) + +7) Makefile +- Creare/aggiornare Makefile con target: + - tw-build: npm run tw:build + - tw-watch: npm run tw:watch + - flowbite-copy: mkdir -p web/static/vendor && cp node_modules/flowbite/dist/flowbite.min.js web/static/vendor/flowbite.js + - assets: flowbite-copy tw-build + - server: go run ./cmd/server +- Non creare target che avvia più processi insieme. + +8) Partials Flowbite +- Creare /web/templates/components: + - navbar.html + - modal.html + - dropdown.html + - tabs.html + - collapse.html +Con markup Flowbite + data-attributes standard, senza JS custom. + +9) Licenze +- Creare /licenses/FLOWBITE-MIT.txt e THIRD_PARTY_NOTICES.md (Flowbite MIT, Tailwind MIT). + +10) README +- Aggiornare README con istruzioni: + Terminale 1: npm i && make assets && make tw-watch + Terminale 2: make server + +Criteri: +- make assets genera CSS e copia flowbite.js +- modals/dropdowns Flowbite funzionano +- progetto compilabile e avviabile. \ No newline at end of file diff --git a/codex-prompt/flowbite-convert.txt b/codex-prompt/flowbite-convert.txt new file mode 100644 index 0000000..4350ab7 --- /dev/null +++ b/codex-prompt/flowbite-convert.txt @@ -0,0 +1,141 @@ +TASK: Convertire tutti i template HTML esistenti per usare componenti Flowbite (markup + behavior JS) mantenendo logica MVC e HTMX. + +Non modificare controller, services, repo. +Modificare solo template e layout. + +------------------------------------- +1) LAYOUT GLOBALE +------------------------------------- + +Aggiornare /web/templates/layout.html: + +- Layout container moderno Tailwind +- Navbar Flowbite responsive con: + - Logo/AppName a sinistra + - Link: + - Public: Login / Signup + - Private: Dashboard / Users + - Admin: Admin (solo se role=admin) + - Dropdown utente con logout +- Include: + + + + +Struttura: +- Navbar top +- Container max-w-7xl mx-auto p-6 +- Footer minimale + +------------------------------------- +2) PUBLIC TEMPLATES +------------------------------------- + +Convertire: + +/web/templates/public/login.html +/web/templates/public/signup.html +/web/templates/public/forgot_password.html +/web/templates/public/reset_password.html + +Usare: +- Card Flowbite per form +- Input Flowbite style +- Button primary +- Alert Flowbite per flash messages +- Layout centrato verticalmente (flex items-center justify-center min-h-screen) + +------------------------------------- +3) PRIVATE USERS +------------------------------------- + +/web/templates/private/users/index.html + +- Header sezione con: + - Titolo + - Pulsante "Nuovo Utente" (modal Flowbite) +- Search input Flowbite +- Table Flowbite styled (striped, hover) +- Pagination button Flowbite +- Modal Flowbite per dettaglio utente + +Assicurarsi che: +- hx-get +- hx-target +- hx-swap +rimangano funzionanti + +------------------------------------- +4) ADMIN +------------------------------------- + +/web/templates/admin/dashboard.html +/web/templates/admin/users.html +/web/templates/admin/audit_logs.html + +Usare: +- Card summary (stats) +- Table Flowbite +- Badge per ruoli (admin = red, user = blue) +- Tabs Flowbite se presenti più sezioni + +------------------------------------- +5) FLASH MESSAGES +------------------------------------- + +Creare partial: +- /web/templates/components/flash.html + +Usare Flowbite alert component: +- success -> green +- error -> red +- warning -> yellow + +Includere in layout sopra {{embed}} + +------------------------------------- +6) MODAL STANDARD +------------------------------------- + +Creare partial riusabile: +/web/templates/components/modal.html + +Markup Flowbite standard con: +- id dinamico +- header con titolo +- body slot +- footer slot opzionale +- data-modal-toggle attributes + +Usare nelle pagine private. + +------------------------------------- +7) ACCESSIBILITÀ +------------------------------------- + +- Usare aria attributes corretti come in documentazione Flowbite +- Non rompere keyboard interaction +- Mantenere form method e csrf se presente + +------------------------------------- +8) RESPONSIVE DESIGN +------------------------------------- + +- Navbar collapse mobile +- Table scrollable mobile +- Forms full width mobile + +------------------------------------- +9) CRITERI DI ACCETTAZIONE +------------------------------------- + +- Tutte le pagine hanno layout moderno Flowbite +- Modals funzionano +- Dropdown funzionano +- Navbar responsive +- HTMX partial update continua a funzionare +- Nessuna modifica backend richiesta +- Nessun errore JS in console + +Scrivere codice pulito, leggibile, con commenti minimi. +Non eliminare logica Go template esistente. \ No newline at end of file diff --git a/pitch.md b/docs/pitch.md similarity index 100% rename from pitch.md rename to docs/pitch.md diff --git a/security.md b/docs/security.md similarity index 100% rename from security.md rename to docs/security.md diff --git a/secutity architecture.md b/docs/secutity architecture.md similarity index 100% rename from secutity architecture.md rename to docs/secutity architecture.md diff --git a/flowbite-ui/input.css b/flowbite-ui/input.css new file mode 100644 index 0000000..f7c8b18 --- /dev/null +++ b/flowbite-ui/input.css @@ -0,0 +1,5 @@ +@config "./tailwind.config.js"; +@source "../web/templates/**/*.{html,gohtml}"; +@source "../web/static/**/*.js"; +@source "./node_modules/flowbite/**/*.js"; +@import "tailwindcss"; diff --git a/flowbite-ui/package-lock.json b/flowbite-ui/package-lock.json new file mode 100644 index 0000000..af3aadc --- /dev/null +++ b/flowbite-ui/package-lock.json @@ -0,0 +1,1312 @@ +{ + "name": "trustcontact-flowbite", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "trustcontact-flowbite", + "version": "1.0.0", + "dependencies": { + "flowbite": "^3.1.2", + "htmx.org": "^2.0.6" + }, + "devDependencies": { + "@tailwindcss/cli": "^4.1.13", + "tailwindcss": "^4.1.13" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@tailwindcss/cli": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.2.0.tgz", + "integrity": "sha512-C62SWDp+6Rj5DHJDlMyAqESpmljiQ35H4SncAcVn3Gm0rEPrKFDIdAheT74s9zAbrsa2D/L+jJaPgCO1fyZG6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "4.2.0", + "@tailwindcss/oxide": "4.2.0", + "enhanced-resolve": "^5.19.0", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.2.0" + }, + "bin": { + "tailwindcss": "dist/index.mjs" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.0.tgz", + "integrity": "sha512-Yv+fn/o2OmL5fh/Ir62VXItdShnUxfpkMA4Y7jdeC8O81WPB8Kf6TT6GSHvnqgSwDzlB5iT7kDpeXxLsUS0T6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.31.1", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.0" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.0.tgz", + "integrity": "sha512-AZqQzADaj742oqn2xjl5JbIOzZB/DGCYF/7bpvhA8KvjUj9HJkag6bBuwZvH1ps6dfgxNHyuJVlzSr2VpMgdTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.0", + "@tailwindcss/oxide-darwin-arm64": "4.2.0", + "@tailwindcss/oxide-darwin-x64": "4.2.0", + "@tailwindcss/oxide-freebsd-x64": "4.2.0", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.0", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.0", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.0", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.0", + "@tailwindcss/oxide-linux-x64-musl": "4.2.0", + "@tailwindcss/oxide-wasm32-wasi": "4.2.0", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.0", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.0" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.0.tgz", + "integrity": "sha512-F0QkHAVaW/JNBWl4CEKWdZ9PMb0khw5DCELAOnu+RtjAfx5Zgw+gqCHFvqg3AirU1IAd181fwOtJQ5I8Yx5wtw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.0.tgz", + "integrity": "sha512-I0QylkXsBsJMZ4nkUNSR04p6+UptjcwhcVo3Zu828ikiEqHjVmQL9RuQ6uT/cVIiKpvtVA25msu/eRV97JeNSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.0.tgz", + "integrity": "sha512-6TmQIn4p09PBrmnkvbYQ0wbZhLtbaksCDx7Y7R3FYYx0yxNA7xg5KP7dowmQ3d2JVdabIHvs3Hx4K3d5uCf8xg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.0.tgz", + "integrity": "sha512-qBudxDvAa2QwGlq9y7VIzhTvp2mLJ6nD/G8/tI70DCDoneaUeLWBJaPcbfzqRIWraj+o969aDQKvKW9dvkUizw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.0.tgz", + "integrity": "sha512-7XKkitpy5NIjFZNUQPeUyNJNJn1CJeV7rmMR+exHfTuOsg8rxIO9eNV5TSEnqRcaOK77zQpsyUkBWmPy8FgdSg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.0.tgz", + "integrity": "sha512-Mff5a5Q3WoQR01pGU1gr29hHM1N93xYrKkGXfPw/aRtK4bOc331Ho4Tgfsm5WDGvpevqMpdlkCojT3qlCQbCpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.0.tgz", + "integrity": "sha512-XKcSStleEVnbH6W/9DHzZv1YhjE4eSS6zOu2eRtYAIh7aV4o3vIBs+t/B15xlqoxt6ef/0uiqJVB6hkHjWD/0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.0.tgz", + "integrity": "sha512-/hlXCBqn9K6fi7eAM0RsobHwJYa5V/xzWspVTzxnX+Ft9v6n+30Pz8+RxCn7sQL/vRHHLS30iQPrHQunu6/vJA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.0.tgz", + "integrity": "sha512-lKUaygq4G7sWkhQbfdRRBkaq4LY39IriqBQ+Gk6l5nKq6Ay2M2ZZb1tlIyRNgZKS8cbErTwuYSor0IIULC0SHw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.0.tgz", + "integrity": "sha512-xuDjhAsFdUuFP5W9Ze4k/o4AskUtI8bcAGU4puTYprr89QaYFmhYOPfP+d1pH+k9ets6RoE23BXZM1X1jJqoyw==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.0.tgz", + "integrity": "sha512-2UU/15y1sWDEDNJXxEIrfWKC2Yb4YgIW5Xz2fKFqGzFWfoMHWFlfa1EJlGO2Xzjkq/tvSarh9ZTjvbxqWvLLXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.0.tgz", + "integrity": "sha512-CrFadmFoc+z76EV6LPG1jx6XceDsaCG3lFhyLNo/bV9ByPrE+FnBPckXQVP4XRkN76h3Fjt/a+5Er/oA/nCBvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/flowbite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-3.1.2.tgz", + "integrity": "sha512-MkwSgbbybCYgMC+go6Da5idEKUFfMqc/AmSjm/2ZbdmvoKf5frLPq/eIhXc9P+rC8t9boZtUXzHDgt5whZ6A/Q==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.3", + "flowbite-datepicker": "^1.3.1", + "mini-svg-data-uri": "^1.4.3", + "postcss": "^8.5.1" + } + }, + "node_modules/flowbite-datepicker": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/flowbite-datepicker/-/flowbite-datepicker-1.3.2.tgz", + "integrity": "sha512-6Nfm0MCVX3mpaR7YSCjmEO2GO8CDt6CX8ZpQnGdeu03WUCWtEPQ/uy0PUiNtIJjJZWnX0Cm3H55MOhbD1g+E/g==", + "license": "MIT", + "dependencies": { + "@rollup/plugin-node-resolve": "^15.2.3", + "flowbite": "^2.0.0" + } + }, + "node_modules/flowbite-datepicker/node_modules/flowbite": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-2.5.2.tgz", + "integrity": "sha512-kwFD3n8/YW4EG8GlY3Od9IoKND97kitO+/ejISHSqpn3vw2i5K/+ZI8Jm2V+KC4fGdnfi0XZ+TzYqQb4Q1LshA==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.3", + "flowbite-datepicker": "^1.3.0", + "mini-svg-data-uri": "^1.4.3" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/htmx.org": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/htmx.org/-/htmx.org-2.0.8.tgz", + "integrity": "sha512-fm297iru0iWsNJlBrjvtN7V9zjaxd+69Oqjh4F/Vq9Wwi2kFisLcrLCiv5oBX0KLfOX/zG8AUo9ROMU5XUB44Q==", + "license": "0BSD" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", + "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.31.1", + "lightningcss-darwin-arm64": "1.31.1", + "lightningcss-darwin-x64": "1.31.1", + "lightningcss-freebsd-x64": "1.31.1", + "lightningcss-linux-arm-gnueabihf": "1.31.1", + "lightningcss-linux-arm64-gnu": "1.31.1", + "lightningcss-linux-arm64-musl": "1.31.1", + "lightningcss-linux-x64-gnu": "1.31.1", + "lightningcss-linux-x64-musl": "1.31.1", + "lightningcss-win32-arm64-msvc": "1.31.1", + "lightningcss-win32-x64-msvc": "1.31.1" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", + "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz", + "integrity": "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", + "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", + "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", + "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", + "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", + "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", + "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", + "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", + "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", + "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.0.tgz", + "integrity": "sha512-yYzTZ4++b7fNYxFfpnberEEKu43w44aqDMNM9MHMmcKuCH7lL8jJ4yJ7LGHv7rSwiqM0nkiobF9I6cLlpS2P7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + } + } +} diff --git a/flowbite-ui/package.json b/flowbite-ui/package.json new file mode 100644 index 0000000..61bb3a0 --- /dev/null +++ b/flowbite-ui/package.json @@ -0,0 +1,17 @@ +{ + "name": "trustcontact-flowbite", + "private": true, + "version": "1.0.0", + "scripts": { + "tw:build": "npx @tailwindcss/cli -i ./input.css -o ../web/static/css/app.css --minify", + "tw:watch": "npx @tailwindcss/cli -i ./input.css -o ../web/static/css/app.css --watch" + }, + "devDependencies": { + "@tailwindcss/cli": "^4.1.13", + "tailwindcss": "^4.1.13" + }, + "dependencies": { + "flowbite": "^3.1.2", + "htmx.org": "^2.0.6" + } +} diff --git a/flowbite-ui/tailwind.config.js b/flowbite-ui/tailwind.config.js new file mode 100644 index 0000000..c89e46e --- /dev/null +++ b/flowbite-ui/tailwind.config.js @@ -0,0 +1,9 @@ +module.exports = { + content: [ + "../web/templates/**/*.{html,gohtml}", + "../web/static/**/*.js", + "./node_modules/flowbite/**/*.js" + ], + theme: { extend: {} }, + plugins: [require("flowbite/plugin")] +}; diff --git a/licenses/FLOWBITE-MIT.txt b/licenses/FLOWBITE-MIT.txt new file mode 100644 index 0000000..d7bc06a --- /dev/null +++ b/licenses/FLOWBITE-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Themesberg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/web/static/css/app.css b/web/static/css/app.css index c90737a..e74da59 100644 --- a/web/static/css/app.css +++ b/web/static/css/app.css @@ -1,1116 +1,3536 @@ -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -/* -! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -7. Disable tap highlights on iOS -*/ - -html, -:host { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ - -webkit-tap-highlight-color: transparent; - /* 7 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font-family by default. -2. Use the user's configured `mono` font-feature-settings by default. -3. Use the user's configured `mono` font-variation-settings by default. -4. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-feature-settings: normal; - /* 2 */ - font-variation-settings: normal; - /* 3 */ - font-size: 1em; - /* 4 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-feature-settings: inherit; - /* 1 */ - font-variation-settings: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - letter-spacing: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -input:where([type='button']), -input:where([type='reset']), -input:where([type='submit']) { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Reset default styling for dialogs. -*/ - -dialog { - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden]:where(:not([hidden="until-found"])) { - display: none; -} - -body { - margin: 0px; - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(30 41 59 / var(--tw-text-opacity, 1)); -} - -a { - --tw-text-opacity: 1; - color: rgb(30 41 59 / var(--tw-text-opacity, 1)); -} - -.row { - display: flex; - flex-wrap: wrap; - gap: 0.5rem; -} - -.muted { - font-size: 0.875rem; - line-height: 1.25rem; - --tw-text-opacity: 1; - color: rgb(100 116 139 / var(--tw-text-opacity, 1)); -} - -.btn-primary { - border-radius: 0.5rem; - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1)); - padding-left: 1rem; - padding-right: 1rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} - -.btn-primary:hover { - --tw-bg-opacity: 1; - background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1)); -} - -.fixed { - position: fixed; -} - -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - -.mx-auto { - margin-left: auto; - margin-right: auto; -} - -.my-5 { - margin-top: 1.25rem; - margin-bottom: 1.25rem; -} - -.ml-auto { - margin-left: auto; -} - -.mb-1 { - margin-bottom: 0.25rem; -} - -.mb-4 { - margin-bottom: 1rem; -} - -.mb-6 { - margin-bottom: 1.5rem; -} - -.mt-3 { - margin-top: 0.75rem; -} - -.mt-4 { - margin-top: 1rem; -} - -.mb-3 { - margin-bottom: 0.75rem; -} - -.block { - display: block; -} - -.flex { - display: flex; -} - -.table { - display: table; -} - -.grid { - display: grid; -} - -.hidden { - display: none; -} - -.h-16 { - height: 4rem; -} - -.h-8 { - height: 2rem; -} - -.w-16 { - width: 4rem; -} - -.w-8 { - width: 2rem; -} - -.w-full { - width: 100%; -} - -.max-w-5xl { - max-width: 64rem; -} - -.max-w-96 { - max-width: 24rem; -} - -.cursor-pointer { - cursor: pointer; -} - -.items-center { - align-items: center; -} - -.justify-center { - justify-content: center; -} - -.justify-between { - justify-content: space-between; -} - -.gap-3 { - gap: 0.75rem; -} - -.gap-8 { - gap: 2rem; -} - -.space-y-3 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); -} - -.space-y-5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); -} - -.rounded-lg { - border-radius: 0.5rem; -} - -.rounded-xl { - border-radius: 0.75rem; -} - -.rounded-full { - border-radius: 9999px; -} - -.border { - border-width: 1px; -} - -.border-b { - border-bottom-width: 1px; -} - -.border-slate-300 { - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity, 1)); -} - -.border-gray-200 { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); -} - -.border-gray-300 { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); -} - -.bg-slate-900 { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1)); -} - -.bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} - -.bg-blue-100 { - --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); -} - -.bg-blue-500 { - --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); -} - -.bg-amber-100 { - --tw-bg-opacity: 1; - background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1)); -} - -.bg-amber-500 { - --tw-bg-opacity: 1; - background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1)); -} - -.bg-emerald-100 { - --tw-bg-opacity: 1; - background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1)); -} - -.bg-emerald-500 { - --tw-bg-opacity: 1; - background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1)); -} - -.bg-violet-100 { - --tw-bg-opacity: 1; - background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1)); -} - -.bg-violet-500 { - --tw-bg-opacity: 1; - background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1)); -} - -.bg-indigo-500 { - --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1)); -} - -.p-5 { - padding: 1.25rem; -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.px-3 { - padding-left: 0.75rem; - padding-right: 0.75rem; -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} - -.py-8 { - padding-top: 2rem; - padding-bottom: 2rem; -} - -.px-8 { - padding-left: 2rem; - padding-right: 2rem; -} - -.py-4 { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.text-center { - text-align: center; -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - -.font-semibold { - font-weight: 600; -} - -.font-bold { - font-weight: 700; -} - -.font-medium { - font-weight: 500; -} - -.text-slate-200 { - --tw-text-opacity: 1; - color: rgb(226 232 240 / var(--tw-text-opacity, 1)); -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} - -.text-blue-500 { - --tw-text-opacity: 1; - color: rgb(59 130 246 / var(--tw-text-opacity, 1)); -} - -.text-gray-700 { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)); -} - -.text-gray-800 { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)); -} - -.text-slate-600 { - --tw-text-opacity: 1; - color: rgb(71 85 105 / var(--tw-text-opacity, 1)); -} - -.text-amber-500 { - --tw-text-opacity: 1; - color: rgb(245 158 11 / var(--tw-text-opacity, 1)); -} - -.text-emerald-500 { - --tw-text-opacity: 1; - color: rgb(16 185 129 / var(--tw-text-opacity, 1)); -} - -.text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} - -.text-violet-500 { - --tw-text-opacity: 1; - color: rgb(139 92 246 / var(--tw-text-opacity, 1)); -} - -.text-slate-700 { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity, 1)); -} - -.text-slate-800 { - --tw-text-opacity: 1; - color: rgb(30 41 59 / var(--tw-text-opacity, 1)); -} - -.shadow-sm { - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.outline-none { - outline: 2px solid transparent; - outline-offset: 2px; -} - -.outline { - outline-style: solid; -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-all { - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.duration-300 { - transition-duration: 300ms; -} - -.hover\:bg-slate-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-blue-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-amber-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-emerald-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-violet-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-indigo-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1)); -} - -.hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} - -.hover\:text-blue-600:hover { - --tw-text-opacity: 1; - color: rgb(37 99 235 / var(--tw-text-opacity, 1)); -} - -.hover\:text-slate-800:hover { - --tw-text-opacity: 1; - color: rgb(30 41 59 / var(--tw-text-opacity, 1)); -} - -.hover\:text-slate-900:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity, 1)); -} - -.focus\:border-blue-500:focus { - --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); -} - -.focus\:border-amber-500:focus { - --tw-border-opacity: 1; - border-color: rgb(245 158 11 / var(--tw-border-opacity, 1)); -} - -.focus\:border-emerald-500:focus { - --tw-border-opacity: 1; - border-color: rgb(16 185 129 / var(--tw-border-opacity, 1)); -} - -.focus\:border-violet-500:focus { - --tw-border-opacity: 1; - border-color: rgb(139 92 246 / var(--tw-border-opacity, 1)); -} - -.focus\:ring-2:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.focus\:ring-blue-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)); -} - -.focus\:ring-amber-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1)); -} - -.focus\:ring-emerald-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity, 1)); -} - -.focus\:ring-violet-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity, 1)); -} - -@media (min-width: 640px) { - .sm\:flex { +/*! tailwindcss v4.2.0 | MIT License | https://tailwindcss.com */ +@layer properties; +@layer theme, base, components, utilities; +@layer theme { + :root, :host { + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; + --color-red-50: oklch(97.1% 0.013 17.38); + --color-red-100: oklch(93.6% 0.032 17.717); + --color-red-200: oklch(88.5% 0.062 18.334); + --color-red-700: oklch(50.5% 0.213 27.518); + --color-red-800: oklch(44.4% 0.177 26.899); + --color-yellow-50: oklch(98.7% 0.026 102.212); + --color-yellow-200: oklch(94.5% 0.129 101.54); + --color-yellow-800: oklch(47.6% 0.114 61.907); + --color-green-50: oklch(98.2% 0.018 155.826); + --color-green-200: oklch(92.5% 0.084 155.995); + --color-green-800: oklch(44.8% 0.119 151.328); + --color-blue-50: oklch(97% 0.014 254.604); + --color-blue-100: oklch(93.2% 0.032 255.585); + --color-blue-200: oklch(88.2% 0.059 254.128); + --color-blue-300: oklch(80.9% 0.105 251.813); + --color-blue-500: oklch(62.3% 0.214 259.815); + --color-blue-600: oklch(54.6% 0.245 262.881); + --color-blue-700: oklch(48.8% 0.243 264.376); + --color-blue-800: oklch(42.4% 0.199 265.638); + --color-blue-900: oklch(37.9% 0.146 265.522); + --color-gray-50: oklch(98.5% 0.002 247.839); + --color-gray-100: oklch(96.7% 0.003 264.542); + --color-gray-200: oklch(92.8% 0.006 264.531); + --color-gray-300: oklch(87.2% 0.01 258.338); + --color-gray-400: oklch(70.7% 0.022 261.325); + --color-gray-500: oklch(55.1% 0.027 264.364); + --color-gray-600: oklch(44.6% 0.03 256.802); + --color-gray-700: oklch(37.3% 0.034 259.733); + --color-gray-800: oklch(27.8% 0.033 256.848); + --color-gray-900: oklch(21% 0.034 264.665); + --color-white: #fff; + --spacing: 0.25rem; + --breakpoint-xl: 80rem; + --container-md: 28rem; + --container-xl: 36rem; + --container-2xl: 42rem; + --container-7xl: 80rem; + --text-xs: 0.75rem; + --text-xs--line-height: calc(1 / 0.75); + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --text-base: 1rem; + --text-base--line-height: calc(1.5 / 1); + --text-lg: 1.125rem; + --text-lg--line-height: calc(1.75 / 1.125); + --text-xl: 1.25rem; + --text-xl--line-height: calc(1.75 / 1.25); + --text-2xl: 1.5rem; + --text-2xl--line-height: calc(2 / 1.5); + --text-3xl: 1.875rem; + --text-3xl--line-height: calc(2.25 / 1.875); + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --leading-relaxed: 1.625; + --radius-sm: 0.25rem; + --radius-lg: 0.5rem; + --ease-out: cubic-bezier(0, 0, 0.2, 1); + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, ::after, ::before, ::backdrop, ::file-selector-button { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0 solid; + } + html, :host { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + tab-size: 4; + font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); + font-feature-settings: var(--default-font-feature-settings, normal); + font-variation-settings: var(--default-font-variation-settings, normal); + -webkit-tap-highlight-color: transparent; + } + hr { + height: 0; + color: inherit; + border-top-width: 1px; + } + abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + h1, h2, h3, h4, h5, h6 { + font-size: inherit; + font-weight: inherit; + } + a { + color: inherit; + -webkit-text-decoration: inherit; + text-decoration: inherit; + } + b, strong { + font-weight: bolder; + } + code, kbd, samp, pre { + font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); + font-feature-settings: var(--default-mono-font-feature-settings, normal); + font-variation-settings: var(--default-mono-font-variation-settings, normal); + font-size: 1em; + } + small { + font-size: 80%; + } + sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.5em; + } + table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; + } + :-moz-focusring { + outline: auto; + } + progress { + vertical-align: baseline; + } + summary { + display: list-item; + } + ol, ul, menu { + list-style: none; + } + img, svg, video, canvas, audio, iframe, embed, object { + display: block; + vertical-align: middle; + } + img, video { + max-width: 100%; + height: auto; + } + button, input, select, optgroup, textarea, ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + border-radius: 0; + background-color: transparent; + opacity: 1; + } + :where(select:is([multiple], [size])) optgroup { + font-weight: bolder; + } + :where(select:is([multiple], [size])) optgroup option { + padding-inline-start: 20px; + } + ::file-selector-button { + margin-inline-end: 4px; + } + ::placeholder { + opacity: 1; + } + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, currentcolor 50%, transparent); + } + } + } + textarea { + resize: vertical; + } + ::-webkit-search-decoration { + -webkit-appearance: none; + } + ::-webkit-date-and-time-value { + min-height: 1lh; + text-align: inherit; + } + ::-webkit-datetime-edit { + display: inline-flex; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + ::-webkit-calendar-picker-indicator { + line-height: 1; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { + appearance: button; + } + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden="until-found"])) { + display: none !important; + } +} +@layer utilities { + .collapse { + visibility: collapse; + } + .invisible { + visibility: hidden; + } + .visible { + visibility: visible; + } + .datatable-wrapper { + width: 100%; + & .datatable-top { + display: flex; + justify-content: space-between; + flex-direction: column-reverse; + align-items: start; + gap: 1rem; + margin-bottom: 1rem; + @media (min-width: 640px) { + flex-direction: row-reverse; + align-items: center; + } + } + & .datatable-search .datatable-input { + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + background-color: var(--color-gray-50); + min-width: 16rem; + } + & .datatable-input { + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + background-color: var(--color-gray-50); + min-width: 16rem; + } + .dark & .datatable-search .datatable-input { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + .dark & .datatable-input { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + & thead th .datatable-input { + background-color: white; + font-weight: 400; + color: var(--color-gray-900); + padding-top: .35rem; + padding-bottom: .35rem; + min-width: 0; + } + .dark & thead th .datatable-input { + background-color: var(--color-gray-700); + border-color: var(--color-gray-600); + color: white; + } + & .datatable-top .datatable-dropdown { + color: var(--color-gray-500); + font-size: 0.875rem; + } + .dark & .datatable-top .datatable-dropdown { + color: var(--color-gray-400); + } + & .datatable-top .datatable-dropdown .datatable-selector { + background-color: var(--color-gray-50); + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + margin-right: 0.25rem; + min-width: 4rem; + } + .dark & .datatable-top .datatable-dropdown .datatable-selector { + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + color: white; + } + & .datatable-container thead tr.search-filtering-row th { + padding-top: 0; + } + & .datatable-search .datatable-input:focus { + border-color: var(--color-blue-600); + } + & .datatable-container { + overflow-x: auto; + } + & .datatable-table { + width: 100%; + font-size: 0.875rem; + color: var(--color-gray-500); + text-align: left; + } + .dark & .datatable-table { + color: var(--color-gray-400); + } + & .datatable-table thead { + font-size: 0.75rem; + color: var(--color-gray-500); + background-color: var(--color-gray-50); + } + .dark & .datatable-table thead { + color: var(--color-gray-400); + background-color: var(--color-gray-800); + } + & .datatable-table thead th { + white-space: nowrap; + } + & .datatable-table thead th { + width: auto !important; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + & .datatable-table tbody th { + width: auto !important; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + & .datatable-table tbody td { + width: auto !important; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + & .datatable-table thead th .datatable-sorter { + text-transform: uppercase; + } + & .datatable-table thead th { + text-transform: uppercase; + } + & .datatable-table thead th .datatable-sorter:hover { + color: var(--color-gray-900); + } + & .datatable-table thead th.datatable-ascending .datatable-sorter { + color: var(--color-gray-900); + } + & .datatable-table thead th.datatable-descending .datatable-sorter { + color: var(--color-gray-900); + } + .dark & .datatable-table thead th .datatable-sorter:hover { + color: white; + } + .dark & .datatable-table thead th.datatable-ascending .datatable-sorter { + color: white; + } + .dark & .datatable-table thead th.datatable-descending .datatable-sorter { + color: white; + } + & .datatable-table tbody tr.selected { + background-color: var(--color-gray-100); + } + .dark & .datatable-table tbody tr.selected { + background-color: var(--color-gray-700); + } + & .datatable-table tbody tr { + border-bottom: 1px solid var(--color-gray-200); + } + .dark & .datatable-table tbody tr { + border-bottom: 1px solid var(--color-gray-700); + } + & .datatable-table .datatable-empty { + text-align: center; + } + & .datatable-bottom { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: start; + margin-top: 1rem; + gap: 1rem; + @media (min-width: 640px) { + flex-direction: row; + align-items: center; + } + } + & .datatable-bottom .datatable-info { + color: var(--color-gray-500); + font-size: 0.875rem; + } + .dark & .datatable-bottom .datatable-info { + color: var(--color-gray-400); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list { + display: flex; + align-items: center; + height: 2rem; + font-size: 0.875rem; + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link { + display: flex; + align-items: center; + color: var(--color-gray-500); + font-weight: 500; + padding-left: 0.75rem; + padding-right: 0.75rem; + height: 2rem; + font-size: 0.875rem; + border-top: 1px solid var(--color-gray-300); + border-bottom: 1px solid var(--color-gray-300); + border-right: 1px solid var(--color-gray-300); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link { + color: var(--color-gray-400); + border-color: var(--color-gray-700); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type { + position: relative; + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type { + position: relative; + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + left: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(-50%, -50%); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + right: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(50%, -50%); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; + border-left: 1px solid var(--color-gray-300); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-left: 1px solid var(--color-gray-700); + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + border-left: 0; + } + & .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-50); + color: var(--color-gray-700); + } + .dark & .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-700); + color: white; + } + } + .datatable-bottom { + .datatable-wrapper & { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: start; + margin-top: 1rem; + gap: 1rem; + @media (min-width: 640px) { + flex-direction: row; + align-items: center; + } + } + .datatable-wrapper & .datatable-info { + color: var(--color-gray-500); + font-size: 0.875rem; + } + .dark .datatable-wrapper & .datatable-info { + color: var(--color-gray-400); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list { + display: flex; + align-items: center; + height: 2rem; + font-size: 0.875rem; + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item-link { + display: flex; + align-items: center; + color: var(--color-gray-500); + font-weight: 500; + padding-left: 0.75rem; + padding-right: 0.75rem; + height: 2rem; + font-size: 0.875rem; + border-top: 1px solid var(--color-gray-300); + border-bottom: 1px solid var(--color-gray-300); + border-right: 1px solid var(--color-gray-300); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item-link { + color: var(--color-gray-400); + border-color: var(--color-gray-700); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type { + position: relative; + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type { + position: relative; + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + left: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(-50%, -50%); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + right: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(50%, -50%); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; + border-left: 1px solid var(--color-gray-300); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-left: 1px solid var(--color-gray-700); + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + border-left: 0; + } + .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-50); + color: var(--color-gray-700); + } + .dark .datatable-wrapper & .datatable-pagination .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-700); + color: white; + } + } + .datatable-pagination { + .datatable-wrapper .datatable-bottom & .datatable-pagination-list { + display: flex; + align-items: center; + height: 2rem; + font-size: 0.875rem; + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item-link { + display: flex; + align-items: center; + color: var(--color-gray-500); + font-weight: 500; + padding-left: 0.75rem; + padding-right: 0.75rem; + height: 2rem; + font-size: 0.875rem; + border-top: 1px solid var(--color-gray-300); + border-bottom: 1px solid var(--color-gray-300); + border-right: 1px solid var(--color-gray-300); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item-link { + color: var(--color-gray-400); + border-color: var(--color-gray-700); + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type { + position: relative; + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type { + position: relative; + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + left: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(-50%, -50%); + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + right: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(50%, -50%); + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; + border-left: 1px solid var(--color-gray-300); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-left: 1px solid var(--color-gray-700); + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + border-left: 0; + } + .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-50); + color: var(--color-gray-700); + } + .dark .datatable-wrapper .datatable-bottom & .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-700); + color: white; + } + } + .datatable-pagination-list-item-link { + .datatable-wrapper .datatable-bottom .datatable-pagination & { + display: flex; + align-items: center; + color: var(--color-gray-500); + font-weight: 500; + padding-left: 0.75rem; + padding-right: 0.75rem; + height: 2rem; + font-size: 0.875rem; + border-top: 1px solid var(--color-gray-300); + border-bottom: 1px solid var(--color-gray-300); + border-right: 1px solid var(--color-gray-300); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination & { + color: var(--color-gray-400); + border-color: var(--color-gray-700); + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type & { + color: transparent; + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type & { + color: transparent; + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type & { + color: transparent; + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type & { + color: transparent; + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type &::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + left: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(-50%, -50%); + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type &:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type &::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type &:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type &::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + position: absolute; + top: 50%; + right: 50%; + width: 1.3rem; + height: 1.3rem; + transform: translate(50%, -50%); + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type &:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(21%25 0.034 264.665)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type &::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type &:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type & { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; + border-left: 1px solid var(--color-gray-300); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type & { + border-left: 1px solid var(--color-gray-700); + } + .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type & { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + border-left: 0; + } + .datatable-wrapper .datatable-bottom .datatable-pagination &:hover { + background-color: var(--color-gray-50); + color: var(--color-gray-700); + } + .dark .datatable-wrapper .datatable-bottom .datatable-pagination &:hover { + background-color: var(--color-gray-700); + color: white; + } + } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; + border-width: 0; + } + .absolute { + position: absolute; + } + .fixed { + position: fixed; + } + .relative { + position: relative; + } + .static { + position: static; + } + .inset-0 { + inset: calc(var(--spacing) * 0); + } + .start { + inset-inline-start: var(--spacing); + } + .end { + inset-inline-end: var(--spacing); + } + .top-0 { + top: calc(var(--spacing) * 0); + } + .right-0 { + right: calc(var(--spacing) * 0); + } + .bottom-0 { + bottom: calc(var(--spacing) * 0); + } + .bottom-\[60px\] { + bottom: 60px; + } + .left-0 { + left: calc(var(--spacing) * 0); + } + .z-10 { + z-index: 10; + } + .z-20 { + z-index: 20; + } + .z-30 { + z-index: 30; + } + .z-40 { + z-index: 40; + } + .z-50 { + z-index: 50; + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .mx-auto { + margin-inline: auto; + } + .my-4 { + margin-block: calc(var(--spacing) * 4); + } + .ms-3 { + margin-inline-start: calc(var(--spacing) * 3); + } + .ms-auto { + margin-inline-start: auto; + } + .me-2 { + margin-inline-end: calc(var(--spacing) * 2); + } + .me-3 { + margin-inline-end: calc(var(--spacing) * 3); + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-5 { + margin-top: calc(var(--spacing) * 5); + } + .apexcharts-canvas { + & .apexcharts-tooltip { + background-color: white !important; + color: var(--color-gray-700) !important; + border: 0 !important; + border-radius: 0.25rem !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + .dark & .apexcharts-tooltip { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + border-color: transparent !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + & .apexcharts-tooltip .apexcharts-tooltip-title { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + margin-bottom: 0.75rem !important; + background-color: var(--color-gray-100) !important; + border-bottom-color: var(--color-gray-200) !important; + font-size: 0.875rem !important; + font-weight: 400 !important; + color: var(--color-gray-500) !important; + } + .dark & .apexcharts-tooltip .apexcharts-tooltip-title { + background-color: var(--color-gray-600) !important; + border-color: var(--color-gray-500) !important; + color: var(--color-gray-500) !important; + } + & .apexcharts-xaxistooltip { + color: var(--color-gray-500) !important; + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + border-color: transparent !important; + background-color: white !important; + border-radius: 0.25rem !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + .dark & .apexcharts-xaxistooltip { + color: var(--color-gray-400) !important; + background-color: var(--color-gray-700) !important; + } + & .apexcharts-tooltip .apexcharts-tooltip-text-y-label { + color: var(--color-gray-500) !important; + font-size: 0.875rem !important; + } + .dark & .apexcharts-tooltip .apexcharts-tooltip-text-y-label { + color: var(--color-gray-400) !important; + } + & .apexcharts-tooltip .apexcharts-tooltip-text-y-value { + color: var(--color-gray-900); + font-size: 0.875rem !important; + } + .dark & .apexcharts-tooltip .apexcharts-tooltip-text-y-value { + color: white !important; + } + & .apexcharts-xaxistooltip-text { + font-weight: 400 !important; + font-size: 0.875rem !important; + } + & .apexcharts-xaxistooltip:after { + border-bottom-color: white !important; + } + & .apexcharts-xaxistooltip:before { + border-bottom-color: white !important; + } + & .apexcharts-xaxistooltip:after { + border-width: 8px !important; + margin-left: -8px !important; + } + & .apexcharts-xaxistooltip:before { + border-width: 10px !important; + margin-left: -10px !important; + } + .dark & .apexcharts-xaxistooltip:after { + border-bottom-color: var(--color-gray-700) !important; + } + .dark & .apexcharts-xaxistooltip:before { + border-bottom-color: var(--color-gray-700) !important; + } + & .apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-y-group { + padding: 0 !important; + } + & .apexcharts-tooltip-series-group.apexcharts-active { + padding-left: 0.75rem !important; + padding-right: 0.75rem !important; + padding-bottom: 0.75rem !important; + background-color: white !important; + color: var(--color-gray-500) !important; + } + .dark & .apexcharts-tooltip-series-group.apexcharts-active { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + } + & .apexcharts-tooltip-series-group.apexcharts-active:first-of-type { + padding-top: 0.75rem !important; + } + & .apexcharts-legend { + padding: 0 !important; + } + & .apexcharts-legend-text { + font-size: 0.75rem !important; + font-weight: 500 !important; + padding-left: 1.25rem !important; + color: var(--color-gray-500) !important; + } + :is([dir=rtl]) & .apexcharts-legend-text { + padding-right: 0.5rem !important; + } + & .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover { + color: var(--color-gray-900) !important; + } + .dark & .apexcharts-legend-text { + color: var(--color-gray-400) !important; + } + .dark & .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover { + color: white !important; + } + & .apexcharts-legend-series { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + margin-bottom: 0.25rem !important; + display: flex !important; + align-items: center !important; + } + .dark & .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value { + fill: white !important; + } + & .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label { + fill: var(--color-gray-500) !important; + font-size: 1rem,[object Object] !important; + font-weight: 400 !important; + } + .dark & .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label { + fill: var(--color-gray-400) !important; + } + & .apexcharts-datalabels .apexcharts-text.apexcharts-pie-label { + font-size: 0.75rem,[object Object] !important; + font-weight: 600 !important; + text-shadow: none !important; + filter: none !important; + } + } + .apexcharts-legend-series { + .apexcharts-canvas & { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + margin-bottom: 0.25rem !important; + display: flex !important; + align-items: center !important; + } + } + .apexcharts-tooltip { + .apexcharts-canvas & { + background-color: white !important; + color: var(--color-gray-700) !important; + border: 0 !important; + border-radius: 0.25rem !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + .dark .apexcharts-canvas & { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + border-color: transparent !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + .apexcharts-canvas & .apexcharts-tooltip-title { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + margin-bottom: 0.75rem !important; + background-color: var(--color-gray-100) !important; + border-bottom-color: var(--color-gray-200) !important; + font-size: 0.875rem !important; + font-weight: 400 !important; + color: var(--color-gray-500) !important; + } + .dark .apexcharts-canvas & .apexcharts-tooltip-title { + background-color: var(--color-gray-600) !important; + border-color: var(--color-gray-500) !important; + color: var(--color-gray-500) !important; + } + .apexcharts-canvas & .apexcharts-tooltip-text-y-label { + color: var(--color-gray-500) !important; + font-size: 0.875rem !important; + } + .dark .apexcharts-canvas & .apexcharts-tooltip-text-y-label { + color: var(--color-gray-400) !important; + } + .apexcharts-canvas & .apexcharts-tooltip-text-y-value { + color: var(--color-gray-900); + font-size: 0.875rem !important; + } + :is([dir=rtl]) & .apexcharts-tooltip-marker { + margin-right: 0px !important; + margin-left: 0.375rem !important; + } + .dark .apexcharts-canvas & .apexcharts-tooltip-text-y-value { + color: white !important; + } + } + .datatable-top { + .datatable-wrapper & { + display: flex; + justify-content: space-between; + flex-direction: column-reverse; + align-items: start; + gap: 1rem; + margin-bottom: 1rem; + @media (min-width: 640px) { + flex-direction: row-reverse; + align-items: center; + } + } + .datatable-wrapper & .datatable-dropdown { + color: var(--color-gray-500); + font-size: 0.875rem; + } + .dark .datatable-wrapper & .datatable-dropdown { + color: var(--color-gray-400); + } + .datatable-wrapper & .datatable-dropdown .datatable-selector { + background-color: var(--color-gray-50); + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + margin-right: 0.25rem; + min-width: 4rem; + } + .dark .datatable-wrapper & .datatable-dropdown .datatable-selector { + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + color: white; + } + } + .apexcharts-tooltip-marker { + :is([dir=rtl]) .apexcharts-tooltip & { + margin-right: 0px !important; + margin-left: 0.375rem !important; + } + } + .datatable-dropdown { + .datatable-wrapper .datatable-top & { + color: var(--color-gray-500); + font-size: 0.875rem; + } + .dark .datatable-wrapper .datatable-top & { + color: var(--color-gray-400); + } + .datatable-wrapper .datatable-top & .datatable-selector { + background-color: var(--color-gray-50); + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + margin-right: 0.25rem; + min-width: 4rem; + } + .dark .datatable-wrapper .datatable-top & .datatable-selector { + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + color: white; + } + } + .datatable-selector { + .datatable-wrapper .datatable-top .datatable-dropdown & { + background-color: var(--color-gray-50); + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + margin-right: 0.25rem; + min-width: 4rem; + } + .dark .datatable-wrapper .datatable-top .datatable-dropdown & { + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + color: white; + } + } + .apexcharts-tooltip-title { + .apexcharts-canvas .apexcharts-tooltip & { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + margin-bottom: 0.75rem !important; + background-color: var(--color-gray-100) !important; + border-bottom-color: var(--color-gray-200) !important; + font-size: 0.875rem !important; + font-weight: 400 !important; + color: var(--color-gray-500) !important; + } + .dark .apexcharts-canvas .apexcharts-tooltip & { + background-color: var(--color-gray-600) !important; + border-color: var(--color-gray-500) !important; + color: var(--color-gray-500) !important; + } + } + .-mb-px { + margin-bottom: -1px; + } + .mb-1 { + margin-bottom: calc(var(--spacing) * 1); + } + .mb-2 { + margin-bottom: calc(var(--spacing) * 2); + } + .mb-3 { + margin-bottom: calc(var(--spacing) * 3); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .mb-6 { + margin-bottom: calc(var(--spacing) * 6); + } + .apexcharts-xaxistooltip { + .apexcharts-canvas & { + color: var(--color-gray-500) !important; + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + border-color: transparent !important; + background-color: white !important; + border-radius: 0.25rem !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + .dark .apexcharts-canvas & { + color: var(--color-gray-400) !important; + background-color: var(--color-gray-700) !important; + } + .apexcharts-canvas &:after { + border-bottom-color: white !important; + } + .apexcharts-canvas &:before { + border-bottom-color: white !important; + } + .apexcharts-canvas &:after { + border-width: 8px !important; + margin-left: -8px !important; + } + .apexcharts-canvas &:before { + border-width: 10px !important; + margin-left: -10px !important; + } + .dark .apexcharts-canvas &:after { + border-bottom-color: var(--color-gray-700) !important; + } + .dark .apexcharts-canvas &:before { + border-bottom-color: var(--color-gray-700) !important; + } + } + .ml-auto { + margin-left: auto; + } + .datatable-pagination-list { + .datatable-wrapper .datatable-bottom .datatable-pagination & { + display: flex; + align-items: center; + height: 2rem; + font-size: 0.875rem; + } + } + .block { + display: block; + } + .flex { display: flex; } -} - -@media (min-width: 768px) { - .md\:px-16 { - padding-left: 4rem; - padding-right: 4rem; + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .inline-block { + display: inline-block; + } + .inline-flex { + display: inline-flex; + } + .table { + display: table; + } + .h-2\.5 { + height: calc(var(--spacing) * 2.5); + } + .h-3 { + height: calc(var(--spacing) * 3); + } + .h-4 { + height: calc(var(--spacing) * 4); + } + .h-5 { + height: calc(var(--spacing) * 5); + } + .h-6 { + height: calc(var(--spacing) * 6); + } + .h-8 { + height: calc(var(--spacing) * 8); + } + .h-9 { + height: calc(var(--spacing) * 9); + } + .h-10 { + height: calc(var(--spacing) * 10); + } + .h-\[calc\(100\%-1rem\)\] { + height: calc(100% - 1rem); + } + .max-h-full { + max-height: 100%; + } + .min-h-screen { + min-height: 100vh; + } + .datatable-table { + .datatable-wrapper & { + width: 100%; + font-size: 0.875rem; + color: var(--color-gray-500); + text-align: left; + } + .dark .datatable-wrapper & { + color: var(--color-gray-400); + } + .datatable-wrapper & thead { + font-size: 0.75rem; + color: var(--color-gray-500); + background-color: var(--color-gray-50); + } + .dark .datatable-wrapper & thead { + color: var(--color-gray-400); + background-color: var(--color-gray-800); + } + .datatable-wrapper & thead th { + white-space: nowrap; + } + .datatable-wrapper & thead th { + width: auto !important; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + .datatable-wrapper & tbody th { + width: auto !important; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + .datatable-wrapper & tbody td { + width: auto !important; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + .datatable-wrapper & thead th .datatable-sorter { + text-transform: uppercase; + } + .datatable-wrapper & thead th { + text-transform: uppercase; + } + .datatable-wrapper & thead th .datatable-sorter:hover { + color: var(--color-gray-900); + } + .datatable-wrapper & thead th.datatable-ascending .datatable-sorter { + color: var(--color-gray-900); + } + .datatable-wrapper & thead th.datatable-descending .datatable-sorter { + color: var(--color-gray-900); + } + .dark .datatable-wrapper & thead th .datatable-sorter:hover { + color: white; + } + .dark .datatable-wrapper & thead th.datatable-ascending .datatable-sorter { + color: white; + } + .dark .datatable-wrapper & thead th.datatable-descending .datatable-sorter { + color: white; + } + .datatable-wrapper & tbody tr.selected { + background-color: var(--color-gray-100); + } + .dark .datatable-wrapper & tbody tr.selected { + background-color: var(--color-gray-700); + } + .datatable-wrapper & tbody tr { + border-bottom: 1px solid var(--color-gray-200); + } + .dark .datatable-wrapper & tbody tr { + border-bottom: 1px solid var(--color-gray-700); + } + .datatable-wrapper & .datatable-empty { + text-align: center; + } + } + .w-1\/2 { + width: calc(1 / 2 * 100%); + } + .w-2\.5 { + width: calc(var(--spacing) * 2.5); + } + .w-3 { + width: calc(var(--spacing) * 3); + } + .w-4 { + width: calc(var(--spacing) * 4); + } + .w-5 { + width: calc(var(--spacing) * 5); + } + .w-8 { + width: calc(var(--spacing) * 8); + } + .w-9 { + width: calc(var(--spacing) * 9); + } + .w-10 { + width: calc(var(--spacing) * 10); + } + .w-44 { + width: calc(var(--spacing) * 44); + } + .w-56 { + width: calc(var(--spacing) * 56); + } + .w-64 { + width: calc(var(--spacing) * 64); + } + .w-full { + width: 100%; + } + .max-w-2xl { + max-width: var(--container-2xl); + } + .max-w-7xl { + max-width: var(--container-7xl); + } + .max-w-md { + max-width: var(--container-md); + } + .max-w-screen-xl { + max-width: var(--breakpoint-xl); + } + .max-w-xl { + max-width: var(--container-xl); + } + .datatable-input { + .datatable-wrapper .datatable-search & { + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + background-color: var(--color-gray-50); + min-width: 16rem; + } + .datatable-wrapper & { + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + background-color: var(--color-gray-50); + min-width: 16rem; + } + .dark .datatable-wrapper .datatable-search & { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + .dark .datatable-wrapper & { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + .datatable-wrapper thead th & { + background-color: white; + font-weight: 400; + color: var(--color-gray-900); + padding-top: .35rem; + padding-bottom: .35rem; + min-width: 0; + } + .dark .datatable-wrapper thead th & { + background-color: var(--color-gray-700); + border-color: var(--color-gray-600); + color: white; + } + .datatable-wrapper .datatable-search &:focus { + border-color: var(--color-blue-600); + } + } + .datatable-search { + .datatable-wrapper & .datatable-input { + color: var(--color-gray-900); + font-size: 0.875rem; + border: 1px solid var(--color-gray-300); + border-radius: 0.5rem; + background-color: var(--color-gray-50); + min-width: 16rem; + } + .dark .datatable-wrapper & .datatable-input { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + .datatable-wrapper & .datatable-input:focus { + border-color: var(--color-blue-600); + } + } + .flex-1 { + flex: 1; + } + .flex-shrink { + flex-shrink: 1; + } + .shrink-0 { + flex-shrink: 0; + } + .-translate-x-full { + --tw-translate-x: -100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-x-0 { + --tw-translate-x: calc(var(--spacing) * 0); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-x-full { + --tw-translate-x: 100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-y-full { + --tw-translate-y: -100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-full { + --tw-translate-y: 100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .rotate-180 { + rotate: 180deg; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .transform-none { + transform: none; + } + .cursor-default { + cursor: default; + } + .cursor-not-allowed { + cursor: not-allowed; + } + .cursor-pointer { + cursor: pointer; + } + .resize { + resize: both; + } + .list-none { + list-style-type: none; + } + .grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + .grid-cols-7 { + grid-template-columns: repeat(7, minmax(0, 1fr)); + } + .flex-col { + flex-direction: column; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-center { + align-items: center; + } + .items-end { + align-items: flex-end; + } + .items-start { + align-items: flex-start; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .justify-end { + justify-content: flex-end; + } + .justify-start { + justify-content: flex-start; + } + .gap-1 { + gap: calc(var(--spacing) * 1); + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-3 { + gap: calc(var(--spacing) * 3); + } + .gap-4 { + gap: calc(var(--spacing) * 4); + } + .gap-6 { + gap: calc(var(--spacing) * 6); + } + .space-y-2 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-4 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-5 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-6 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-x-2 { + :where(& > :not(:last-child)) { + --tw-space-x-reverse: 0; + margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)); + margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))); + } + } + .space-x-3 { + :where(& > :not(:last-child)) { + --tw-space-x-reverse: 0; + margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); + margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); + } + } + .divide-y { + :where(& > :not(:last-child)) { + --tw-divide-y-reverse: 0; + border-bottom-style: var(--tw-border-style); + border-top-style: var(--tw-border-style); + border-top-width: calc(1px * var(--tw-divide-y-reverse)); + border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + } + } + .divide-gray-100 { + :where(& > :not(:last-child)) { + border-color: var(--color-gray-100); + } + } + .self-center { + align-self: center; + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .overflow-hidden { + overflow: hidden; + } + .datatable-container { + .datatable-wrapper & thead tr.search-filtering-row th { + padding-top: 0; + } + .datatable-wrapper & { + overflow-x: auto; + } + } + .overflow-x-auto { + overflow-x: auto; + } + .overflow-x-hidden { + overflow-x: hidden; + } + .overflow-y-auto { + overflow-y: auto; + } + .rounded-full { + border-radius: calc(infinity * 1px); + } + .rounded-lg { + border-radius: var(--radius-lg); + } + .rounded-sm { + border-radius: var(--radius-sm); + } + .rounded-t { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + .rounded-t-lg { + border-top-left-radius: var(--radius-lg); + border-top-right-radius: var(--radius-lg); + } + .rounded-l-lg { + border-top-left-radius: var(--radius-lg); + border-bottom-left-radius: var(--radius-lg); + } + .rounded-r-lg { + border-top-right-radius: var(--radius-lg); + border-bottom-right-radius: var(--radius-lg); + } + .rounded-b { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + .rounded-b-lg { + border-bottom-right-radius: var(--radius-lg); + border-bottom-left-radius: var(--radius-lg); + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-0 { + border-style: var(--tw-border-style); + border-width: 0px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-b-2 { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 2px; + } + .dark { + & .apexcharts-canvas .apexcharts-tooltip { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + border-color: transparent !important; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; + } + & .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title { + background-color: var(--color-gray-600) !important; + border-color: var(--color-gray-500) !important; + color: var(--color-gray-500) !important; + } + & .apexcharts-canvas .apexcharts-xaxistooltip { + color: var(--color-gray-400) !important; + background-color: var(--color-gray-700) !important; + } + & .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-label { + color: var(--color-gray-400) !important; + } + & .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-value { + color: white !important; + } + & .apexcharts-canvas .apexcharts-xaxistooltip:after { + border-bottom-color: var(--color-gray-700) !important; + } + & .apexcharts-canvas .apexcharts-xaxistooltip:before { + border-bottom-color: var(--color-gray-700) !important; + } + & .apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + } + & .apexcharts-canvas .apexcharts-legend-text { + color: var(--color-gray-400) !important; + } + & .apexcharts-canvas .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover { + color: white !important; + } + & .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value { + fill: white !important; + } + & .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label { + fill: var(--color-gray-400) !important; + } + & .apexcharts-gridline { + stroke: var(--color-gray-700) !important; + } + & .apexcharts-xcrosshairs { + stroke: var(--color-gray-700) !important; + } + & .apexcharts-ycrosshairs { + stroke: var(--color-gray-700) !important; + } + } + .dark { + & .datatable-wrapper .datatable-search .datatable-input { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + & .datatable-wrapper .datatable-input { + color: white; + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + } + & .datatable-wrapper thead th .datatable-input { + background-color: var(--color-gray-700); + border-color: var(--color-gray-600); + color: white; + } + & .datatable-wrapper .datatable-top .datatable-dropdown { + color: var(--color-gray-400); + } + & .datatable-wrapper .datatable-top .datatable-dropdown .datatable-selector { + background-color: var(--color-gray-800); + border: 1px solid var(--color-gray-700); + color: white; + } + & .datatable-wrapper .datatable-table { + color: var(--color-gray-400); + } + & .datatable-wrapper .datatable-table thead { + color: var(--color-gray-400); + background-color: var(--color-gray-800); + } + & .datatable-wrapper .datatable-table thead th .datatable-sorter:hover { + color: white; + } + & .datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter { + color: white; + } + & .datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter { + color: white; + } + & .datatable-wrapper .datatable-table tbody tr.selected { + background-color: var(--color-gray-700); + } + & .datatable-wrapper .datatable-table tbody tr { + border-bottom: 1px solid var(--color-gray-700); + } + & .datatable-wrapper .datatable-bottom .datatable-info { + color: var(--color-gray-400); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link { + color: var(--color-gray-400); + border-color: var(--color-gray-700); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + color: transparent; + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link { + color: transparent; + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e"); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover::after { + content: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e"); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link { + border-left: 1px solid var(--color-gray-700); + } + & .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover { + background-color: var(--color-gray-700); + color: white; + } + } + .border-blue-200 { + border-color: var(--color-blue-200); + } + .border-blue-600 { + border-color: var(--color-blue-600); + } + .border-blue-700 { + border-color: var(--color-blue-700); + } + .border-gray-100 { + border-color: var(--color-gray-100); + } + .border-gray-200 { + border-color: var(--color-gray-200); + } + .border-gray-300 { + border-color: var(--color-gray-300); + } + .border-green-200 { + border-color: var(--color-green-200); + } + .border-red-200 { + border-color: var(--color-red-200); + } + .border-yellow-200 { + border-color: var(--color-yellow-200); + } + .apexcharts-active { + .apexcharts-canvas .apexcharts-tooltip-series-group& .apexcharts-tooltip-y-group { + padding: 0 !important; + } + .apexcharts-canvas .apexcharts-tooltip-series-group& { + padding-left: 0.75rem !important; + padding-right: 0.75rem !important; + padding-bottom: 0.75rem !important; + background-color: white !important; + color: var(--color-gray-500) !important; + } + .dark .apexcharts-canvas .apexcharts-tooltip-series-group& { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + } + .apexcharts-canvas .apexcharts-tooltip-series-group&:first-of-type { + padding-top: 0.75rem !important; + } + } + .selected { + .datatable-wrapper .datatable-table tbody tr& { + background-color: var(--color-gray-100); + } + .dark .datatable-wrapper .datatable-table tbody tr& { + background-color: var(--color-gray-700); + } + } + .selectedCell { + background-color: var(--color-gray-50); + .dark & { + background-color: var(--color-gray-700); + } + } + .bg-blue-50 { + background-color: var(--color-blue-50); + } + .bg-blue-100 { + background-color: var(--color-blue-100); + } + .bg-blue-600 { + background-color: var(--color-blue-600); + } + .bg-blue-700 { + background-color: var(--color-blue-700); + } + .bg-gray-50 { + background-color: var(--color-gray-50); + } + .bg-gray-100 { + background-color: var(--color-gray-100); + } + .bg-gray-200 { + background-color: var(--color-gray-200); + } + .bg-gray-800 { + background-color: var(--color-gray-800); + } + .bg-gray-900\/50 { + background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-gray-900) 50%, transparent); + } + } + .bg-green-50 { + background-color: var(--color-green-50); + } + .bg-red-50 { + background-color: var(--color-red-50); + } + .bg-red-100 { + background-color: var(--color-red-100); + } + .bg-transparent { + background-color: transparent; + } + .bg-white { + background-color: var(--color-white); + } + .bg-white\/50 { + background-color: color-mix(in srgb, #fff 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 50%, transparent); + } + } + .bg-yellow-50 { + background-color: var(--color-yellow-50); + } + .dark { + & .selectedCell { + background-color: var(--color-gray-700); + } + } + .apexcharts-datalabels-group { + & .apexcharts-text.apexcharts-datalabel-value { + fill: var(--color-gray-900) !important; + font-size: 1.875rem,[object Object] !important; + font-weight: 700 !important; + } + .dark .apexcharts-canvas & .apexcharts-text.apexcharts-datalabel-value { + fill: white !important; + } + .apexcharts-canvas & .apexcharts-text.apexcharts-datalabel-label { + fill: var(--color-gray-500) !important; + font-size: 1rem,[object Object] !important; + font-weight: 400 !important; + } + .dark .apexcharts-canvas & .apexcharts-text.apexcharts-datalabel-label { + fill: var(--color-gray-400) !important; + } + } + .apexcharts-datalabel-label { + .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text& { + fill: var(--color-gray-500) !important; + font-size: 1rem,[object Object] !important; + font-weight: 400 !important; + } + .dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text& { + fill: var(--color-gray-400) !important; + } + } + .apexcharts-datalabel-value { + .apexcharts-datalabels-group .apexcharts-text& { + fill: var(--color-gray-900) !important; + font-size: 1.875rem,[object Object] !important; + font-weight: 700 !important; + } + .dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text& { + fill: white !important; + } + } + .apexcharts-ycrosshairs { + stroke: var(--color-gray-200) !important; + .dark & { + stroke: var(--color-gray-700) !important; + } + } + .apexcharts-legend { + .apexcharts-canvas & { + padding: 0 !important; + } + } + .apexcharts-tooltip-y-group { + .apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active & { + padding: 0 !important; + } + } + .p-1 { + padding: calc(var(--spacing) * 1); + } + .p-1\.5 { + padding: calc(var(--spacing) * 1.5); + } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-2\.5 { + padding: calc(var(--spacing) * 2.5); + } + .p-4 { + padding: calc(var(--spacing) * 4); + } + .p-5 { + padding: calc(var(--spacing) * 5); + } + .p-6 { + padding: calc(var(--spacing) * 6); + } + .p-8 { + padding: calc(var(--spacing) * 8); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-2\.5 { + padding-inline: calc(var(--spacing) * 2.5); + } + .px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .px-5 { + padding-inline: calc(var(--spacing) * 5); + } + .px-6 { + padding-inline: calc(var(--spacing) * 6); + } + .py-0\.5 { + padding-block: calc(var(--spacing) * 0.5); + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-2\.5 { + padding-block: calc(var(--spacing) * 2.5); + } + .py-3 { + padding-block: calc(var(--spacing) * 3); + } + .py-4 { + padding-block: calc(var(--spacing) * 4); + } + .pt-2 { + padding-top: calc(var(--spacing) * 2); + } + .search-filtering-row { + .datatable-wrapper .datatable-container thead tr& th { + padding-top: 0; + } + } + .apexcharts-legend-text { + .apexcharts-canvas & { + font-size: 0.75rem !important; + font-weight: 500 !important; + padding-left: 1.25rem !important; + color: var(--color-gray-500) !important; + } + :is([dir=rtl]) .apexcharts-canvas & { + padding-right: 0.5rem !important; + } + .apexcharts-canvas &:not(.apexcharts-inactive-legend):hover { + color: var(--color-gray-900) !important; + } + .dark .apexcharts-canvas & { + color: var(--color-gray-400) !important; + } + .dark .apexcharts-canvas &:not(.apexcharts-inactive-legend):hover { + color: white !important; + } + } + .datatable-empty { + .datatable-wrapper .datatable-table & { + text-align: center; + } + } + .text-center { + text-align: center; + } + .text-left { + text-align: left; + } + .text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .apexcharts-datalabels { + .apexcharts-canvas & .apexcharts-text.apexcharts-pie-label { + font-size: 0.75rem,[object Object] !important; + font-weight: 600 !important; + text-shadow: none !important; + filter: none !important; + } + } + .apexcharts-pie-label { + .apexcharts-canvas .apexcharts-datalabels .apexcharts-text& { + font-size: 0.75rem,[object Object] !important; + font-weight: 600 !important; + text-shadow: none !important; + filter: none !important; + } + } + .apexcharts-xaxistooltip-text { + .apexcharts-canvas & { + font-weight: 400 !important; + font-size: 0.875rem !important; + } + } + .apexcharts-tooltip-text-y-label { + .apexcharts-canvas .apexcharts-tooltip & { + color: var(--color-gray-500) !important; + font-size: 0.875rem !important; + } + .dark .apexcharts-canvas .apexcharts-tooltip & { + color: var(--color-gray-400) !important; + } + } + .apexcharts-tooltip-text-y-value { + .apexcharts-canvas .apexcharts-tooltip & { + color: var(--color-gray-900); + font-size: 0.875rem !important; + } + .dark .apexcharts-canvas .apexcharts-tooltip & { + color: white !important; + } + } + .datatable-info { + .datatable-wrapper .datatable-bottom & { + color: var(--color-gray-500); + font-size: 0.875rem; + } + .dark .datatable-wrapper .datatable-bottom & { + color: var(--color-gray-400); + } + } + .leading-6 { + --tw-leading: calc(var(--spacing) * 6); + line-height: calc(var(--spacing) * 6); + } + .leading-9 { + --tw-leading: calc(var(--spacing) * 9); + line-height: calc(var(--spacing) * 9); + } + .leading-relaxed { + --tw-leading: var(--leading-relaxed); + line-height: var(--leading-relaxed); + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .whitespace-nowrap { + white-space: nowrap; + } + .datatable-sorter { + .datatable-wrapper .datatable-table thead th & { + text-transform: uppercase; + } + .datatable-wrapper .datatable-table thead th &:hover { + color: var(--color-gray-900); + } + .datatable-wrapper .datatable-table thead th.datatable-ascending & { + color: var(--color-gray-900); + } + .datatable-wrapper .datatable-table thead th.datatable-descending & { + color: var(--color-gray-900); + } + .dark .datatable-wrapper .datatable-table thead th &:hover { + color: white; + } + .dark .datatable-wrapper .datatable-table thead th.datatable-ascending & { + color: white; + } + .dark .datatable-wrapper .datatable-table thead th.datatable-descending & { + color: white; + } + } + .datatable-ascending { + .datatable-wrapper .datatable-table thead th& .datatable-sorter { + color: var(--color-gray-900); + } + .dark .datatable-wrapper .datatable-table thead th& .datatable-sorter { + color: white; + } + } + .datatable-descending { + .datatable-wrapper .datatable-table thead th& .datatable-sorter { + color: var(--color-gray-900); + } + .dark .datatable-wrapper .datatable-table thead th& .datatable-sorter { + color: white; + } + } + .text-blue-600 { + color: var(--color-blue-600); + } + .text-blue-700 { + color: var(--color-blue-700); + } + .text-blue-800 { + color: var(--color-blue-800); + } + .text-blue-900 { + color: var(--color-blue-900); + } + .text-gray-400 { + color: var(--color-gray-400); + } + .text-gray-500 { + color: var(--color-gray-500); + } + .text-gray-600 { + color: var(--color-gray-600); + } + .text-gray-700 { + color: var(--color-gray-700); + } + .text-gray-800 { + color: var(--color-gray-800); + } + .text-gray-900 { + color: var(--color-gray-900); + } + .text-green-800 { + color: var(--color-green-800); + } + .text-red-700 { + color: var(--color-red-700); + } + .text-red-800 { + color: var(--color-red-800); + } + .text-white { + color: var(--color-white); + } + .text-yellow-800 { + color: var(--color-yellow-800); + } + .uppercase { + text-transform: uppercase; + } + .antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + .opacity-0 { + opacity: 0%; + } + .opacity-100 { + opacity: 100%; + } + .shadow-lg { + --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .outline { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + .blur { + --tw-blur: blur(8px); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .filter { + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .transition { + transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-opacity { + transition-property: opacity; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-transform { + transition-property: transform, translate, scale, rotate; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .ease-out { + --tw-ease: var(--ease-out); + transition-timing-function: var(--ease-out); + } + .hover\:border-gray-300 { + &:hover { + @media (hover: hover) { + border-color: var(--color-gray-300); + } + } + } + .hover\:bg-blue-800 { + &:hover { + @media (hover: hover) { + background-color: var(--color-blue-800); + } + } + } + .hover\:bg-gray-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-50); + } + } + } + .hover\:bg-gray-100 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-100); + } + } + } + .hover\:bg-gray-200 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-200); + } + } + } + .hover\:bg-red-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-red-50); + } + } + } + .hover\:bg-white { + &:hover { + @media (hover: hover) { + background-color: var(--color-white); + } + } + } + .hover\:text-blue-600 { + &:hover { + @media (hover: hover) { + color: var(--color-blue-600); + } + } + } + .hover\:text-blue-700 { + &:hover { + @media (hover: hover) { + color: var(--color-blue-700); + } + } + } + .hover\:text-gray-600 { + &:hover { + @media (hover: hover) { + color: var(--color-gray-600); + } + } + } + .hover\:text-gray-900 { + &:hover { + @media (hover: hover) { + color: var(--color-gray-900); + } + } + } + .hover\:underline { + &:hover { + @media (hover: hover) { + text-decoration-line: underline; + } + } + } + .focus\:z-10 { + &:focus { + z-index: 10; + } + } + .focus\:border-blue-500 { + &:focus { + border-color: var(--color-blue-500); + } + } + .focus\:ring-2 { + &:focus { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + .focus\:ring-4 { + &:focus { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + .focus\:ring-blue-300 { + &:focus { + --tw-ring-color: var(--color-blue-300); + } + } + .focus\:ring-blue-500 { + &:focus { + --tw-ring-color: var(--color-blue-500); + } + } + .focus\:ring-gray-200 { + &:focus { + --tw-ring-color: var(--color-gray-200); + } + } + .focus\:ring-gray-300 { + &:focus { + --tw-ring-color: var(--color-gray-300); + } + } + .focus\:outline-none { + &:focus { + --tw-outline-style: none; + outline-style: none; + } + } + .disabled\:cursor-not-allowed { + &:disabled { + cursor: not-allowed; + } + } + .disabled\:opacity-50 { + &:disabled { + opacity: 50%; + } + } + .sm\:col-span-2 { + @media (width >= 40rem) { + grid-column: span 2 / span 2; + } + } + .sm\:grid-cols-2 { + @media (width >= 40rem) { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + .md\:inset-0 { + @media (width >= 48rem) { + inset: calc(var(--spacing) * 0); + } + } + .md\:order-1 { + @media (width >= 48rem) { + order: 1; + } + } + .md\:col-span-2 { + @media (width >= 48rem) { + grid-column: span 2 / span 2; + } + } + .md\:ms-4 { + @media (width >= 48rem) { + margin-inline-start: calc(var(--spacing) * 4); + } + } + .md\:me-0 { + @media (width >= 48rem) { + margin-inline-end: calc(var(--spacing) * 0); + } + } + .md\:mt-0 { + @media (width >= 48rem) { + margin-top: calc(var(--spacing) * 0); + } + } + .md\:block { + @media (width >= 48rem) { + display: block; + } + } + .md\:flex { + @media (width >= 48rem) { + display: flex; + } + } + .md\:hidden { + @media (width >= 48rem) { + display: none; + } + } + .md\:w-auto { + @media (width >= 48rem) { + width: auto; + } + } + .md\:grid-cols-3 { + @media (width >= 48rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } + .md\:grid-cols-4 { + @media (width >= 48rem) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + } + .md\:flex-row { + @media (width >= 48rem) { + flex-direction: row; + } + } + .md\:items-center { + @media (width >= 48rem) { + align-items: center; + } + } + .md\:gap-1 { + @media (width >= 48rem) { + gap: calc(var(--spacing) * 1); + } + } + .md\:space-x-8 { + @media (width >= 48rem) { + :where(& > :not(:last-child)) { + --tw-space-x-reverse: 0; + margin-inline-start: calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse)); + margin-inline-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse))); + } + } + } + .md\:border-0 { + @media (width >= 48rem) { + border-style: var(--tw-border-style); + border-width: 0px; + } + } + .md\:bg-transparent { + @media (width >= 48rem) { + background-color: transparent; + } + } + .md\:bg-white { + @media (width >= 48rem) { + background-color: var(--color-white); + } + } + .md\:p-0 { + @media (width >= 48rem) { + padding: calc(var(--spacing) * 0); + } + } + .md\:p-4 { + @media (width >= 48rem) { + padding: calc(var(--spacing) * 4); + } + } + .md\:p-5 { + @media (width >= 48rem) { + padding: calc(var(--spacing) * 5); + } + } + .md\:p-8 { + @media (width >= 48rem) { + padding: calc(var(--spacing) * 8); + } + } + .md\:text-blue-700 { + @media (width >= 48rem) { + color: var(--color-blue-700); + } + } + .md\:hover\:bg-transparent { + @media (width >= 48rem) { + &:hover { + @media (hover: hover) { + background-color: transparent; + } + } + } + } + .md\:hover\:text-blue-700 { + @media (width >= 48rem) { + &:hover { + @media (hover: hover) { + color: var(--color-blue-700); + } + } + } + } + .lg\:grid-cols-3 { + @media (width >= 64rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } + .rtl\:rotate-180 { + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + rotate: 180deg; + } + } + .rtl\:space-x-reverse { + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + :where(& > :not(:last-child)) { + --tw-space-x-reverse: 1; + } + } + } + .rtl\:text-right { + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + text-align: right; + } + } + .dark\:border-blue-500 { + @media (prefers-color-scheme: dark) { + border-color: var(--color-blue-500); + } + } + .dark\:border-gray-500 { + @media (prefers-color-scheme: dark) { + border-color: var(--color-gray-500); + } + } + .dark\:border-gray-600 { + @media (prefers-color-scheme: dark) { + border-color: var(--color-gray-600); + } + } + .dark\:border-gray-700 { + @media (prefers-color-scheme: dark) { + border-color: var(--color-gray-700); + } + } + .dark\:border-transparent { + @media (prefers-color-scheme: dark) { + border-color: transparent; + } + } + .dark\:bg-blue-600 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-blue-600); + } + } + .dark\:bg-gray-600 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-gray-600); + } + } + .dark\:bg-gray-700 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-gray-700); + } + } + .dark\:bg-gray-800 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-gray-800); + } + } + .dark\:bg-gray-800\/50 { + @media (prefers-color-scheme: dark) { + background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-gray-800) 50%, transparent); + } + } + } + .dark\:bg-gray-900\/80 { + @media (prefers-color-scheme: dark) { + background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-gray-900) 80%, transparent); + } + } + } + .dark\:text-blue-500 { + @media (prefers-color-scheme: dark) { + color: var(--color-blue-500); + } + } + .dark\:text-gray-300 { + @media (prefers-color-scheme: dark) { + color: var(--color-gray-300); + } + } + .dark\:text-gray-400 { + @media (prefers-color-scheme: dark) { + color: var(--color-gray-400); + } + } + .dark\:text-gray-500 { + @media (prefers-color-scheme: dark) { + color: var(--color-gray-500); + } + } + .dark\:text-white { + @media (prefers-color-scheme: dark) { + color: var(--color-white); + } + } + .dark\:hover\:bg-blue-700 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + background-color: var(--color-blue-700); + } + } + } + } + .dark\:hover\:bg-gray-600 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-600); + } + } + } + } + .dark\:hover\:bg-gray-800 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-800); + } + } + } + } + .dark\:hover\:text-blue-500 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + color: var(--color-blue-500); + } + } + } + } + .dark\:hover\:text-gray-300 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + color: var(--color-gray-300); + } + } + } + } + .dark\:hover\:text-white { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + color: var(--color-white); + } + } + } + } + .dark\:focus\:ring-blue-800 { + @media (prefers-color-scheme: dark) { + &:focus { + --tw-ring-color: var(--color-blue-800); + } + } + } + .dark\:focus\:ring-gray-600 { + @media (prefers-color-scheme: dark) { + &:focus { + --tw-ring-color: var(--color-gray-600); + } + } } } - -@media (min-width: 1024px) { - .lg\:px-24 { - padding-left: 6rem; - padding-right: 6rem; +@layer base { + .tooltip-arrow,.tooltip-arrow:before { + position: absolute; + width: 8px; + height: 8px; + background: inherit; + } + .tooltip-arrow { + visibility: hidden; + } + .tooltip-arrow:before { + content: ""; + visibility: visible; + transform: rotate(45deg); + } + [data-tooltip-style^='light'] + .tooltip > .tooltip-arrow:before { + border-style: solid; + border-color: var(--color-gray-200); + } + [data-tooltip-style^='light'] + .tooltip[data-popper-placement^='top'] > .tooltip-arrow:before { + border-bottom-width: 1px; + border-right-width: 1px; + } + [data-tooltip-style^='light'] + .tooltip[data-popper-placement^='right'] > .tooltip-arrow:before { + border-bottom-width: 1px; + border-left-width: 1px; + } + [data-tooltip-style^='light'] + .tooltip[data-popper-placement^='bottom'] > .tooltip-arrow:before { + border-top-width: 1px; + border-left-width: 1px; + } + [data-tooltip-style^='light'] + .tooltip[data-popper-placement^='left'] > .tooltip-arrow:before { + border-top-width: 1px; + border-right-width: 1px; + } + .tooltip[data-popper-placement^='top'] > .tooltip-arrow { + bottom: -4px; + } + .tooltip[data-popper-placement^='bottom'] > .tooltip-arrow { + top: -4px; + } + .tooltip[data-popper-placement^='left'] > .tooltip-arrow { + right: -4px; + } + .tooltip[data-popper-placement^='right'] > .tooltip-arrow { + left: -4px; + } + .tooltip.invisible > .tooltip-arrow:before { + visibility: hidden; + } + [data-popper-arrow],[data-popper-arrow]:before { + position: absolute; + width: 8px; + height: 8px; + background: inherit; + } + [data-popper-arrow] { + visibility: hidden; + } + [data-popper-arrow]:before { + content: ""; + visibility: visible; + transform: rotate(45deg); + } + [data-popper-arrow]:after { + content: ""; + visibility: visible; + transform: rotate(45deg); + position: absolute; + width: 9px; + height: 9px; + background: inherit; + } + [role="tooltip"] > [data-popper-arrow]:before { + border-style: solid; + border-color: var(--color-gray-200); + } + .dark [role="tooltip"] > [data-popper-arrow]:before { + border-style: solid; + border-color: var(--color-gray-600); + } + [role="tooltip"] > [data-popper-arrow]:after { + border-style: solid; + border-color: var(--color-gray-200); + } + .dark [role="tooltip"] > [data-popper-arrow]:after { + border-style: solid; + border-color: var(--color-gray-600); + } + [data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow]:before { + border-bottom-width: 1px; + border-right-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow]:after { + border-bottom-width: 1px; + border-right-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow]:before { + border-bottom-width: 1px; + border-left-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow]:after { + border-bottom-width: 1px; + border-left-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow]:before { + border-top-width: 1px; + border-left-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow]:after { + border-top-width: 1px; + border-left-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow]:before { + border-top-width: 1px; + border-right-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow]:after { + border-top-width: 1px; + border-right-width: 1px; + } + [data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow] { + bottom: -5px; + } + [data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow] { + top: -5px; + } + [data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow] { + right: -5px; + } + [data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow] { + left: -5px; + } + [role="tooltip"].invisible > [data-popper-arrow]:before { + visibility: hidden; + } + [role="tooltip"].invisible > [data-popper-arrow]:after { + visibility: hidden; } } - -@media (min-width: 1280px) { - .xl\:px-32 { - padding-left: 8rem; - padding-right: 8rem; +@layer base { + [type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { + appearance: none; + background-color: #fff; + border-color: var(--color-gray-500); + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; + --tw-shadow: 0 0 #0000; + &:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: var(--color-blue-600); + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + border-color: var(--color-blue-600); + } + } + input::placeholder,textarea::placeholder { + color: var(--color-gray-500); + opacity: 1; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + input[type="time"]::-webkit-calendar-picker-indicator { + background: none; + } + select:not([size]) { + background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e"); + background-position: right 0.75rem center; + background-repeat: no-repeat; + background-size: 0.75em 0.75em; + padding-right: 2.5rem; + print-color-adjust: exact; + } + :is([dir=rtl]) select:not([size]) { + background-position: left 0.75rem center; + padding-right: 0.75rem; + padding-left: 0; + } + [multiple] { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + print-color-adjust: unset; + } + [type='checkbox'],[type='radio'] { + appearance: none; + padding: 0; + print-color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: var(--color-blue-600); + background-color: #fff; + border-color: --color-gray-500; + border-width: 1px; + --tw-shadow: 0 0 #0000; + } + [type='checkbox'] { + border-radius: 0px; + } + [type='radio'] { + border-radius: 100%; + } + [type='checkbox']:focus,[type='radio']:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: var(--color-blue-600); + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + [type='checkbox']:checked,[type='radio']:checked,.dark [type='checkbox']:checked,.dark [type='radio']:checked { + border-color: transparent !important; + background-color: currentColor !important; + background-size: 0.55em 0.55em; + background-position: center; + background-repeat: no-repeat; + } + [type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e"); + background-repeat: no-repeat; + background-size: 0.55em 0.55em; + print-color-adjust: exact; + } + [type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); + background-size: 1em 1em; + } + .dark [type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); + background-size: 1em 1em; + } + [type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M0.5 6h14'/%3e %3c/svg%3e"); + background-color: currentColor !important; + border-color: transparent !important; + background-position: center; + background-repeat: no-repeat; + background-size: 0.55em 0.55em; + print-color-adjust: exact; + } + [type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { + border-color: transparent !important; + background-color: currentColor !important; + } + [type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; + } + [type='file']:focus { + outline: 1px auto inherit; + } + input[type=file]::file-selector-button { + color: white; + background: var(--color-gray-800); + border: 0; + font-weight: 500; + font-size: 0.875rem; + cursor: pointer; + padding-top: 0.625rem; + padding-bottom: 0.625rem; + padding-left: 2rem; + padding-right: 1rem; + margin-inline-start: -1rem; + margin-inline-end: 1rem; + &:hover { + background: var(--color-gray-700); + } + } + :is([dir=rtl]) input[type=file]::file-selector-button { + padding-right: 2rem; + padding-left: 1rem; + } + .dark input[type=file]::file-selector-button { + color: white; + background: var(--color-gray-600); + &:hover { + background: var(--color-gray-500); + } + } + input[type="range"]::-webkit-slider-thumb { + height: 1.25rem; + width: 1.25rem; + background: var(--color-blue-600); + border-radius: 9999px; + border: 0; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; + } + input[type="range"]:disabled::-webkit-slider-thumb { + background: var(--color-gray-400); + } + .dark input[type="range"]:disabled::-webkit-slider-thumb { + background: var(--color-gray-500); + } + input[type="range"]:focus::-webkit-slider-thumb { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); + --tw-ring-opacity: 1; + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); + } + input[type="range"]::-moz-range-thumb { + height: 1.25rem; + width: 1.25rem; + background: var(--color-blue-600); + border-radius: 9999px; + border: 0; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; + } + input[type="range"]:disabled::-moz-range-thumb { + background: var(--color-gray-400); + } + .dark input[type="range"]:disabled::-moz-range-thumb { + background: var(--color-gray-500); + } + input[type="range"]::-moz-range-progress { + background: var(--color-blue-500); + } + input[type="range"]::-ms-fill-lower { + background: var(--color-blue-500); + } + input[type="range"].range-sm::-webkit-slider-thumb { + height: 1rem; + width: 1rem; + } + input[type="range"].range-lg::-webkit-slider-thumb { + height: 1.5rem; + width: 1.5rem; + } + input[type="range"].range-sm::-moz-range-thumb { + height: 1rem; + width: 1rem; + } + input[type="range"].range-lg::-moz-range-thumb { + height: 1.5rem; + width: 1.5rem; + } + .toggle-bg:after { + content: ""; + position: absolute; + top: 0.125rem; + left: 0.125rem; + background: white; + border-color: var(--color-gray-300); + border-width: 1px; + border-radius: 9999px; + height: 1.25rem; + width: 1.25rem; + transition-property: background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter; + transition-duration: .15s; + box-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); + } + input:checked + .toggle-bg:after { + transform: translateX(100%);; + border-color: white; + } + input:checked + .toggle-bg { + background: var(--color-blue-600); + border-color: var(--color-blue-600); + } +} +@property --tw-translate-x { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-y { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-z { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-space-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-divide-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-leading { + syntax: "*"; + inherits: false; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0px; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-outline-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} +@property --tw-ease { + syntax: "*"; + inherits: false; +} +@layer properties { + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + *, ::before, ::after, ::backdrop { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-translate-z: 0; + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-space-y-reverse: 0; + --tw-space-x-reverse: 0; + --tw-divide-y-reverse: 0; + --tw-border-style: solid; + --tw-leading: initial; + --tw-font-weight: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-outline-style: solid; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; + --tw-ease: initial; + } } } diff --git a/web/static/vendor/flowbite.js b/web/static/vendor/flowbite.js new file mode 100644 index 0000000..bc968ad --- /dev/null +++ b/web/static/vendor/flowbite.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("Flowbite",[],e):"object"==typeof exports?exports.Flowbite=e():t.Flowbite=e()}(self,(function(){return function(){"use strict";var t={765:function(t,e,i){i.r(e)},853:function(t,e,i){i.r(e),i.d(e,{afterMain:function(){return k},afterRead:function(){return b},afterWrite:function(){return D},applyStyles:function(){return T},arrow:function(){return Q},auto:function(){return s},basePlacements:function(){return d},beforeMain:function(){return _},beforeRead:function(){return y},beforeWrite:function(){return E},bottom:function(){return r},clippingParents:function(){return u},computeStyles:function(){return it},createPopper:function(){return Tt},createPopperBase:function(){return St},createPopperLite:function(){return Mt},detectOverflow:function(){return mt},end:function(){return l},eventListeners:function(){return rt},flip:function(){return bt},hide:function(){return kt},left:function(){return a},main:function(){return w},modifierPhases:function(){return O},offset:function(){return Et},placements:function(){return v},popper:function(){return p},popperGenerator:function(){return Ct},popperOffsets:function(){return xt},preventOverflow:function(){return Dt},read:function(){return m},reference:function(){return f},right:function(){return o},start:function(){return c},top:function(){return n},variationPlacements:function(){return g},viewport:function(){return h},write:function(){return x}});var n="top",r="bottom",o="right",a="left",s="auto",d=[n,r,o,a],c="start",l="end",u="clippingParents",h="viewport",p="popper",f="reference",g=d.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+l])}),[]),v=[].concat(d,[s]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+l])}),[]),y="beforeRead",m="read",b="afterRead",_="beforeMain",w="main",k="afterMain",E="beforeWrite",x="write",D="afterWrite",O=[y,m,b,_,w,k,E,x,D];function L(t){return t?(t.nodeName||"").toLowerCase():null}function I(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function A(t){return t instanceof I(t).Element||t instanceof Element}function C(t){return t instanceof I(t).HTMLElement||t instanceof HTMLElement}function S(t){return"undefined"!=typeof ShadowRoot&&(t instanceof I(t).ShadowRoot||t instanceof ShadowRoot)}var T={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},r=e.elements[t];C(r)&&L(r)&&(Object.assign(r.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?r.removeAttribute(t):r.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],r=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});C(n)&&L(n)&&(Object.assign(n.style,o),Object.keys(r).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function M(t){return t.split("-")[0]}var H=Math.max,P=Math.min,j=Math.round;function V(){var t=navigator.userAgentData;return null!=t&&t.brands?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function B(){return!/^((?!chrome|android).)*safari/i.test(V())}function z(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),r=1,o=1;e&&C(t)&&(r=t.offsetWidth>0&&j(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&j(n.height)/t.offsetHeight||1);var a=(A(t)?I(t):window).visualViewport,s=!B()&&i,d=(n.left+(s&&a?a.offsetLeft:0))/r,c=(n.top+(s&&a?a.offsetTop:0))/o,l=n.width/r,u=n.height/o;return{width:l,height:u,top:c,right:d+l,bottom:c+u,left:d,x:d,y:c}}function F(t){var e=z(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function N(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&S(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function W(t){return I(t).getComputedStyle(t)}function q(t){return["table","td","th"].indexOf(L(t))>=0}function R(t){return((A(t)?t.ownerDocument:t.document)||window.document).documentElement}function Y(t){return"html"===L(t)?t:t.assignedSlot||t.parentNode||(S(t)?t.host:null)||R(t)}function K(t){return C(t)&&"fixed"!==W(t).position?t.offsetParent:null}function U(t){for(var e=I(t),i=K(t);i&&q(i)&&"static"===W(i).position;)i=K(i);return i&&("html"===L(i)||"body"===L(i)&&"static"===W(i).position)?e:i||function(t){var e=/firefox/i.test(V());if(/Trident/i.test(V())&&C(t)&&"fixed"===W(t).position)return null;var i=Y(t);for(S(i)&&(i=i.host);C(i)&&["html","body"].indexOf(L(i))<0;){var n=W(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function J(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return H(t,P(e,i))}function $(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function G(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,s=t.name,c=t.options,l=i.elements.arrow,u=i.modifiersData.popperOffsets,h=M(i.placement),p=J(h),f=[a,o].indexOf(h)>=0?"height":"width";if(l&&u){var g=function(t,e){return $("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:G(t,d))}(c.padding,i),v=F(l),y="y"===p?n:a,m="y"===p?r:o,b=i.rects.reference[f]+i.rects.reference[p]-u[p]-i.rects.popper[f],_=u[p]-i.rects.reference[p],w=U(l),k=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,E=b/2-_/2,x=g[y],D=k-v[f]-g[m],O=k/2-v[f]/2+E,L=X(x,O,D),I=p;i.modifiersData[s]=((e={})[I]=L,e.centerOffset=L-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&N(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,i=t.popper,s=t.popperRect,d=t.placement,c=t.variation,u=t.offsets,h=t.position,p=t.gpuAcceleration,f=t.adaptive,g=t.roundOffsets,v=t.isFixed,y=u.x,m=void 0===y?0:y,b=u.y,_=void 0===b?0:b,w="function"==typeof g?g({x:m,y:_}):{x:m,y:_};m=w.x,_=w.y;var k=u.hasOwnProperty("x"),E=u.hasOwnProperty("y"),x=a,D=n,O=window;if(f){var L=U(i),A="clientHeight",C="clientWidth";if(L===I(i)&&"static"!==W(L=R(i)).position&&"absolute"===h&&(A="scrollHeight",C="scrollWidth"),d===n||(d===a||d===o)&&c===l)D=r,_-=(v&&L===O&&O.visualViewport?O.visualViewport.height:L[A])-s.height,_*=p?1:-1;if(d===a||(d===n||d===r)&&c===l)x=o,m-=(v&&L===O&&O.visualViewport?O.visualViewport.width:L[C])-s.width,m*=p?1:-1}var S,T=Object.assign({position:h},f&&tt),M=!0===g?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:j(e*n)/n||0,y:j(i*n)/n||0}}({x:m,y:_}):{x:m,y:_};return m=M.x,_=M.y,p?Object.assign({},T,((S={})[D]=E?"0":"",S[x]=k?"0":"",S.transform=(O.devicePixelRatio||1)<=1?"translate("+m+"px, "+_+"px)":"translate3d("+m+"px, "+_+"px, 0)",S)):Object.assign({},T,((e={})[D]=E?_+"px":"",e[x]=k?m+"px":"",e.transform="",e))}var it={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,r=void 0===n||n,o=i.adaptive,a=void 0===o||o,s=i.roundOffsets,d=void 0===s||s,c={placement:M(e.placement),variation:Z(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:r,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:d})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:d})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},nt={passive:!0};var rt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,r=n.scroll,o=void 0===r||r,a=n.resize,s=void 0===a||a,d=I(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,nt)})),s&&d.addEventListener("resize",i.update,nt),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,nt)})),s&&d.removeEventListener("resize",i.update,nt)}},data:{}},ot={left:"right",right:"left",bottom:"top",top:"bottom"};function at(t){return t.replace(/left|right|bottom|top/g,(function(t){return ot[t]}))}var st={start:"end",end:"start"};function dt(t){return t.replace(/start|end/g,(function(t){return st[t]}))}function ct(t){var e=I(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function lt(t){return z(R(t)).left+ct(t).scrollLeft}function ut(t){var e=W(t),i=e.overflow,n=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+r+n)}function ht(t){return["html","body","#document"].indexOf(L(t))>=0?t.ownerDocument.body:C(t)&&ut(t)?t:ht(Y(t))}function pt(t,e){var i;void 0===e&&(e=[]);var n=ht(t),r=n===(null==(i=t.ownerDocument)?void 0:i.body),o=I(n),a=r?[o].concat(o.visualViewport||[],ut(n)?n:[]):n,s=e.concat(a);return r?s:s.concat(pt(Y(a)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function gt(t,e,i){return e===h?ft(function(t,e){var i=I(t),n=R(t),r=i.visualViewport,o=n.clientWidth,a=n.clientHeight,s=0,d=0;if(r){o=r.width,a=r.height;var c=B();(c||!c&&"fixed"===e)&&(s=r.offsetLeft,d=r.offsetTop)}return{width:o,height:a,x:s+lt(t),y:d}}(t,i)):A(e)?function(t,e){var i=z(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):ft(function(t){var e,i=R(t),n=ct(t),r=null==(e=t.ownerDocument)?void 0:e.body,o=H(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=H(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-n.scrollLeft+lt(t),d=-n.scrollTop;return"rtl"===W(r||i).direction&&(s+=H(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:a,x:s,y:d}}(R(t)))}function vt(t,e,i,n){var r="clippingParents"===e?function(t){var e=pt(Y(t)),i=["absolute","fixed"].indexOf(W(t).position)>=0&&C(t)?U(t):t;return A(i)?e.filter((function(t){return A(t)&&N(t,i)&&"body"!==L(t)})):[]}(t):[].concat(e),o=[].concat(r,[i]),a=o[0],s=o.reduce((function(e,i){var r=gt(t,i,n);return e.top=H(r.top,e.top),e.right=P(r.right,e.right),e.bottom=P(r.bottom,e.bottom),e.left=H(r.left,e.left),e}),gt(t,a,n));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function yt(t){var e,i=t.reference,s=t.element,d=t.placement,u=d?M(d):null,h=d?Z(d):null,p=i.x+i.width/2-s.width/2,f=i.y+i.height/2-s.height/2;switch(u){case n:e={x:p,y:i.y-s.height};break;case r:e={x:p,y:i.y+i.height};break;case o:e={x:i.x+i.width,y:f};break;case a:e={x:i.x-s.width,y:f};break;default:e={x:i.x,y:i.y}}var g=u?J(u):null;if(null!=g){var v="y"===g?"height":"width";switch(h){case c:e[g]=e[g]-(i[v]/2-s[v]/2);break;case l:e[g]=e[g]+(i[v]/2-s[v]/2)}}return e}function mt(t,e){void 0===e&&(e={});var i=e,a=i.placement,s=void 0===a?t.placement:a,c=i.strategy,l=void 0===c?t.strategy:c,g=i.boundary,v=void 0===g?u:g,y=i.rootBoundary,m=void 0===y?h:y,b=i.elementContext,_=void 0===b?p:b,w=i.altBoundary,k=void 0!==w&&w,E=i.padding,x=void 0===E?0:E,D=$("number"!=typeof x?x:G(x,d)),O=_===p?f:p,L=t.rects.popper,I=t.elements[k?O:_],C=vt(A(I)?I:I.contextElement||R(t.elements.popper),v,m,l),S=z(t.elements.reference),T=yt({reference:S,element:L,strategy:"absolute",placement:s}),M=ft(Object.assign({},L,T)),H=_===p?M:S,P={top:C.top-H.top+D.top,bottom:H.bottom-C.bottom+D.bottom,left:C.left-H.left+D.left,right:H.right-C.right+D.right},j=t.modifiersData.offset;if(_===p&&j){var V=j[s];Object.keys(P).forEach((function(t){var e=[o,r].indexOf(t)>=0?1:-1,i=[n,r].indexOf(t)>=0?"y":"x";P[t]+=V[i]*e}))}return P}var bt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,l=t.name;if(!e.modifiersData[l]._skip){for(var u=i.mainAxis,h=void 0===u||u,p=i.altAxis,f=void 0===p||p,y=i.fallbackPlacements,m=i.padding,b=i.boundary,_=i.rootBoundary,w=i.altBoundary,k=i.flipVariations,E=void 0===k||k,x=i.allowedAutoPlacements,D=e.options.placement,O=M(D),L=y||(O===D||!E?[at(D)]:function(t){if(M(t)===s)return[];var e=at(t);return[dt(t),e,dt(e)]}(D)),I=[D].concat(L).reduce((function(t,i){return t.concat(M(i)===s?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,r=i.boundary,o=i.rootBoundary,a=i.padding,s=i.flipVariations,c=i.allowedAutoPlacements,l=void 0===c?v:c,u=Z(n),h=u?s?g:g.filter((function(t){return Z(t)===u})):d,p=h.filter((function(t){return l.indexOf(t)>=0}));0===p.length&&(p=h);var f=p.reduce((function(e,i){return e[i]=mt(t,{placement:i,boundary:r,rootBoundary:o,padding:a})[M(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}(e,{placement:i,boundary:b,rootBoundary:_,padding:m,flipVariations:E,allowedAutoPlacements:x}):i)}),[]),A=e.rects.reference,C=e.rects.popper,S=new Map,T=!0,H=I[0],P=0;P=0,F=z?"width":"height",N=mt(e,{placement:j,boundary:b,rootBoundary:_,altBoundary:w,padding:m}),W=z?B?o:a:B?r:n;A[F]>C[F]&&(W=at(W));var q=at(W),R=[];if(h&&R.push(N[V]<=0),f&&R.push(N[W]<=0,N[q]<=0),R.every((function(t){return t}))){H=j,T=!1;break}S.set(j,R)}if(T)for(var Y=function(t){var e=I.find((function(e){var i=S.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return H=e,"break"},K=E?3:1;K>0;K--){if("break"===Y(K))break}e.placement!==H&&(e.modifiersData[l]._skip=!0,e.placement=H,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function _t(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function wt(t){return[n,o,r,a].some((function(e){return t[e]>=0}))}var kt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,r=e.rects.popper,o=e.modifiersData.preventOverflow,a=mt(e,{elementContext:"reference"}),s=mt(e,{altBoundary:!0}),d=_t(a,n),c=_t(s,r,o),l=wt(d),u=wt(c);e.modifiersData[i]={referenceClippingOffsets:d,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":u})}};var Et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,r=t.name,s=i.offset,d=void 0===s?[0,0]:s,c=v.reduce((function(t,i){return t[i]=function(t,e,i){var r=M(t),s=[a,n].indexOf(r)>=0?-1:1,d="function"==typeof i?i(Object.assign({},e,{placement:t})):i,c=d[0],l=d[1];return c=c||0,l=(l||0)*s,[a,o].indexOf(r)>=0?{x:l,y:c}:{x:c,y:l}}(i,e.rects,d),t}),{}),l=c[e.placement],u=l.x,h=l.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=u,e.modifiersData.popperOffsets.y+=h),e.modifiersData[r]=c}};var xt={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=yt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var Dt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,s=t.name,d=i.mainAxis,l=void 0===d||d,u=i.altAxis,h=void 0!==u&&u,p=i.boundary,f=i.rootBoundary,g=i.altBoundary,v=i.padding,y=i.tether,m=void 0===y||y,b=i.tetherOffset,_=void 0===b?0:b,w=mt(e,{boundary:p,rootBoundary:f,padding:v,altBoundary:g}),k=M(e.placement),E=Z(e.placement),x=!E,D=J(k),O="x"===D?"y":"x",L=e.modifiersData.popperOffsets,I=e.rects.reference,A=e.rects.popper,C="function"==typeof _?_(Object.assign({},e.rects,{placement:e.placement})):_,S="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),T=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,j={x:0,y:0};if(L){if(l){var V,B="y"===D?n:a,z="y"===D?r:o,N="y"===D?"height":"width",W=L[D],q=W+w[B],R=W-w[z],Y=m?-A[N]/2:0,K=E===c?I[N]:A[N],$=E===c?-A[N]:-I[N],G=e.elements.arrow,Q=m&&G?F(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[B],it=tt[z],nt=X(0,I[N],Q[N]),rt=x?I[N]/2-Y-nt-et-S.mainAxis:K-nt-et-S.mainAxis,ot=x?-I[N]/2+Y+nt+it+S.mainAxis:$+nt+it+S.mainAxis,at=e.elements.arrow&&U(e.elements.arrow),st=at?"y"===D?at.clientTop||0:at.clientLeft||0:0,dt=null!=(V=null==T?void 0:T[D])?V:0,ct=W+ot-dt,lt=X(m?P(q,W+rt-dt-st):q,W,m?H(R,ct):R);L[D]=lt,j[D]=lt-W}if(h){var ut,ht="x"===D?n:a,pt="x"===D?r:o,ft=L[O],gt="y"===O?"height":"width",vt=ft+w[ht],yt=ft-w[pt],bt=-1!==[n,a].indexOf(k),_t=null!=(ut=null==T?void 0:T[O])?ut:0,wt=bt?vt:ft-I[gt]-A[gt]-_t+S.altAxis,kt=bt?ft+I[gt]+A[gt]-_t-S.altAxis:yt,Et=m&&bt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,ft,kt):X(m?wt:vt,ft,m?kt:yt);L[O]=Et,j[O]=Et-ft}e.modifiersData[s]=j}},requiresIfExists:["offset"]};function Ot(t,e,i){void 0===i&&(i=!1);var n,r,o=C(e),a=C(e)&&function(t){var e=t.getBoundingClientRect(),i=j(e.width)/t.offsetWidth||1,n=j(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),s=R(e),d=z(t,a,i),c={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(o||!o&&!i)&&(("body"!==L(e)||ut(s))&&(c=(n=e)!==I(n)&&C(n)?{scrollLeft:(r=n).scrollLeft,scrollTop:r.scrollTop}:ct(n)),C(e)?((l=z(e,!0)).x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=lt(s))),{x:d.left+c.scrollLeft-l.x,y:d.top+c.scrollTop-l.y,width:d.width,height:d.height}}function Lt(t){var e=new Map,i=new Set,n=[];function r(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&r(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||r(t)})),n}var It={placement:"bottom",modifiers:[],strategy:"absolute"};function At(){for(var t=arguments.length,e=new Array(t),i=0;it.length)&&(e=t.length);for(var i=0,n=Array(e);i1?e-1:0),n=1;n=e)&&(void 0===i||t<=i)}function E(t,e,i){return ti?i:t}function x(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",o=Object.keys(i).reduce((function(t,e){var r=i[e];return"function"==typeof r&&(r=r(n)),"".concat(t," ").concat(e,'="').concat(r,'"')}),t);r+="<".concat(o,">");var a=n+1;return a\s+/g,">").replace(/\s+2&&void 0!==arguments[2]?arguments[2]:0,n=new Date(t).getDay();return A(t,T(e,i)-T(n,i))}function H(t,e){var i=new Date(t).getFullYear();return Math.floor(i/e)*e}Object.defineProperty(e,"__esModule",{value:!0});var P=/dd?|DD?|mm?|MM?|yy?(?:yy)?/,j=/[\s!-/:-@[-`{-~年月日]+/,V={},B={y:function(t,e){return new Date(t).setFullYear(parseInt(e,10))},m:function(t,e,i){var n=new Date(t),r=parseInt(e,10)-1;if(isNaN(r)){if(!e)return NaN;var o=e.toLowerCase(),a=function(t){return t.toLowerCase().startsWith(o)};if((r=i.monthsShort.findIndex(a))<0&&(r=i.months.findIndex(a)),r<0)return NaN}return n.setMonth(r),n.getMonth()!==F(r)?n.setDate(0):n.getTime()},d:function(t,e){return new Date(t).setDate(parseInt(e,10))}},z={d:function(t){return t.getDate()},dd:function(t){return N(t.getDate(),2)},D:function(t,e){return e.daysShort[t.getDay()]},DD:function(t,e){return e.days[t.getDay()]},m:function(t){return t.getMonth()+1},mm:function(t){return N(t.getMonth()+1,2)},M:function(t,e){return e.monthsShort[t.getMonth()]},MM:function(t,e){return e.months[t.getMonth()]},y:function(t){return t.getFullYear()},yy:function(t){return N(t.getFullYear(),2).slice(-2)},yyyy:function(t){return N(t.getFullYear(),4)}};function F(t){return t>-1?t%12:F(t+12)}function N(t,e){return t.toString().padStart(e,"0")}function W(t){if("string"!=typeof t)throw new Error("Invalid date format.");if(t in V)return V[t];var e=t.split(P),i=t.match(new RegExp(P,"g"));if(0===e.length||!i)throw new Error("Invalid date format.");var n=i.map((function(t){return z[t]})),r=Object.keys(B).reduce((function(t,e){return i.find((function(t){return"D"!==t[0]&&t[0].toLowerCase()===e}))&&t.push(e),t}),[]);return V[t]={parser:function(t,e){var n=t.split(j).reduce((function(t,e,n){if(e.length>0&&i[n]){var r=i[n][0];"M"===r?t.m=e:"D"!==r&&(t[r]=e)}return t}),{});return r.reduce((function(t,i){var r=B[i](t,n[i],e);return isNaN(r)?t:r}),L())},formatter:function(t,i){return n.reduce((function(n,r,o){return n+"".concat(e[o]).concat(r(t,i))}),"")+b(e)}}}function q(t,e,i){if(t instanceof Date||"number"==typeof t){var n=O(t);return isNaN(n)?void 0:n}if(t){if("today"===t)return L();if(e&&e.toValue){var r=e.toValue(t,e,i);return isNaN(r)?void 0:O(r)}return W(e).parser(t,i)}}function R(t,e,i){if(isNaN(t)||!t&&0!==t)return"";var n="number"==typeof t?new Date(t):t;return e.toDisplay?e.toDisplay(n,e,i):W(e).formatter(n,i)}var Y=new WeakMap,K=EventTarget.prototype,U=K.addEventListener,J=K.removeEventListener;function X(t,e){var i=Y.get(t);i||(i=[],Y.set(t,i)),e.forEach((function(t){U.call.apply(U,f(t)),i.push(t)}))}function $(t){var e=Y.get(t);e&&(e.forEach((function(t){J.call.apply(J,f(t))})),Y.delete(t))}if(!Event.prototype.composedPath){var G=function t(e){var i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return n.push(e),e.parentNode?i=e.parentNode:e.host?i=e.host:e.defaultView&&(i=e.defaultView),i?t(i,n):n};Event.prototype.composedPath=function(){return G(this.target)}}function Q(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=t[n];return e(r)?r:r!==i&&r.parentElement?Q(t,e,i,n+1):void 0}function Z(t,e){var i="function"==typeof e?e:function(t){return t.matches(e)};return Q(t.composedPath(),i,t.currentTarget)}var tt={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM y"}},et={autohide:!1,beforeShowDay:null,beforeShowDecade:null,beforeShowMonth:null,beforeShowYear:null,calendarWeeks:!1,clearBtn:!1,dateDelimiter:",",datesDisabled:[],daysOfWeekDisabled:[],daysOfWeekHighlighted:[],defaultViewDate:void 0,disableTouchKeyboard:!1,format:"mm/dd/yyyy",language:"en",maxDate:null,maxNumberOfDates:1,maxView:3,minDate:null,nextArrow:'',orientation:"auto",pickLevel:0,prevArrow:'',showDaysOfWeek:!0,showOnClick:!0,showOnFocus:!0,startView:0,title:"",todayBtn:!1,todayBtnMode:0,todayHighlight:!1,updateOnBlur:!0,weekStart:0},it=null;function nt(t){return null==it&&(it=document.createRange()),it.createContextualFragment(t)}function rt(t){"none"!==t.style.display&&(t.style.display&&(t.dataset.styleDisplay=t.style.display),t.style.display="none")}function ot(t){"none"===t.style.display&&(t.dataset.styleDisplay?(t.style.display=t.dataset.styleDisplay,delete t.dataset.styleDisplay):t.style.display="")}function at(t){t.firstChild&&(t.removeChild(t.firstChild),at(t))}var st=et.language,dt=et.format,ct=et.weekStart;function lt(t,e){return t.length<6&&e>=0&&e<7?_(t,e):t}function ut(t){return(t+6)%7}function ht(t,e,i,n){var r=q(t,e,i);return void 0!==r?r:n}function pt(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=parseInt(t,10);return n>=0&&n<=i?n:e}function ft(t,e){var i,n=Object.assign({},t),r={},o=e.constructor.locales,a=e.config||{},s=a.format,d=a.language,c=a.locale,l=a.maxDate,u=a.maxView,h=a.minDate,p=a.pickLevel,f=a.startView,g=a.weekStart;if(n.language&&(n.language!==d&&(o[n.language]?i=n.language:void 0===o[i=n.language.split("-")[0]]&&(i=!1)),delete n.language,i)){d=r.language=i;var v=c||o[st];c=Object.assign({format:dt,weekStart:ct},o[st]),d!==st&&Object.assign(c,o[d]),r.locale=c,s===v.format&&(s=r.format=c.format),g===v.weekStart&&(g=r.weekStart=c.weekStart,r.weekEnd=ut(c.weekStart))}if(n.format){var y="function"==typeof n.format.toDisplay,b="function"==typeof n.format.toValue,w=P.test(n.format);(y&&b||w)&&(s=r.format=n.format),delete n.format}var k=h,E=l;if(void 0!==n.minDate&&(k=null===n.minDate?I(0,0,1):ht(n.minDate,s,c,k),delete n.minDate),void 0!==n.maxDate&&(E=null===n.maxDate?void 0:ht(n.maxDate,s,c,E),delete n.maxDate),E=0&&(r.maxNumberOfDates=O,r.multidate=1!==O),delete n.maxNumberOfDates}n.dateDelimiter&&(r.dateDelimiter=String(n.dateDelimiter),delete n.dateDelimiter);var L=p;void 0!==n.pickLevel&&(L=pt(n.pickLevel,2),delete n.pickLevel),L!==p&&(p=r.pickLevel=L);var A=u;void 0!==n.maxView&&(A=pt(n.maxView,u),delete n.maxView),(A=p>A?p:A)!==u&&(u=r.maxView=A);var C=f;if(void 0!==n.startView&&(C=pt(n.startView,C),delete n.startView),Cu&&(C=u),C!==f&&(r.startView=C),n.prevArrow){var S=nt(n.prevArrow);S.childNodes.length>0&&(r.prevArrow=S.childNodes),delete n.prevArrow}if(n.nextArrow){var T=nt(n.nextArrow);T.childNodes.length>0&&(r.nextArrow=T.childNodes),delete n.nextArrow}if(void 0!==n.disableTouchKeyboard&&(r.disableTouchKeyboard="ontouchstart"in document&&!!n.disableTouchKeyboard,delete n.disableTouchKeyboard),n.orientation){var M=n.orientation.toLowerCase().split(/\s+/g);r.orientation={x:M.find((function(t){return"left"===t||"right"===t}))||"auto",y:M.find((function(t){return"top"===t||"bottom"===t}))||"auto"},delete n.orientation}if(void 0!==n.todayBtnMode){switch(n.todayBtnMode){case 0:case 1:r.todayBtnMode=n.todayBtnMode}delete n.todayBtnMode}return Object.keys(n).forEach((function(t){void 0!==n[t]&&m(et,t)&&(r[t]=n[t])})),r}var gt=D(''),vt=D('
\n
'.concat(x("span",7,{class:"dow block flex-1 leading-9 border-0 rounded-lg cursor-default text-center text-gray-900 font-semibold text-sm"}),'
\n
').concat(x("span",42,{class:"block flex-1 leading-9 border-0 rounded-lg cursor-default text-center text-gray-900 font-semibold text-sm h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400"}),"
\n
")),yt=D('
\n
\n
'.concat(x("span",6,{class:"week block flex-1 leading-9 border-0 rounded-lg cursor-default text-center text-gray-900 font-semibold text-sm"}),"
\n
")),mt=function(){return a((function t(e,i){r(this,t),Object.assign(this,i,{picker:e,element:nt('
').firstChild,selected:[]}),this.init(this.picker.datepicker.config)}),[{key:"init",value:function(t){void 0!==t.pickLevel&&(this.isMinView=this.id===t.pickLevel),this.setOptions(t),this.updateFocus(),this.updateSelection()}},{key:"performBeforeHook",value:function(t,e,i){var n=this.beforeShow(new Date(i));switch(v(n)){case"boolean":n={enabled:n};break;case"string":n={classes:n}}if(n){if(!1===n.enabled&&(t.classList.add("disabled"),_(this.disabled,e)),n.classes){var r,o=n.classes.split(/\s+/);(r=t.classList).add.apply(r,f(o)),o.includes("disabled")&&_(this.disabled,e)}n.content&&function(t,e){at(t),e instanceof DocumentFragment?t.appendChild(e):"string"==typeof e?t.appendChild(nt(e)):"function"==typeof e.forEach&&e.forEach((function(e){t.appendChild(e)}))}(t,n.content)}}}])}(),bt=function(t){function e(t){return r(this,e),n(this,e,[t,{id:0,name:"days",cellClass:"day"}])}return c(e,t),a(e,[{key:"init",value:function(t){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(i){var n=nt(vt).firstChild;this.dow=n.firstChild,this.grid=n.lastChild,this.element.appendChild(n)}s(d(e.prototype),"init",this).call(this,t)}},{key:"setOptions",value:function(t){var e,i=this;if(m(t,"minDate")&&(this.minDate=t.minDate),m(t,"maxDate")&&(this.maxDate=t.maxDate),t.datesDisabled&&(this.datesDisabled=t.datesDisabled),t.daysOfWeekDisabled&&(this.daysOfWeekDisabled=t.daysOfWeekDisabled,e=!0),t.daysOfWeekHighlighted&&(this.daysOfWeekHighlighted=t.daysOfWeekHighlighted),void 0!==t.todayHighlight&&(this.todayHighlight=t.todayHighlight),void 0!==t.weekStart&&(this.weekStart=t.weekStart,this.weekEnd=t.weekEnd,e=!0),t.locale){var n=this.locale=t.locale;this.dayNames=n.daysMin,this.switchLabelFormat=n.titleFormat,e=!0}if(void 0!==t.beforeShowDay&&(this.beforeShow="function"==typeof t.beforeShowDay?t.beforeShowDay:void 0),void 0!==t.calendarWeeks)if(t.calendarWeeks&&!this.calendarWeeks){var r=nt(yt).firstChild;this.calendarWeeks={element:r,dow:r.firstChild,weeks:r.lastChild},this.element.insertBefore(r,this.element.firstChild)}else this.calendarWeeks&&!t.calendarWeeks&&(this.element.removeChild(this.calendarWeeks.element),this.calendarWeeks=null);void 0!==t.showDaysOfWeek&&(t.showDaysOfWeek?(ot(this.dow),this.calendarWeeks&&ot(this.calendarWeeks.dow)):(rt(this.dow),this.calendarWeeks&&rt(this.calendarWeeks.dow))),e&&Array.from(this.dow.children).forEach((function(t,e){var n=(i.weekStart+e)%7;t.textContent=i.dayNames[n],t.className=i.daysOfWeekDisabled.includes(n)?"dow disabled text-center h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400 cursor-not-allowed":"dow text-center h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400"}))}},{key:"updateFocus",value:function(){var t=new Date(this.picker.viewDate),e=t.getFullYear(),i=t.getMonth(),n=I(e,i,1),r=M(n,this.weekStart,this.weekStart);this.first=n,this.last=I(e,i+1,0),this.start=r,this.focused=this.picker.viewDate}},{key:"updateSelection",value:function(){var t=this.picker.datepicker,e=t.dates,i=t.rangepicker;this.selected=e,i&&(this.range=i.dates)}},{key:"render",value:function(){var t=this;this.today=this.todayHighlight?L():void 0,this.disabled=f(this.datesDisabled);var e=R(this.focused,this.switchLabelFormat,this.locale);if(this.picker.setViewSwitchLabel(e),this.picker.setPrevBtnDisabled(this.first<=this.minDate),this.picker.setNextBtnDisabled(this.last>=this.maxDate),this.calendarWeeks){var i=M(this.first,1,1);Array.from(this.calendarWeeks.weeks.children).forEach((function(t,e){t.textContent=function(t){var e=M(t,4,1),i=M(new Date(e).setMonth(0,4),4,1);return Math.round((e-i)/6048e5)+1}(A(i,7*e))}))}Array.from(this.grid.children).forEach((function(e,i){var n=e.classList,r=A(t.start,i),o=new Date(r),a=o.getDay();if(e.className="datepicker-cell hover:bg-gray-100 dark:hover:bg-gray-600 block flex-1 leading-9 border-0 rounded-lg cursor-pointer text-center text-gray-900 dark:text-white font-semibold text-sm ".concat(t.cellClass),e.dataset.date=r,e.textContent=o.getDate(),rt.last&&n.add("next","text-gray-500","dark:text-white"),t.today===r&&n.add("today","bg-gray-100","dark:bg-gray-600"),(rt.maxDate||t.disabled.includes(r))&&(n.add("disabled","cursor-not-allowed","text-gray-400","dark:text-gray-500"),n.remove("hover:bg-gray-100","dark:hover:bg-gray-600","text-gray-900","dark:text-white","cursor-pointer")),t.daysOfWeekDisabled.includes(a)&&(n.add("disabled","cursor-not-allowed","text-gray-400","dark:text-gray-500"),n.remove("hover:bg-gray-100","dark:hover:bg-gray-600","text-gray-900","dark:text-white","cursor-pointer"),_(t.disabled,r)),t.daysOfWeekHighlighted.includes(a)&&n.add("highlighted"),t.range){var s=h(t.range,2),d=s[0],c=s[1];r>d&&ri&&re||s1&&void 0!==arguments[1])||arguments[1];i&&(this.grid=this.element,this.element.classList.add("months","datepicker-grid","w-64","grid","grid-cols-4"),this.grid.appendChild(nt(x("span",12,{"data-month":function(t){return t}})))),s(d(e.prototype),"init",this).call(this,t)}},{key:"setOptions",value:function(t){if(t.locale&&(this.monthNames=t.locale.monthsShort),m(t,"minDate"))if(void 0===t.minDate)this.minYear=this.minMonth=this.minDate=void 0;else{var e=new Date(t.minDate);this.minYear=e.getFullYear(),this.minMonth=e.getMonth(),this.minDate=e.setDate(1)}if(m(t,"maxDate"))if(void 0===t.maxDate)this.maxYear=this.maxMonth=this.maxDate=void 0;else{var i=new Date(t.maxDate);this.maxYear=i.getFullYear(),this.maxMonth=i.getMonth(),this.maxDate=I(this.maxYear,this.maxMonth+1,0)}void 0!==t.beforeShowMonth&&(this.beforeShow="function"==typeof t.beforeShowMonth?t.beforeShowMonth:void 0)}},{key:"updateFocus",value:function(){var t=new Date(this.picker.viewDate);this.year=t.getFullYear(),this.focused=t.getMonth()}},{key:"updateSelection",value:function(){var t=this.picker.datepicker,e=t.dates,i=t.rangepicker;this.selected=e.reduce((function(t,e){var i=new Date(e),n=i.getFullYear(),r=i.getMonth();return void 0===t[n]?t[n]=[r]:_(t[n],r),t}),{}),i&&i.dates&&(this.range=i.dates.map((function(t){var e=new Date(t);return isNaN(e)?void 0:[e.getFullYear(),e.getMonth()]})))}},{key:"render",value:function(){var t=this;this.disabled=[],this.picker.setViewSwitchLabel(this.year),this.picker.setPrevBtnDisabled(this.year<=this.minYear),this.picker.setNextBtnDisabled(this.year>=this.maxYear);var e=this.selected[this.year]||[],i=this.yearthis.maxYear,n=this.year===this.minYear,r=this.year===this.maxYear,o=_t(this.range,this.year);Array.from(this.grid.children).forEach((function(a,s){var d=a.classList,c=I(t.year,s,1);if(a.className="datepicker-cell hover:bg-gray-100 dark:hover:bg-gray-600 block flex-1 leading-9 border-0 rounded-lg cursor-pointer text-center text-gray-900 dark:text-white font-semibold text-sm ".concat(t.cellClass),t.isMinView&&(a.dataset.date=c),a.textContent=t.monthNames[s],(i||n&&st.maxMonth)&&d.add("disabled"),o){var l=h(o,2),u=l[0],p=l[1];s>u&&sn&&o1&&void 0!==arguments[1])||arguments[1];i&&(this.navStep=10*this.step,this.beforeShowOption="beforeShow".concat(kt(this.cellClass)),this.grid=this.element,this.element.classList.add(this.name,"datepicker-grid","w-64","grid","grid-cols-4"),this.grid.appendChild(nt(x("span",12)))),s(d(e.prototype),"init",this).call(this,t)}},{key:"setOptions",value:function(t){if(m(t,"minDate")&&(void 0===t.minDate?this.minYear=this.minDate=void 0:(this.minYear=H(t.minDate,this.step),this.minDate=I(this.minYear,0,1))),m(t,"maxDate")&&(void 0===t.maxDate?this.maxYear=this.maxDate=void 0:(this.maxYear=H(t.maxDate,this.step),this.maxDate=I(this.maxYear,11,31))),void 0!==t[this.beforeShowOption]){var e=t[this.beforeShowOption];this.beforeShow="function"==typeof e?e:void 0}}},{key:"updateFocus",value:function(){var t=new Date(this.picker.viewDate),e=H(t,this.navStep),i=e+9*this.step;this.first=e,this.last=i,this.start=e-this.step,this.focused=H(t,this.step)}},{key:"updateSelection",value:function(){var t=this,e=this.picker.datepicker,i=e.dates,n=e.rangepicker;this.selected=i.reduce((function(e,i){return _(e,H(i,t.step))}),[]),n&&n.dates&&(this.range=n.dates.map((function(e){if(void 0!==e)return H(e,t.step)})))}},{key:"render",value:function(){var t=this;this.disabled=[],this.picker.setViewSwitchLabel("".concat(this.first,"-").concat(this.last)),this.picker.setPrevBtnDisabled(this.first<=this.minYear),this.picker.setNextBtnDisabled(this.last>=this.maxYear),Array.from(this.grid.children).forEach((function(e,i){var n=e.classList,r=t.start+i*t.step,o=I(r,0,1);if(e.className="datepicker-cell hover:bg-gray-100 dark:hover:bg-gray-600 block flex-1 leading-9 border-0 rounded-lg cursor-pointer text-center text-gray-900 dark:text-white font-semibold text-sm ".concat(t.cellClass),t.isMinView&&(e.dataset.date=o),e.textContent=e.dataset.year=r,0===i?n.add("prev"):11===i&&n.add("next"),(rt.maxYear)&&n.add("disabled"),t.range){var a=h(t.range,2),s=a[0],d=a[1];r>s&&ri&&r0?b(e):i.defaultViewDate,i.minDate,i.maxDate)}function Bt(t,e){var i=new Date(t.viewDate),n=new Date(e),r=t.currentView,o=r.id,a=r.year,s=r.first,d=r.last,c=n.getFullYear();switch(t.viewDate=e,c!==i.getFullYear()&&xt(t.datepicker,"changeYear"),n.getMonth()!==i.getMonth()&&xt(t.datepicker,"changeMonth"),o){case 0:return ed;case 1:return c!==a;default:return cd}}function zt(t){return window.getComputedStyle(t).direction}var Ft=function(){return a((function t(e){r(this,t),this.datepicker=e;var i=gt.replace(/%buttonClass%/g,e.config.buttonClass),n=this.element=nt(i).firstChild,o=h(n.firstChild.children,3),a=o[0],s=o[1],d=o[2],c=a.firstElementChild,l=h(a.lastElementChild.children,3),u=l[0],p=l[1],f=l[2],g=h(d.firstChild.children,2),v={title:c,prevBtn:u,viewSwitch:p,nextBtn:f,todayBtn:g[0],clearBtn:g[1]};this.main=s,this.controls=v;var y=e.inline?"inline":"dropdown";n.classList.add("datepicker-".concat(y)),"dropdown"===y&&n.classList.add("dropdown","absolute","top-0","left-0","z-50","pt-2"),jt(this,e.config),this.viewDate=Vt(e),X(e,[[n,"click",Pt.bind(null,e),{capture:!0}],[s,"click",Ht.bind(null,e)],[v.viewSwitch,"click",St.bind(null,e)],[v.prevBtn,"click",Tt.bind(null,e)],[v.nextBtn,"click",Mt.bind(null,e)],[v.todayBtn,"click",At.bind(null,e)],[v.clearBtn,"click",Ct.bind(null,e)]]),this.views=[new bt(this),new wt(this),new Et(this,{id:2,name:"years",cellClass:"year",step:1}),new Et(this,{id:3,name:"decades",cellClass:"decade",step:10})],this.currentView=this.views[e.config.startView],this.currentView.render(),this.main.appendChild(this.currentView.element),e.config.container.appendChild(this.element)}),[{key:"setOptions",value:function(t){jt(this,t),this.views.forEach((function(e){e.init(t,!1)})),this.currentView.render()}},{key:"detach",value:function(){this.datepicker.config.container.removeChild(this.element)}},{key:"show",value:function(){if(!this.active){this.element.classList.add("active","block"),this.element.classList.remove("hidden"),this.active=!0;var t=this.datepicker;if(!t.inline){var e=zt(t.inputField);e!==zt(t.config.container)?this.element.dir=e:this.element.dir&&this.element.removeAttribute("dir"),this.place(),t.config.disableTouchKeyboard&&t.inputField.blur()}xt(t,"show")}}},{key:"hide",value:function(){this.active&&(this.datepicker.exitEditMode(),this.element.classList.remove("active","block"),this.element.classList.add("active","block","hidden"),this.active=!1,xt(this.datepicker,"hide"))}},{key:"place",value:function(){var t,e,i,n=this.element,r=n.classList,o=n.style,a=this.datepicker,s=a.config,d=a.inputField,c=s.container,l=this.element.getBoundingClientRect(),u=l.width,h=l.height,p=c.getBoundingClientRect(),f=p.left,g=p.top,v=p.width,y=d.getBoundingClientRect(),m=y.left,b=y.top,_=y.width,w=y.height,k=s.orientation,E=k.x,x=k.y;c===document.body?(t=window.scrollY,e=m+window.scrollX,i=b+t):(e=m-f,i=b-g+(t=c.scrollTop)),"auto"===E&&(e<0?(E="left",e=10):E=e+u>v||"rtl"===zt(d)?"right":"left"),"right"===E&&(e-=u-_),"auto"===x&&(x=i-h0&&void 0!==arguments[0])||arguments[0],e=t&&this._renderMethod||"render";delete this._renderMethod,this.currentView[e]()}}])}();function Nt(t,e,i,n,r,o){if(k(t,r,o))return n(t)?Nt(e(t,i),e,i,n,r,o):t}function Wt(t,e,i,n){var r,o,a=t.picker,s=a.currentView,d=s.step||1,c=a.viewDate;switch(s.id){case 0:c=n?A(c,7*i):e.ctrlKey||e.metaKey?S(c,i):A(c,i),r=A,o=function(t){return s.disabled.includes(t)};break;case 1:c=C(c,n?4*i:i),r=C,o=function(t){var e=new Date(t),i=s.year,n=s.disabled;return e.getFullYear()===i&&n.includes(e.getMonth())};break;default:c=S(c,i*(n?4:1)*d),r=S,o=function(t){return s.disabled.includes(H(t,d))}}void 0!==(c=Nt(c,r,i<0?-d:d,o,s.minDate,s.maxDate))&&a.changeFocus(c).render()}function qt(t,e){if("Tab"!==e.key){var i=t.picker,n=i.currentView,r=n.id,o=n.isMinView;if(i.active)if(t.editMode)switch(e.key){case"Escape":i.hide();break;case"Enter":t.exitEditMode({update:!0,autohide:t.config.autohide});break;default:return}else switch(e.key){case"Escape":i.hide();break;case"ArrowLeft":if(e.ctrlKey||e.metaKey)Dt(t,-1);else{if(e.shiftKey)return void t.enterEditMode();Wt(t,e,-1,!1)}break;case"ArrowRight":if(e.ctrlKey||e.metaKey)Dt(t,1);else{if(e.shiftKey)return void t.enterEditMode();Wt(t,e,1,!1)}break;case"ArrowUp":if(e.ctrlKey||e.metaKey)Ot(t);else{if(e.shiftKey)return void t.enterEditMode();Wt(t,e,-1,!0)}break;case"ArrowDown":if(e.shiftKey&&!e.ctrlKey&&!e.metaKey)return void t.enterEditMode();Wt(t,e,1,!0);break;case"Enter":o?t.setDate(i.viewDate):i.changeView(r-1).render();break;case"Backspace":case"Delete":return void t.enterEditMode();default:return void(1!==e.key.length||e.ctrlKey||e.metaKey||t.enterEditMode())}else switch(e.key){case"ArrowDown":case"Escape":i.show();break;case"Enter":t.update();break;default:return}e.preventDefault(),e.stopPropagation()}else Lt(t)}function Rt(t){t.config.showOnFocus&&!t._showing&&t.show()}function Yt(t,e){var i=e.target;(t.picker.active||t.config.showOnClick)&&(i._active=i===document.activeElement,i._clicking=setTimeout((function(){delete i._active,delete i._clicking}),2e3))}function Kt(t,e){var i=e.target;i._clicking&&(clearTimeout(i._clicking),delete i._clicking,i._active&&t.enterEditMode(),delete i._active,t.config.showOnClick&&t.show())}function Ut(t,e){e.clipboardData.types.includes("text/plain")&&t.enterEditMode()}function Jt(t,e){var i=t.element;if(i===document.activeElement){var n=t.picker.element;Z(e,(function(t){return t===i||t===n}))||Lt(t)}}function Xt(t,e){return t.map((function(t){return R(t,e.format,e.locale)})).join(e.dateDelimiter)}function $t(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t.config,r=t.dates,o=t.rangepicker;if(0===e.length)return i?[]:void 0;var a=o&&t===o.datepickers[1],s=e.reduce((function(t,e){var i=q(e,n.format,n.locale);if(void 0===i)return t;if(n.pickLevel>0){var r=new Date(i);i=1===n.pickLevel?a?r.setMonth(r.getMonth()+1,0):r.setDate(1):a?r.setFullYear(r.getFullYear()+1,0,0):r.setMonth(0,1)}return!k(i,n.minDate,n.maxDate)||t.includes(i)||n.datesDisabled.includes(i)||n.daysOfWeekDisabled.includes(new Date(i).getDay())||t.push(i),t}),[]);return 0!==s.length?(n.multidate&&!i&&(s=s.reduce((function(t,e){return r.includes(e)||t.push(e),t}),r.filter((function(t){return!s.includes(t)})))),n.maxNumberOfDates&&s.length>n.maxNumberOfDates?s.slice(-1*n.maxNumberOfDates):s):void 0}function Gt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=t.config,r=t.picker,o=t.inputField;if(2&e){var a=r.active?n.pickLevel:n.startView;r.update().changeView(a).render(i)}1&e&&o&&(o.value=Xt(t.dates,n))}function Qt(t,e,i){var n=i.clear,r=i.render,o=i.autohide;void 0===r&&(r=!0),r?void 0===o&&(o=t.config.autohide):o=!1;var a=$t(t,e,n);a&&(a.toString()!==t.dates.toString()?(t.dates=a,Gt(t,r?3:1),xt(t,"changeDate")):Gt(t,1),o&&t.hide())}var Zt=function(){return a((function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;r(this,t),e.datepicker=this,this.element=e;var o=this.config=Object.assign({buttonClass:i.buttonClass&&String(i.buttonClass)||"button",container:document.body,defaultViewDate:L(),maxDate:void 0,minDate:void 0},ft(et,this));this._options=i,Object.assign(o,ft(i,this));var a,s,d=this.inline="INPUT"!==e.tagName;if(d)o.container=e,s=w(e.dataset.date,o.dateDelimiter),delete e.dataset.date;else{var c=i.container?document.querySelector(i.container):null;c&&(o.container=c),(a=this.inputField=e).classList.add("datepicker-input"),s=w(a.value,o.dateDelimiter)}if(n){var l=n.inputs.indexOf(a),u=n.datepickers;if(l<0||l>1||!Array.isArray(u))throw Error("Invalid rangepicker object.");u[l]=this,Object.defineProperty(this,"rangepicker",{get:function(){return n}})}this.dates=[];var h=$t(this,s);h&&h.length>0&&(this.dates=h),a&&(a.value=Xt(this.dates,o));var p=this.picker=new Ft(this);if(d)this.show();else{var f=Jt.bind(null,this),g=[[a,"keydown",qt.bind(null,this)],[a,"focus",Rt.bind(null,this)],[a,"mousedown",Yt.bind(null,this)],[a,"click",Kt.bind(null,this)],[a,"paste",Ut.bind(null,this)],[document,"mousedown",f],[document,"touchstart",f],[window,"resize",p.place.bind(p)]];X(this,g)}}),[{key:"active",get:function(){return!(!this.picker||!this.picker.active)}},{key:"pickerElement",get:function(){return this.picker?this.picker.element:void 0}},{key:"setOptions",value:function(t){var e=this.picker,i=ft(t,this);Object.assign(this._options,t),Object.assign(this.config,i),e.setOptions(i),Gt(this,3)}},{key:"show",value:function(){if(this.inputField){if(this.inputField.disabled)return;this.inputField!==document.activeElement&&(this._showing=!0,this.inputField.focus(),delete this._showing)}this.picker.show()}},{key:"hide",value:function(){this.inline||(this.picker.hide(),this.picker.update().changeView(this.config.startView).render())}},{key:"destroy",value:function(){return this.hide(),$(this),this.picker.detach(),this.inline||this.inputField.classList.remove("datepicker-input"),delete this.element.datepicker,this}},{key:"getDate",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,i=e?function(i){return R(i,e,t.config.locale)}:function(t){return new Date(t)};return this.config.multidate?this.dates.map(i):this.dates.length>0?i(this.dates[0]):void 0}},{key:"setDate",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i0&&void 0!==arguments[0]?arguments[0]:void 0;if(!this.inline){var e={clear:!0,autohide:!(!t||!t.autohide)},i=w(this.inputField.value,this.config.dateDelimiter);Qt(this,i,e)}}},{key:"refresh",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&"string"!=typeof t&&(e=t,t=void 0),Gt(this,"picker"===t?2:"input"===t?1:3,!e)}},{key:"enterEditMode",value:function(){this.inline||!this.picker.active||this.editMode||(this.editMode=!0,this.inputField.classList.add("in-edit","border-blue-700","!border-primary-700"))}},{key:"exitEditMode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;if(!this.inline&&this.editMode){var e=Object.assign({update:!1},t);delete this.editMode,this.inputField.classList.remove("in-edit","border-blue-700","!border-primary-700"),e.update&&this.update(e)}}}],[{key:"formatDate",value:function(t,e,i){return R(t,e,i&&tt[i]||tt.en)}},{key:"parseDate",value:function(t,e,i){return q(t,e,i&&tt[i]||tt.en)}},{key:"locales",get:function(){return tt}}])}();function te(t){var e=Object.assign({},t);return delete e.inputs,delete e.allowOneSidedRange,delete e.maxNumberOfDates,e}function ee(t,e,i,n){X(t,[[i,"changeDate",e]]),new Zt(i,n,t)}function ie(t,e){if(!t._updating){t._updating=!0;var i=e.target;if(void 0!==i.datepicker){var n=t.datepickers,r={render:!1},o=t.inputs.indexOf(i),a=0===o?1:0,s=n[o].dates[0],d=n[a].dates[0];void 0!==s&&void 0!==d?0===o&&s>d?(n[0].setDate(d,r),n[1].setDate(s,r)):1===o&&s1&&void 0!==arguments[1]?arguments[1]:{};r(this,t);var n=Array.isArray(i.inputs)?i.inputs:Array.from(e.querySelectorAll("input"));if(!(n.length<2)){e.rangepicker=this,this.element=e,this.inputs=n.slice(0,2),this.allowOneSidedRange=!!i.allowOneSidedRange;var o=ie.bind(null,this),a=te(i),s=[];Object.defineProperty(this,"datepickers",{get:function(){return s}}),ee(this,o,this.inputs[0],a),ee(this,o,this.inputs[1],a),Object.freeze(s),s[0].dates.length>0?ie(this,{target:this.inputs[0]}):s[1].dates.length>0&&ie(this,{target:this.inputs[1]})}}),[{key:"dates",get:function(){return 2===this.datepickers.length?[this.datepickers[0].dates[0],this.datepickers[1].dates[0]]:void 0}},{key:"setOptions",value:function(t){this.allowOneSidedRange=!!t.allowOneSidedRange;var e=te(t);this.datepickers[0].setOptions(e),this.datepickers[1].setOptions(e)}},{key:"destroy",value:function(){this.datepickers[0].destroy(),this.datepickers[1].destroy(),$(this),delete this.element.rangepicker}},{key:"getDates",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,i=e?function(i){return R(i,e,t.datepickers[0].config.locale)}:function(t){return new Date(t)};return this.dates.map((function(t){return void 0===t?t:i(t)}))}},{key:"setDates",value:function(t,e){var i=h(this.datepickers,2),n=i[0],r=i[1],o=this.dates;this._updating=!0,n.setDate(t),r.setDate(e),delete this._updating,r.dates[0]!==o[1]?ie(this,{target:this.inputs[1]}):n.dates[0]!==o[0]&&ie(this,{target:this.inputs[0]})}}])}();e.DateRangePicker=ne,e.Datepicker=Zt},902:function(t,e,i){var n=this&&this.__assign||function(){return n=Object.assign||function(t){for(var e,i=1,n=arguments.length;it._options.maxValue&&(i.value=t._options.maxValue.toString()),null!==t._options.minValue&&parseInt(i.value)=this._options.maxValue||(this._targetEl.value=(this.getCurrentValue()+1).toString(),this._options.onIncrement(this))},t.prototype.decrement=function(){null!==this._options.minValue&&this.getCurrentValue()<=this._options.minValue||(this._targetEl.value=(this.getCurrentValue()-1).toString(),this._options.onDecrement(this))},t.prototype.updateOnIncrement=function(t){this._options.onIncrement=t},t.prototype.updateOnDecrement=function(t){this._options.onDecrement=t},t}();function d(){document.querySelectorAll("[data-input-counter]").forEach((function(t){var e=t.id,i=document.querySelector('[data-input-counter-increment="'+e+'"]'),n=document.querySelector('[data-input-counter-decrement="'+e+'"]'),o=t.getAttribute("data-input-counter-min"),a=t.getAttribute("data-input-counter-max");t?r.default.instanceExists("InputCounter",t.getAttribute("id"))||new s(t,i||null,n||null,{minValue:o?parseInt(o):null,maxValue:a?parseInt(a):null}):console.error('The target element with id "'.concat(e,'" does not exist. Please check the data-input-counter attribute.'))}))}e.initInputCounters=d,"undefined"!=typeof window&&(window.InputCounter=s,window.initInputCounters=d),e.default=s},16:function(t,e,i){var n=this&&this.__assign||function(){return n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0)){return r}else{return null}}if(o&&(o==="*"||o.split(" ").indexOf(n)>=0)){return"unset"}}return r}function ne(t,n){let r=null;q(t,function(e){return!!(r=o(t,ce(e),n))});if(r!=="unset"){return r}}function h(e,t){return e instanceof Element&&e.matches(t)}function A(e){const t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;const n=t.exec(e);if(n){return n[1].toLowerCase()}else{return""}}function L(e){if("parseHTMLUnsafe"in Document){return Document.parseHTMLUnsafe(e)}const t=new DOMParser;return t.parseFromString(e,"text/html")}function N(e,t){while(t.childNodes.length>0){e.append(t.childNodes[0])}}function r(e){const t=te().createElement("script");ie(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}return t}function i(e){return e.matches("script")&&(e.type==="text/javascript"||e.type==="module"||e.type==="")}function I(e){Array.from(e.querySelectorAll("script")).forEach(e=>{if(i(e)){const t=r(e);const n=e.parentNode;try{n.insertBefore(t,e)}catch(e){H(e)}finally{e.remove()}}})}function D(e){const t=e.replace(/]*)?>[\s\S]*?<\/head>/i,"");const n=A(t);let r;if(n==="html"){r=new DocumentFragment;const i=L(e);N(r,i.body);r.title=i.title}else if(n==="body"){r=new DocumentFragment;const i=L(t);N(r,i.body);r.title=i.title}else{const i=L('");r=i.querySelector("template").content;r.title=i.title;var o=r.querySelector("title");if(o&&o.parentNode===r){o.remove();r.title=o.innerText}}if(r){if(Q.config.allowScriptTags){I(r)}else{r.querySelectorAll("script").forEach(e=>e.remove())}}return r}function re(e){if(e){e()}}function t(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function P(e){return typeof e==="function"}function k(e){return t(e,"Object")}function oe(e){const t="htmx-internal-data";let n=e[t];if(!n){n=e[t]={}}return n}function M(t){const n=[];if(t){for(let e=0;e=0}function se(e){return e.getRootNode({composed:true})===document}function B(e){return e.trim().split(/\s+/)}function le(e,t){for(const n in t){if(t.hasOwnProperty(n)){e[n]=t[n]}}return e}function v(e){try{return JSON.parse(e)}catch(e){H(e);return null}}function X(){const e="htmx:sessionStorageTest";try{sessionStorage.setItem(e,e);sessionStorage.removeItem(e);return true}catch(e){return false}}function U(e){const t=new URL(e,"http://x");if(t){e=t.pathname+t.search}if(e!="/"){e=e.replace(/\/+$/,"")}return e}function e(e){return On(te().body,function(){return eval(e)})}function V(t){const e=Q.on("htmx:load",function(e){t(e.detail.elt)});return e}function j(){Q.logger=function(e,t,n){if(console){console.log(t,e,n)}}}function $(){Q.logger=null}function f(e,t){if(typeof e!=="string"){return e.querySelector(t)}else{return f(te(),e)}}function x(e,t){if(typeof e!=="string"){return e.querySelectorAll(t)}else{return x(te(),e)}}function b(){return window}function _(e,t){e=w(e);if(t){b().setTimeout(function(){_(e);e=null},t)}else{u(e).removeChild(e)}}function ce(e){return e instanceof Element?e:null}function z(e){return e instanceof HTMLElement?e:null}function J(e){return typeof e==="string"?e:null}function p(e){return e instanceof Element||e instanceof Document||e instanceof DocumentFragment?e:null}function K(e,t,n){e=ce(w(e));if(!e){return}if(n){b().setTimeout(function(){K(e,t);e=null},n)}else{e.classList&&e.classList.add(t)}}function G(e,t,n){let r=ce(w(e));if(!r){return}if(n){b().setTimeout(function(){G(r,t);r=null},n)}else{if(r.classList){r.classList.remove(t);if(r.classList.length===0){r.removeAttribute("class")}}}}function W(e,t){e=w(e);e.classList.toggle(t)}function Z(e,t){e=w(e);ie(e.parentElement.children,function(e){G(e,t)});K(ce(e),t)}function g(e,t){e=ce(w(e));if(e){return e.closest(t)}return null}function l(e,t){return e.substring(0,t.length)===t}function Y(e,t){return e.substring(e.length-t.length)===t}function pe(e){const t=e.trim();if(l(t,"<")&&Y(t,"/>")){return t.substring(1,t.length-2)}else{return t}}function m(t,r,n){if(r.indexOf("global ")===0){return m(t,r.slice(7),true)}t=w(t);const o=[];{let t=0;let n=0;for(let e=0;e"){t--}}if(n0){const r=pe(o.shift());let e;if(r.indexOf("closest ")===0){e=g(ce(t),pe(r.slice(8)))}else if(r.indexOf("find ")===0){e=f(p(t),pe(r.slice(5)))}else if(r==="next"||r==="nextElementSibling"){e=ce(t).nextElementSibling}else if(r.indexOf("next ")===0){e=ge(t,pe(r.slice(5)),!!n)}else if(r==="previous"||r==="previousElementSibling"){e=ce(t).previousElementSibling}else if(r.indexOf("previous ")===0){e=me(t,pe(r.slice(9)),!!n)}else if(r==="document"){e=document}else if(r==="window"){e=window}else if(r==="body"){e=document.body}else if(r==="root"){e=y(t,!!n)}else if(r==="host"){e=t.getRootNode().host}else{s.push(r)}if(e){i.push(e)}}if(s.length>0){const e=s.join(",");const c=p(y(t,!!n));i.push(...M(c.querySelectorAll(e)))}return i}var ge=function(t,e,n){const r=p(y(t,n)).querySelectorAll(e);for(let e=0;e=0;e--){const o=r[e];if(o.compareDocumentPosition(t)===Node.DOCUMENT_POSITION_FOLLOWING){return o}}};function ue(e,t){if(typeof e!=="string"){return m(e,t)[0]}else{return m(te().body,e)[0]}}function w(e,t){if(typeof e==="string"){return f(p(t)||document,e)}else{return e}}function ye(e,t,n,r){if(P(t)){return{target:te().body,event:J(e),listener:t,options:n}}else{return{target:w(e),event:J(t),listener:n,options:r}}}function xe(t,n,r,o){Gn(function(){const e=ye(t,n,r,o);e.target.addEventListener(e.event,e.listener,e.options)});const e=P(n);return e?n:r}function be(t,n,r){Gn(function(){const e=ye(t,n,r);e.target.removeEventListener(e.event,e.listener)});return P(n)?n:r}const ve=te().createElement("output");function we(t,n){const e=ne(t,n);if(e){if(e==="this"){return[Se(t,n)]}else{const r=m(t,e);const o=/(^|,)(\s*)inherit(\s*)($|,)/.test(e);if(o){const i=ce(q(t,function(e){return e!==t&&s(ce(e),n)}));if(i){r.push(...we(i,n))}}if(r.length===0){H('The selector "'+e+'" on '+n+" returned no matches!");return[ve]}else{return r}}}}function Se(e,t){return ce(q(e,function(e){return a(ce(e),t)!=null}))}function Ee(e){const t=ne(e,"hx-target");if(t){if(t==="this"){return Se(e,"hx-target")}else{return ue(e,t)}}else{const n=oe(e);if(n.boosted){return te().body}else{return e}}}function Ce(e){return Q.config.attributesToSettle.includes(e)}function Oe(t,n){ie(Array.from(t.attributes),function(e){if(!n.hasAttribute(e.name)&&Ce(e.name)){t.removeAttribute(e.name)}});ie(n.attributes,function(e){if(Ce(e.name)){t.setAttribute(e.name,e.value)}})}function He(t,e){const n=Jn(e);for(let e=0;e0){s=e.substring(0,e.indexOf(":"));n=e.substring(e.indexOf(":")+1)}else{s=e}o.removeAttribute("hx-swap-oob");o.removeAttribute("data-hx-swap-oob");const r=m(t,n,false);if(r.length){ie(r,function(e){let t;const n=o.cloneNode(true);t=te().createDocumentFragment();t.appendChild(n);if(!He(s,e)){t=p(n)}const r={shouldSwap:true,target:e,fragment:t};if(!ae(e,"htmx:oobBeforeSwap",r))return;e=r.target;if(r.shouldSwap){qe(t);$e(s,e,e,t,i);Re()}ie(i.elts,function(e){ae(e,"htmx:oobAfterSwap",r)})});o.parentNode.removeChild(o)}else{o.parentNode.removeChild(o);fe(te().body,"htmx:oobErrorNoTarget",{content:o})}return e}function Re(){const e=f("#--htmx-preserve-pantry--");if(e){for(const t of[...e.children]){const n=f("#"+t.id);n.parentNode.moveBefore(t,n);n.remove()}e.remove()}}function qe(e){ie(x(e,"[hx-preserve], [data-hx-preserve]"),function(e){const t=a(e,"id");const n=te().getElementById(t);if(n!=null){if(e.moveBefore){let e=f("#--htmx-preserve-pantry--");if(e==null){te().body.insertAdjacentHTML("afterend","
");e=f("#--htmx-preserve-pantry--")}e.moveBefore(n,null)}else{e.parentNode.replaceChild(n,e)}}})}function Ae(l,e,c){ie(e.querySelectorAll("[id]"),function(t){const n=ee(t,"id");if(n&&n.length>0){const r=n.replace("'","\\'");const o=t.tagName.replace(":","\\:");const e=p(l);const i=e&&e.querySelector(o+"[id='"+r+"']");if(i&&i!==e){const s=t.cloneNode();Oe(t,i);c.tasks.push(function(){Oe(t,s)})}}})}function Le(e){return function(){G(e,Q.config.addedClass);Ft(ce(e));Ne(p(e));ae(e,"htmx:load")}}function Ne(e){const t="[autofocus]";const n=z(h(e,t)?e:e.querySelector(t));if(n!=null){n.focus()}}function c(e,t,n,r){Ae(e,n,r);while(n.childNodes.length>0){const o=n.firstChild;K(ce(o),Q.config.addedClass);e.insertBefore(o,t);if(o.nodeType!==Node.TEXT_NODE&&o.nodeType!==Node.COMMENT_NODE){r.tasks.push(Le(o))}}}function Ie(e,t){let n=0;while(n0}function ze(h,d,p,g){if(!g){g={}}let m=null;let n=null;let e=function(){re(g.beforeSwapCallback);h=w(h);const r=g.contextElement?y(g.contextElement,false):te();const e=document.activeElement;let t={};t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null};const o=Sn(h);if(p.swapStyle==="textContent"){h.textContent=d}else{let n=D(d);o.title=g.title||n.title;if(g.historyRequest){n=n.querySelector("[hx-history-elt],[data-hx-history-elt]")||n}if(g.selectOOB){const i=g.selectOOB.split(",");for(let t=0;t0){b().setTimeout(n,p.settleDelay)}else{n()}};let t=Q.config.globalViewTransitions;if(p.hasOwnProperty("transition")){t=p.transition}const r=g.contextElement||te();if(t&&ae(r,"htmx:beforeTransition",g.eventInfo)&&typeof Promise!=="undefined"&&document.startViewTransition){const o=new Promise(function(e,t){m=e;n=t});const i=e;e=function(){document.startViewTransition(function(){i();return o})}}try{if(p?.swapDelay&&p.swapDelay>0){b().setTimeout(e,p.swapDelay)}else{e()}}catch(e){fe(r,"htmx:swapError",g.eventInfo);re(n);throw e}}function Je(e,t,n){const r=e.getResponseHeader(t);if(r.indexOf("{")===0){const o=v(r);for(const i in o){if(o.hasOwnProperty(i)){let e=o[i];if(k(e)){n=e.target!==undefined?e.target:n}else{e={value:e}}ae(n,i,e)}}}else{const s=r.split(",");for(let e=0;e0){const s=o[0];if(s==="]"){e--;if(e===0){if(n===null){t=t+"true"}o.shift();t+=")})";try{const l=On(r,function(){return Function(t)()},function(){return true});l.source=t;return l}catch(e){fe(te().body,"htmx:syntax:error",{error:e,source:t});return null}}}else if(s==="["){e++}if(tt(s,n,i)){t+="(("+i+"."+s+") ? ("+i+"."+s+") : (window."+s+"))"}else{t=t+s}n=o.shift()}}}function O(e,t){let n="";while(e.length>0&&!t.test(e[0])){n+=e.shift()}return n}function rt(e){let t;if(e.length>0&&Ye.test(e[0])){e.shift();t=O(e,Qe).trim();e.shift()}else{t=O(e,E)}return t}const ot="input, textarea, select";function it(e,t,n){const r=[];const o=et(t);do{O(o,C);const l=o.length;const c=O(o,/[,\[\s]/);if(c!==""){if(c==="every"){const u={trigger:"every"};O(o,C);u.pollInterval=d(O(o,/[,\[\s]/));O(o,C);var i=nt(e,o,"event");if(i){u.eventFilter=i}r.push(u)}else{const f={trigger:c};var i=nt(e,o,"event");if(i){f.eventFilter=i}O(o,C);while(o.length>0&&o[0]!==","){const a=o.shift();if(a==="changed"){f.changed=true}else if(a==="once"){f.once=true}else if(a==="consume"){f.consume=true}else if(a==="delay"&&o[0]===":"){o.shift();f.delay=d(O(o,E))}else if(a==="from"&&o[0]===":"){o.shift();if(Ye.test(o[0])){var s=rt(o)}else{var s=O(o,E);if(s==="closest"||s==="find"||s==="next"||s==="previous"){o.shift();const h=rt(o);if(h.length>0){s+=" "+h}}}f.from=s}else if(a==="target"&&o[0]===":"){o.shift();f.target=rt(o)}else if(a==="throttle"&&o[0]===":"){o.shift();f.throttle=d(O(o,E))}else if(a==="queue"&&o[0]===":"){o.shift();f.queue=O(o,E)}else if(a==="root"&&o[0]===":"){o.shift();f[a]=rt(o)}else if(a==="threshold"&&o[0]===":"){o.shift();f[a]=O(o,E)}else{fe(e,"htmx:syntax:error",{token:o.shift()})}O(o,C)}r.push(f)}}if(o.length===l){fe(e,"htmx:syntax:error",{token:o.shift()})}O(o,C)}while(o[0]===","&&o.shift());if(n){n[t]=r}return r}function st(e){const t=a(e,"hx-trigger");let n=[];if(t){const r=Q.config.triggerSpecsCache;n=r&&r[t]||it(e,t,r)}if(n.length>0){return n}else if(h(e,"form")){return[{trigger:"submit"}]}else if(h(e,'input[type="button"], input[type="submit"]')){return[{trigger:"click"}]}else if(h(e,ot)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function lt(e){oe(e).cancelled=true}function ct(e,t,n){const r=oe(e);r.timeout=b().setTimeout(function(){if(se(e)&&r.cancelled!==true){if(!pt(n,e,Xt("hx:poll:trigger",{triggerSpec:n,target:e}))){t(e)}ct(e,t,n)}},n.pollInterval)}function ut(e){return location.hostname===e.hostname&&ee(e,"href")&&ee(e,"href").indexOf("#")!==0}function ft(e){return g(e,Q.config.disableSelector)}function at(t,n,e){if(t instanceof HTMLAnchorElement&&ut(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"&&String(ee(t,"method")).toLowerCase()!=="dialog"){n.boosted=true;let r,o;if(t.tagName==="A"){r="get";o=ee(t,"href")}else{const i=ee(t,"method");r=i?i.toLowerCase():"get";o=ee(t,"action");if(o==null||o===""){o=location.href}if(r==="get"&&o.includes("?")){o=o.replace(/\?[^#]+/,"")}}e.forEach(function(e){gt(t,function(e,t){const n=ce(e);if(ft(n)){S(n);return}he(r,o,n,t)},n,e,true)})}}function ht(e,t){if(e.type==="submit"&&t.tagName==="FORM"){return true}else if(e.type==="click"){const n=t.closest('input[type="submit"], button');if(n&&n.form&&n.type==="submit"){return true}const r=t.closest("a");const o=/^#.+/;if(r&&r.href&&!o.test(r.getAttribute("href"))){return true}}return false}function dt(e,t){return oe(e).boosted&&e instanceof HTMLAnchorElement&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function pt(e,t,n){const r=e.eventFilter;if(r){try{return r.call(t,n)!==true}catch(e){const o=r.source;fe(te().body,"htmx:eventFilter:error",{error:e,source:o});return true}}return false}function gt(l,c,e,u,f){const a=oe(l);let t;if(u.from){t=m(l,u.from)}else{t=[l]}if(u.changed){if(!("lastValue"in a)){a.lastValue=new WeakMap}t.forEach(function(e){if(!a.lastValue.has(u)){a.lastValue.set(u,new WeakMap)}a.lastValue.get(u).set(e,e.value)})}ie(t,function(i){const s=function(e){if(!se(l)){i.removeEventListener(u.trigger,s);return}if(dt(l,e)){return}if(f||ht(e,i)){e.preventDefault()}if(pt(u,l,e)){return}const t=oe(e);t.triggerSpec=u;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(l)<0){t.handledFor.push(l);if(u.consume){e.stopPropagation()}if(u.target&&e.target){if(!h(ce(e.target),u.target)){return}}if(u.once){if(a.triggeredOnce){return}else{a.triggeredOnce=true}}if(u.changed){const n=e.target;const r=n.value;const o=a.lastValue.get(u);if(o.has(n)&&o.get(n)===r){return}o.set(n,r)}if(a.delayed){clearTimeout(a.delayed)}if(a.throttle){return}if(u.throttle>0){if(!a.throttle){ae(l,"htmx:trigger");c(l,e);a.throttle=b().setTimeout(function(){a.throttle=null},u.throttle)}}else if(u.delay>0){a.delayed=b().setTimeout(function(){ae(l,"htmx:trigger");c(l,e)},u.delay)}else{ae(l,"htmx:trigger");c(l,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:u.trigger,listener:s,on:i});i.addEventListener(u.trigger,s)})}let mt=false;let yt=null;function xt(){if(!yt){yt=function(){mt=true};window.addEventListener("scroll",yt);window.addEventListener("resize",yt);setInterval(function(){if(mt){mt=false;ie(te().querySelectorAll("[hx-trigger*='revealed'],[data-hx-trigger*='revealed']"),function(e){bt(e)})}},200)}}function bt(e){if(!s(e,"data-hx-revealed")&&F(e)){e.setAttribute("data-hx-revealed","true");const t=oe(e);if(t.initHash){ae(e,"revealed")}else{e.addEventListener("htmx:afterProcessNode",function(){ae(e,"revealed")},{once:true})}}}function vt(e,t,n,r){const o=function(){if(!n.loaded){n.loaded=true;ae(e,"htmx:trigger");t(e)}};if(r>0){b().setTimeout(o,r)}else{o()}}function wt(t,n,e){let i=false;ie(de,function(r){if(s(t,"hx-"+r)){const o=a(t,"hx-"+r);i=true;n.path=o;n.verb=r;e.forEach(function(e){St(t,e,n,function(e,t){const n=ce(e);if(ft(n)){S(n);return}he(r,o,n,t)})})}});return i}function St(r,e,t,n){if(e.trigger==="revealed"){xt();gt(r,n,t,e);bt(ce(r))}else if(e.trigger==="intersect"){const o={};if(e.root){o.root=ue(r,e.root)}if(e.threshold){o.threshold=parseFloat(e.threshold)}const i=new IntersectionObserver(function(t){for(let e=0;e0){t.polling=true;ct(ce(r),n,e)}else{gt(r,n,t,e)}}function Et(e){const t=ce(e);if(!t){return false}const n=t.attributes;for(let e=0;e", "+e).join(""));return o}else{return[]}}function Rt(e){const t=At(e.target);const n=Nt(e);if(n){n.lastButtonClicked=t}}function qt(e){const t=Nt(e);if(t){t.lastButtonClicked=null}}function At(e){return g(ce(e),"button, input[type='submit']")}function Lt(e){return e.form||g(e,"form")}function Nt(e){const t=At(e.target);if(!t){return}const n=Lt(t);if(!n){return}return oe(n)}function It(e){e.addEventListener("click",Rt);e.addEventListener("focusin",Rt);e.addEventListener("focusout",qt)}function Dt(t,e,n){const r=oe(t);if(!Array.isArray(r.onHandlers)){r.onHandlers=[]}let o;const i=function(e){On(t,function(){if(ft(t)){return}if(!o){o=new Function("event",n)}o.call(t,e)})};t.addEventListener(e,i);r.onHandlers.push({event:e,listener:i})}function Pt(t){Pe(t);for(let e=0;eQ.config.historyCacheSize){i.shift()}while(i.length>0){try{sessionStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){fe(te().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Jt(t){if(!X()){return null}t=U(t);const n=v(sessionStorage.getItem("htmx-history-cache"))||[];for(let e=0;e=200&&this.status<400){r.response=this.response;ae(te().body,"htmx:historyCacheMissLoad",r);ze(r.historyElt,r.response,n,{contextElement:r.historyElt,historyRequest:true});$t(r.path);ae(te().body,"htmx:historyRestore",{path:e,cacheMiss:true,serverResponse:r.response})}else{fe(te().body,"htmx:historyCacheMissLoadError",r)}};if(ae(te().body,"htmx:historyCacheMiss",r)){t.send()}}function en(e){Gt();e=e||location.pathname+location.search;const t=Jt(e);if(t){const n={swapStyle:"innerHTML",swapDelay:0,settleDelay:0,scroll:t.scroll};const r={path:e,item:t,historyElt:_t(),swapSpec:n};if(ae(te().body,"htmx:historyCacheHit",r)){ze(r.historyElt,t.content,n,{contextElement:r.historyElt,title:t.title});$t(r.path);ae(te().body,"htmx:historyRestore",r)}}else{if(Q.config.refreshOnHistoryMiss){Q.location.reload(true)}else{Qt(e)}}}function tn(e){let t=we(e,"hx-indicator");if(t==null){t=[e]}ie(t,function(e){const t=oe(e);t.requestCount=(t.requestCount||0)+1;e.classList.add.call(e.classList,Q.config.requestClass)});return t}function nn(e){let t=we(e,"hx-disabled-elt");if(t==null){t=[]}ie(t,function(e){const t=oe(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute("disabled","");e.setAttribute("data-disabled-by-htmx","")});return t}function rn(e,t){ie(e.concat(t),function(e){const t=oe(e);t.requestCount=(t.requestCount||1)-1});ie(e,function(e){const t=oe(e);if(t.requestCount===0){e.classList.remove.call(e.classList,Q.config.requestClass)}});ie(t,function(e){const t=oe(e);if(t.requestCount===0){e.removeAttribute("disabled");e.removeAttribute("data-disabled-by-htmx")}})}function on(t,n){for(let e=0;en.indexOf(e)<0)}else{e=e.filter(e=>e!==n)}r.delete(t);ie(e,e=>r.append(t,e))}}function un(e){if(e instanceof HTMLSelectElement&&e.multiple){return M(e.querySelectorAll("option:checked")).map(function(e){return e.value})}if(e instanceof HTMLInputElement&&e.files){return M(e.files)}return e.value}function fn(t,n,r,e,o){if(e==null||on(t,e)){return}else{t.push(e)}if(sn(e)){const i=ee(e,"name");ln(i,un(e),n);if(o){an(e,r)}}if(e instanceof HTMLFormElement){ie(e.elements,function(e){if(t.indexOf(e)>=0){cn(e.name,un(e),n)}else{t.push(e)}if(o){an(e,r)}});new FormData(e).forEach(function(e,t){if(e instanceof File&&e.name===""){return}ln(t,e,n)})}}function an(e,t){const n=e;if(n.willValidate){ae(n,"htmx:validation:validate");if(!n.checkValidity()){if(ae(n,"htmx:validation:failed",{message:n.validationMessage,validity:n.validity})&&!t.length&&Q.config.reportValidityOfForms){n.reportValidity()}t.push({elt:n,message:n.validationMessage,validity:n.validity})}}}function hn(n,e){for(const t of e.keys()){n.delete(t)}e.forEach(function(e,t){n.append(t,e)});return n}function dn(e,t){const n=[];const r=new FormData;const o=new FormData;const i=[];const s=oe(e);if(s.lastButtonClicked&&!se(s.lastButtonClicked)){s.lastButtonClicked=null}let l=e instanceof HTMLFormElement&&e.noValidate!==true||a(e,"hx-validate")==="true";if(s.lastButtonClicked){l=l&&s.lastButtonClicked.formNoValidate!==true}if(t!=="get"){fn(n,o,i,Lt(e),l)}fn(n,r,i,e,l);if(s.lastButtonClicked||e.tagName==="BUTTON"||e.tagName==="INPUT"&&ee(e,"type")==="submit"){const u=s.lastButtonClicked||e;const f=ee(u,"name");ln(f,u.value,o)}const c=we(e,"hx-include");ie(c,function(e){fn(n,r,i,ce(e),l);if(!h(e,"form")){ie(p(e).querySelectorAll(ot),function(e){fn(n,r,i,e,l)})}});hn(r,o);return{errors:i,formData:r,values:kn(r)}}function pn(e,t,n){if(e!==""){e+="&"}if(String(n)==="[object Object]"){n=JSON.stringify(n)}const r=encodeURIComponent(n);e+=encodeURIComponent(t)+"="+r;return e}function gn(e){e=Dn(e);let n="";e.forEach(function(e,t){n=pn(n,t,e)});return n}function mn(e,t,n){const r={"HX-Request":"true","HX-Trigger":ee(e,"id"),"HX-Trigger-Name":ee(e,"name"),"HX-Target":a(t,"id"),"HX-Current-URL":location.href};Cn(e,"hx-headers",false,r);if(n!==undefined){r["HX-Prompt"]=n}if(oe(e).boosted){r["HX-Boosted"]="true"}return r}function yn(n,e){const t=ne(e,"hx-params");if(t){if(t==="none"){return new FormData}else if(t==="*"){return n}else if(t.indexOf("not ")===0){ie(t.slice(4).split(","),function(e){e=e.trim();n.delete(e)});return n}else{const r=new FormData;ie(t.split(","),function(t){t=t.trim();if(n.has(t)){n.getAll(t).forEach(function(e){r.append(t,e)})}});return r}}else{return n}}function xn(e){return!!ee(e,"href")&&ee(e,"href").indexOf("#")>=0}function bn(e,t){const n=t||ne(e,"hx-swap");const r={swapStyle:oe(e).boosted?"innerHTML":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&oe(e).boosted&&!xn(e)){r.show="top"}if(n){const s=B(n);if(s.length>0){for(let e=0;e0?o.join(":"):null;r.scroll=u;r.scrollTarget=i}else if(l.indexOf("show:")===0){const f=l.slice(5);var o=f.split(":");const a=o.pop();var i=o.length>0?o.join(":"):null;r.show=a;r.showTarget=i}else if(l.indexOf("focus-scroll:")===0){const h=l.slice("focus-scroll:".length);r.focusScroll=h=="true"}else if(e==0){r.swapStyle=l}else{H("Unknown modifier in hx-swap: "+l)}}}}return r}function vn(e){return ne(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&ee(e,"enctype")==="multipart/form-data"}function wn(t,n,r){let o=null;Vt(n,function(e){if(o==null){o=e.encodeParameters(t,r,n)}});if(o!=null){return o}else{if(vn(n)){return hn(new FormData,Dn(r))}else{return gn(r)}}}function Sn(e){return{tasks:[],elts:[e]}}function En(e,t){const n=e[0];const r=e[e.length-1];if(t.scroll){var o=null;if(t.scrollTarget){o=ce(ue(n,t.scrollTarget))}if(t.scroll==="top"&&(n||o)){o=o||n;o.scrollTop=0}if(t.scroll==="bottom"&&(r||o)){o=o||r;o.scrollTop=o.scrollHeight}if(typeof t.scroll==="number"){b().setTimeout(function(){window.scrollTo(0,t.scroll)},0)}}if(t.show){var o=null;if(t.showTarget){let e=t.showTarget;if(t.showTarget==="window"){e="body"}o=ce(ue(n,e))}if(t.show==="top"&&(n||o)){o=o||n;o.scrollIntoView({block:"start",behavior:Q.config.scrollBehavior})}if(t.show==="bottom"&&(r||o)){o=o||r;o.scrollIntoView({block:"end",behavior:Q.config.scrollBehavior})}}}function Cn(r,e,o,i,s){if(i==null){i={}}if(r==null){return i}const l=a(r,e);if(l){let e=l.trim();let t=o;if(e==="unset"){return null}if(e.indexOf("javascript:")===0){e=e.slice(11);t=true}else if(e.indexOf("js:")===0){e=e.slice(3);t=true}if(e.indexOf("{")!==0){e="{"+e+"}"}let n;if(t){n=On(r,function(){if(s){return Function("event","return ("+e+")").call(r,s)}else{return Function("return ("+e+")").call(r)}},{})}else{n=v(e)}for(const c in n){if(n.hasOwnProperty(c)){if(i[c]==null){i[c]=n[c]}}}}return Cn(ce(u(r)),e,o,i,s)}function On(e,t,n){if(Q.config.allowEval){return t()}else{fe(e,"htmx:evalDisallowedError");return n}}function Hn(e,t,n){return Cn(e,"hx-vars",true,n,t)}function Tn(e,t,n){return Cn(e,"hx-vals",false,n,t)}function Rn(e,t){return le(Hn(e,t),Tn(e,t))}function qn(t,n,r){if(r!==null){try{t.setRequestHeader(n,r)}catch(e){t.setRequestHeader(n,encodeURIComponent(r));t.setRequestHeader(n+"-URI-AutoEncoded","true")}}}function An(t){if(t.responseURL){try{const e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(te().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function T(e,t){return t.test(e.getAllResponseHeaders())}function Ln(t,n,r){t=t.toLowerCase();if(r){if(r instanceof Element||typeof r==="string"){return he(t,n,null,null,{targetOverride:w(r)||ve,returnPromise:true})}else{let e=w(r.target);if(r.target&&!e||r.source&&!e&&!w(r.source)){e=ve}return he(t,n,w(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:e,swapOverride:r.swap,select:r.select,returnPromise:true,push:r.push,replace:r.replace,selectOOB:r.selectOOB})}}else{return he(t,n,null,null,{returnPromise:true})}}function Nn(e){const t=[];while(e){t.push(e);e=e.parentElement}return t}function In(e,t,n){const r=new URL(t,location.protocol!=="about:"?location.href:window.origin);const o=location.protocol!=="about:"?location.origin:window.origin;const i=o===r.origin;if(Q.config.selfRequestsOnly){if(!i){return false}}return ae(e,"htmx:validateUrl",le({url:r,sameHost:i},n))}function Dn(e){if(e instanceof FormData)return e;const t=new FormData;for(const n in e){if(e.hasOwnProperty(n)){if(e[n]&&typeof e[n].forEach==="function"){e[n].forEach(function(e){t.append(n,e)})}else if(typeof e[n]==="object"&&!(e[n]instanceof Blob)){t.append(n,JSON.stringify(e[n]))}else{t.append(n,e[n])}}}return t}function Pn(r,o,e){return new Proxy(e,{get:function(t,e){if(typeof e==="number")return t[e];if(e==="length")return t.length;if(e==="push"){return function(e){t.push(e);r.append(o,e)}}if(typeof t[e]==="function"){return function(){t[e].apply(t,arguments);r.delete(o);t.forEach(function(e){r.append(o,e)})}}if(t[e]&&t[e].length===1){return t[e][0]}else{return t[e]}},set:function(e,t,n){e[t]=n;r.delete(o);e.forEach(function(e){r.append(o,e)});return true}})}function kn(o){return new Proxy(o,{get:function(e,t){if(typeof t==="symbol"){const r=Reflect.get(e,t);if(typeof r==="function"){return function(){return r.apply(o,arguments)}}else{return r}}if(t==="toJSON"){return()=>Object.fromEntries(o)}if(t in e){if(typeof e[t]==="function"){return function(){return o[t].apply(o,arguments)}}}const n=o.getAll(t);if(n.length===0){return undefined}else if(n.length===1){return n[0]}else{return Pn(e,t,n)}},set:function(t,n,e){if(typeof n!=="string"){return false}t.delete(n);if(e&&typeof e.forEach==="function"){e.forEach(function(e){t.append(n,e)})}else if(typeof e==="object"&&!(e instanceof Blob)){t.append(n,JSON.stringify(e))}else{t.append(n,e)}return true},deleteProperty:function(e,t){if(typeof t==="string"){e.delete(t)}return true},ownKeys:function(e){return Reflect.ownKeys(Object.fromEntries(e))},getOwnPropertyDescriptor:function(e,t){return Reflect.getOwnPropertyDescriptor(Object.fromEntries(e),t)}})}function he(t,n,r,o,i,k){let s=null;let l=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var e=new Promise(function(e,t){s=e;l=t})}if(r==null){r=te().body}const M=i.handler||Vn;const F=i.select||null;if(!se(r)){re(s);return e}const c=i.targetOverride||ce(Ee(r));if(c==null||c==ve){fe(r,"htmx:targetError",{target:ne(r,"hx-target")});re(l);return e}let u=oe(r);const f=u.lastButtonClicked;if(f){const A=ee(f,"formaction");if(A!=null){n=A}const L=ee(f,"formmethod");if(L!=null){if(de.includes(L.toLowerCase())){t=L}else{re(s);return e}}}const a=ne(r,"hx-confirm");if(k===undefined){const K=function(e){return he(t,n,r,o,i,!!e)};const G={target:c,elt:r,path:n,verb:t,triggeringEvent:o,etc:i,issueRequest:K,question:a};if(ae(r,"htmx:confirm",G)===false){re(s);return e}}let h=r;let d=ne(r,"hx-sync");let p=null;let B=false;if(d){const N=d.split(":");const I=N[0].trim();if(I==="this"){h=Se(r,"hx-sync")}else{h=ce(ue(r,I))}d=(N[1]||"drop").trim();u=oe(h);if(d==="drop"&&u.xhr&&u.abortable!==true){re(s);return e}else if(d==="abort"){if(u.xhr){re(s);return e}else{B=true}}else if(d==="replace"){ae(h,"htmx:abort")}else if(d.indexOf("queue")===0){const W=d.split(" ");p=(W[1]||"last").trim()}}if(u.xhr){if(u.abortable){ae(h,"htmx:abort")}else{if(p==null){if(o){const D=oe(o);if(D&&D.triggerSpec&&D.triggerSpec.queue){p=D.triggerSpec.queue}}if(p==null){p="last"}}if(u.queuedRequests==null){u.queuedRequests=[]}if(p==="first"&&u.queuedRequests.length===0){u.queuedRequests.push(function(){he(t,n,r,o,i)})}else if(p==="all"){u.queuedRequests.push(function(){he(t,n,r,o,i)})}else if(p==="last"){u.queuedRequests=[];u.queuedRequests.push(function(){he(t,n,r,o,i)})}re(s);return e}}const g=new XMLHttpRequest;u.xhr=g;u.abortable=B;const m=function(){u.xhr=null;u.abortable=false;if(u.queuedRequests!=null&&u.queuedRequests.length>0){const e=u.queuedRequests.shift();e()}};const X=ne(r,"hx-prompt");if(X){var y=prompt(X);if(y===null||!ae(r,"htmx:prompt",{prompt:y,target:c})){re(s);m();return e}}if(a&&!k){if(!confirm(a)){re(s);m();return e}}let x=mn(r,c,y);if(t!=="get"&&!vn(r)){x["Content-Type"]="application/x-www-form-urlencoded"}if(i.headers){x=le(x,i.headers)}const U=dn(r,t);let b=U.errors;const V=U.formData;if(i.values){hn(V,Dn(i.values))}const j=Dn(Rn(r,o));const v=hn(V,j);let w=yn(v,r);if(Q.config.getCacheBusterParam&&t==="get"){w.set("org.htmx.cache-buster",ee(c,"id")||"true")}if(n==null||n===""){n=location.href}const S=Cn(r,"hx-request");const $=oe(r).boosted;let E=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;const C={boosted:$,useUrlParams:E,formData:w,parameters:kn(w),unfilteredFormData:v,unfilteredParameters:kn(v),headers:x,elt:r,target:c,verb:t,errors:b,withCredentials:i.credentials||S.credentials||Q.config.withCredentials,timeout:i.timeout||S.timeout||Q.config.timeout,path:n,triggeringEvent:o};if(!ae(r,"htmx:configRequest",C)){re(s);m();return e}n=C.path;t=C.verb;x=C.headers;w=Dn(C.parameters);b=C.errors;E=C.useUrlParams;if(b&&b.length>0){ae(r,"htmx:validation:halted",C);re(s);m();return e}const _=n.split("#");const z=_[0];const O=_[1];let H=n;if(E){H=z;const Z=!w.keys().next().done;if(Z){if(H.indexOf("?")<0){H+="?"}else{H+="&"}H+=gn(w);if(O){H+="#"+O}}}if(!In(r,H,C)){fe(r,"htmx:invalidPath",C);re(l);m();return e}g.open(t.toUpperCase(),H,true);g.overrideMimeType("text/html");g.withCredentials=C.withCredentials;g.timeout=C.timeout;if(S.noHeaders){}else{for(const P in x){if(x.hasOwnProperty(P)){const Y=x[P];qn(g,P,Y)}}}const T={xhr:g,target:c,requestConfig:C,etc:i,boosted:$,select:F,pathInfo:{requestPath:n,finalRequestPath:H,responsePath:null,anchor:O}};g.onload=function(){try{const t=Nn(r);T.pathInfo.responsePath=An(g);M(r,T);if(T.keepIndicators!==true){rn(R,q)}ae(r,"htmx:afterRequest",T);ae(r,"htmx:afterOnLoad",T);if(!se(r)){let e=null;while(t.length>0&&e==null){const n=t.shift();if(se(n)){e=n}}if(e){ae(e,"htmx:afterRequest",T);ae(e,"htmx:afterOnLoad",T)}}re(s)}catch(e){fe(r,"htmx:onLoadError",le({error:e},T));throw e}finally{m()}};g.onerror=function(){rn(R,q);fe(r,"htmx:afterRequest",T);fe(r,"htmx:sendError",T);re(l);m()};g.onabort=function(){rn(R,q);fe(r,"htmx:afterRequest",T);fe(r,"htmx:sendAbort",T);re(l);m()};g.ontimeout=function(){rn(R,q);fe(r,"htmx:afterRequest",T);fe(r,"htmx:timeout",T);re(l);m()};if(!ae(r,"htmx:beforeRequest",T)){re(s);m();return e}var R=tn(r);var q=nn(r);ie(["loadstart","loadend","progress","abort"],function(t){ie([g,g.upload],function(e){e.addEventListener(t,function(e){ae(r,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ae(r,"htmx:beforeSend",T);const J=E?null:wn(g,r,w);g.send(J);return e}function Mn(e,t){const n=t.xhr;let r=null;let o=null;if(T(n,/HX-Push:/i)){r=n.getResponseHeader("HX-Push");o="push"}else if(T(n,/HX-Push-Url:/i)){r=n.getResponseHeader("HX-Push-Url");o="push"}else if(T(n,/HX-Replace-Url:/i)){r=n.getResponseHeader("HX-Replace-Url");o="replace"}if(r){if(r==="false"){return{}}else{return{type:o,path:r}}}const i=t.pathInfo.finalRequestPath;const s=t.pathInfo.responsePath;const l=t.etc.push||ne(e,"hx-push-url");const c=t.etc.replace||ne(e,"hx-replace-url");const u=oe(e).boosted;let f=null;let a=null;if(l){f="push";a=l}else if(c){f="replace";a=c}else if(u){f="push";a=s||i}if(a){if(a==="false"){return{}}if(a==="true"){a=s||i}if(t.pathInfo.anchor&&a.indexOf("#")===-1){a=a+"#"+t.pathInfo.anchor}return{type:f,path:a}}else{return{}}}function Fn(e,t){var n=new RegExp(e.code);return n.test(t.toString(10))}function Bn(e){for(var t=0;t`+`.${t}{opacity:0;visibility: hidden} `+`.${n} .${t}, .${n}.${t}{opacity:1;visibility: visible;transition: opacity 200ms ease-in}`+"")}}function Zn(){const e=te().querySelector('meta[name="htmx-config"]');if(e){return v(e.content)}else{return null}}function Yn(){const e=Zn();if(e){Q.config=le(Q.config,e)}}Gn(function(){Yn();Wn();let e=te().body;Ft(e);const t=te().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){const t=e.detail.elt||e.target;const n=oe(t);if(n&&n.xhr){n.xhr.abort()}});const n=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){en();ie(t,function(e){ae(e,"htmx:restored",{document:te(),triggerEvent:ae})})}else{if(n){n(e)}}};b().setTimeout(function(){ae(e,"htmx:load",{});e=null},0)});return Q}(); \ No newline at end of file diff --git a/web/templates/admin/audit_logs.html b/web/templates/admin/audit_logs.html new file mode 100644 index 0000000..9859ab4 --- /dev/null +++ b/web/templates/admin/audit_logs.html @@ -0,0 +1,32 @@ +{{define "content"}} +
+

Audit Logs

+ +
+
    + + +
+
+ +
+ + +
+
+{{end}} diff --git a/web/templates/admin/dashboard.html b/web/templates/admin/dashboard.html index 7b505bf..7e2417b 100644 --- a/web/templates/admin/dashboard.html +++ b/web/templates/admin/dashboard.html @@ -1,9 +1,29 @@ {{define "content"}} -
-

Admin Dashboard

-

Area amministrazione.

-
- Gestione utenti +
+
+

Admin Dashboard

+

Area amministrazione.

-
+ +
+
+

Utenti

+

{{if .PageData}}{{.PageData.Total}}{{else}}-{{end}}

+
+
+

Ruolo corrente

+

+ {{if and .CurrentUser (eq .CurrentUser.Role "admin")}} + admin + {{else}} + user + {{end}} +

+
+ +
+ {{end}} diff --git a/web/templates/admin/users.html b/web/templates/admin/users.html new file mode 100644 index 0000000..af2c29b --- /dev/null +++ b/web/templates/admin/users.html @@ -0,0 +1,8 @@ +{{define "content"}} +
+

Admin Users

+
+

Template pagina utenti admin in stile Flowbite.

+
+
+{{end}} diff --git a/web/templates/admin/users/_modal.html b/web/templates/admin/users/_modal.html index dba6c2d..046a4c3 100644 --- a/web/templates/admin/users/_modal.html +++ b/web/templates/admin/users/_modal.html @@ -1,13 +1,36 @@ {{define "users_modal"}} -
-

Dettaglio utente #{{.User.ID}}

-

Name: {{if .User.Name}}{{.User.Name}}{{else}}-{{end}}

-

Email: {{.User.Email}}

-

Role: {{.User.Role}}

-

Verified: {{if .User.EmailVerified}}yes{{else}}no{{end}}

-

Created: {{.User.CreatedAt}}

-
- +
+
+ ID: + {{.User.ID}} +
+
+ Role: + {{if eq .User.Role "admin"}} + admin + {{else}} + user + {{end}} +
+
+ Name: + {{if .User.Name}}{{.User.Name}}{{else}}-{{end}} +
+
+ Email: + {{.User.Email}} +
+
+ Verified: + {{if .User.EmailVerified}}yes{{else}}no{{end}} +
+
+ Created: + {{.User.CreatedAt}}
+ +
+ +
{{end}} diff --git a/web/templates/admin/users/_table.html b/web/templates/admin/users/_table.html index 87aa4de..1e18f02 100644 --- a/web/templates/admin/users/_table.html +++ b/web/templates/admin/users/_table.html @@ -1,47 +1,53 @@ {{define "users_table"}} {{ $p := .PageData }} - - - - - - - - - - - - {{range $u := $p.Users}} - - - - - - - - {{else}} - - {{end}} - -
- ID - - Name - - Email - RoleAzioni
{{$u.ID}}{{if $u.Name}}{{$u.Name}}{{else}}-{{end}}{{$u.Email}}{{$u.Role}} - -
Nessun utente trovato.
+
+ + + + + + + + + + + + {{range $u := $p.Users}} + + + + + + + + {{else}} + + + + {{end}} + +
+ + + + + + RoleAzioni
{{$u.ID}}{{if $u.Name}}{{$u.Name}}{{else}}-{{end}}{{$u.Email}} + {{if eq $u.Role "admin"}} + admin + {{else}} + user + {{end}} + + +
Nessun utente trovato.
+
-
-
Totale: {{$p.Total}} utenti. Pagina {{$p.Page}}{{if gt $p.TotalPages 0}} / {{$p.TotalPages}}{{end}}
-
- - +
+
Totale: {{$p.Total}} utenti. Pagina {{$p.Page}}{{if gt $p.TotalPages 0}} / {{$p.TotalPages}}{{end}}
+
+ +
{{end}} diff --git a/web/templates/admin/users/index.html b/web/templates/admin/users/index.html index b85b76a..74236bc 100644 --- a/web/templates/admin/users/index.html +++ b/web/templates/admin/users/index.html @@ -1,36 +1,74 @@ {{define "content"}} -

Users

-

Ricerca, ordinamento e paging server-side via HTMX.

+
+
+
+

Users

+

Ricerca, ordinamento e paging server-side via HTMX.

+
+ +
-
- - - - - - -
+
+
+ + +
+
+ + +
+
+ +
+ + + +
-
- {{template "users_table" .}} +
+ {{template "users_table" .}} +
+
+ + - -
-
- - + {{end}} diff --git a/web/templates/components/collapse.html b/web/templates/components/collapse.html new file mode 100644 index 0000000..fb888bf --- /dev/null +++ b/web/templates/components/collapse.html @@ -0,0 +1,13 @@ +{{define "flowbite_collapse"}} + + +{{end}} diff --git a/web/templates/components/dropdown.html b/web/templates/components/dropdown.html new file mode 100644 index 0000000..7c898f1 --- /dev/null +++ b/web/templates/components/dropdown.html @@ -0,0 +1,16 @@ +{{define "flowbite_dropdown"}} + + + +{{end}} diff --git a/web/templates/components/flash.html b/web/templates/components/flash.html new file mode 100644 index 0000000..6f03485 --- /dev/null +++ b/web/templates/components/flash.html @@ -0,0 +1,17 @@ +{{define "flowbite_flash"}} +{{if .FlashSuccess}} + +{{end}} +{{if .FlashError}} + +{{end}} +{{if .FlashWarning}} + +{{end}} +{{end}} diff --git a/web/templates/components/modal.html b/web/templates/components/modal.html new file mode 100644 index 0000000..16b5a05 --- /dev/null +++ b/web/templates/components/modal.html @@ -0,0 +1,25 @@ +{{define "flowbite_modal"}} + +{{end}} diff --git a/web/templates/components/navbar.html b/web/templates/components/navbar.html new file mode 100644 index 0000000..adf3260 --- /dev/null +++ b/web/templates/components/navbar.html @@ -0,0 +1,21 @@ +{{define "flowbite_navbar"}} + +{{end}} diff --git a/web/templates/components/tabs.html b/web/templates/components/tabs.html new file mode 100644 index 0000000..470a0aa --- /dev/null +++ b/web/templates/components/tabs.html @@ -0,0 +1,20 @@ +{{define "flowbite_tabs"}} +
+
    + + +
+
+
+ + +
+{{end}} diff --git a/web/templates/layout.html b/web/templates/layout.html index 0f52974..e31159c 100644 --- a/web/templates/layout.html +++ b/web/templates/layout.html @@ -5,38 +5,85 @@ {{.Title}} - - - + + - -