diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a9e18b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.venv +.vscode +.env +node_modules +__pycache__ \ No newline at end of file diff --git a/admin/.python-version b/admin/.python-version new file mode 100644 index 0000000..171a6a9 --- /dev/null +++ b/admin/.python-version @@ -0,0 +1 @@ +3.12.1 diff --git a/admin/input.css b/admin/input.css new file mode 100644 index 0000000..17c8bf2 --- /dev/null +++ b/admin/input.css @@ -0,0 +1,5 @@ +@import "tailwindcss"; +@import "flowbite/src/themes/default"; +@plugin "flowbite/plugin"; +@source "node_modules/flowbite"; +@source "node_modules/flowbite-datepicker"; diff --git a/admin/main.py b/admin/main.py new file mode 100644 index 0000000..17ee41f --- /dev/null +++ b/admin/main.py @@ -0,0 +1,33 @@ +import json +import boto3.session +from flask import Flask, render_template, request +from dotenv import load_dotenv +import os +import boto3 + +load_dotenv() +app = Flask(__name__) + +session = boto3.session.Session() +s3 = session.client( + service_name='s3', + aws_access_key_id=os.getenv('AWS_ACCESS_KEY_ID'), + aws_secret_access_key=os.getenv('AWS_SECRET_ACCESS_KEY'), + endpoint_url=os.getenv('AWS_ENDPOINT'), +) + +@app.route('/') +def Home(): + # objects = s3.list_objects(Bucket=os.getenv("AWS_BUCKET"))['Contents'] + # return render_template("Index.html", objects=objects) + return render_template("Index.html", page_title="Home") + +@app.route('/upload/') +def Upload(): + return render_template("Upload.html", page_title="Upload") + +@app.route('/api/upload/', methods=['POST']) +def ApiUpload(): + print(request.files['file']) + print(request.form) + return {"status": "ok", "message": "Uploaded"} \ No newline at end of file diff --git a/admin/package-lock.json b/admin/package-lock.json new file mode 100644 index 0000000..48c6a54 --- /dev/null +++ b/admin/package-lock.json @@ -0,0 +1,1126 @@ +{ + "name": "admin", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@tailwindcss/cli": "^4.0.6", + "flowbite": "^3.1.2", + "tailwindcss": "^4.0.6" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "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.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "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==", + "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==", + "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.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "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.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.0.6.tgz", + "integrity": "sha512-5EybaKjLL6ruuKq4PFMpf60npR6x6MmVlqvXWca7ZcujQd7rj5vckNHi2M7Bn0U7dkWmmOm3s/9USLL7BZuudw==", + "dependencies": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "^4.0.6", + "@tailwindcss/oxide": "^4.0.6", + "enhanced-resolve": "^5.18.0", + "lightningcss": "^1.29.1", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.0.6" + }, + "bin": { + "tailwindcss": "dist/index.mjs" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.6.tgz", + "integrity": "sha512-jb6E0WeSq7OQbVYcIJ6LxnZTeC4HjMvbzFBMCrQff4R50HBlo/obmYNk6V2GCUXDeqiXtvtrQgcIbT+/boB03Q==", + "dependencies": { + "enhanced-resolve": "^5.18.0", + "jiti": "^2.4.2", + "tailwindcss": "4.0.6" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.6.tgz", + "integrity": "sha512-lVyKV2y58UE9CeKVcYykULe9QaE1dtKdxDEdrTPIdbzRgBk6bdxHNAoDqvcqXbIGXubn3VOl1O/CFF77v/EqSA==", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.0.6", + "@tailwindcss/oxide-darwin-arm64": "4.0.6", + "@tailwindcss/oxide-darwin-x64": "4.0.6", + "@tailwindcss/oxide-freebsd-x64": "4.0.6", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.6", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.6", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.6", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.6", + "@tailwindcss/oxide-linux-x64-musl": "4.0.6", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.6", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.6" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.6.tgz", + "integrity": "sha512-xDbym6bDPW3D2XqQqX3PjqW3CKGe1KXH7Fdkc60sX5ZLVUbzPkFeunQaoP+BuYlLc2cC1FoClrIRYnRzof9Sow==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.6.tgz", + "integrity": "sha512-1f71/ju/tvyGl5c2bDkchZHy8p8EK/tDHCxlpYJ1hGNvsYihZNurxVpZ0DefpN7cNc9RTT8DjrRoV8xXZKKRjg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.6.tgz", + "integrity": "sha512-s/hg/ZPgxFIrGMb0kqyeaqZt505P891buUkSezmrDY6lxv2ixIELAlOcUVTkVh245SeaeEiUVUPiUN37cwoL2g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.6.tgz", + "integrity": "sha512-Z3Wo8FWZnmio8+xlcbb7JUo/hqRMSmhQw8IGIRoRJ7GmLR0C+25Wq+bEX/135xe/yEle2lFkhu9JBHd4wZYiig==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.6.tgz", + "integrity": "sha512-SNSwkkim1myAgmnbHs4EjXsPL7rQbVGtjcok5EaIzkHkCAVK9QBQsWeP2Jm2/JJhq4wdx8tZB9Y7psMzHYWCkA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.6.tgz", + "integrity": "sha512-tJ+mevtSDMQhKlwCCuhsFEFg058kBiSy4TkoeBG921EfrHKmexOaCyFKYhVXy4JtkaeeOcjJnCLasEeqml4i+Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.6.tgz", + "integrity": "sha512-IoArz1vfuTR4rALXMUXI/GWWfx2EaO4gFNtBNkDNOYhlTD4NVEwE45nbBoojYiTulajI4c2XH8UmVEVJTOJKxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.6.tgz", + "integrity": "sha512-QtsUfLkEAeWAC3Owx9Kg+7JdzE+k9drPhwTAXbXugYB9RZUnEWWx5x3q/au6TvUYcL+n0RBqDEO2gucZRvRFgQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.6.tgz", + "integrity": "sha512-QthvJqIji2KlGNwLcK/PPYo7w1Wsi/8NK0wAtRGbv4eOPdZHkQ9KUk+oCoP20oPO7i2a6X1aBAFQEL7i08nNMA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.6.tgz", + "integrity": "sha512-+oka+dYX8jy9iP00DJ9Y100XsqvbqR5s0yfMZJuPR1H/lDVtDfsZiSix1UFBQ3X1HWxoEEl6iXNJHWd56TocVw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.6.tgz", + "integrity": "sha512-+o+juAkik4p8Ue/0LiflQXPmVatl6Av3LEZXpBTfg4qkMIbZdhCGWFzHdt2NjoMiLOJCFDddoV6GYaimvK1Olw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + }, + "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==" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.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==" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "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==", + "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==", + "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==" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "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==", + "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==", + "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==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", + "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.1", + "lightningcss-darwin-x64": "1.29.1", + "lightningcss-freebsd-x64": "1.29.1", + "lightningcss-linux-arm-gnueabihf": "1.29.1", + "lightningcss-linux-arm64-gnu": "1.29.1", + "lightningcss-linux-arm64-musl": "1.29.1", + "lightningcss-linux-x64-gnu": "1.29.1", + "lightningcss-linux-x64-musl": "1.29.1", + "lightningcss-win32-arm64-msvc": "1.29.1", + "lightningcss-win32-x64-msvc": "1.29.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz", + "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz", + "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz", + "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==", + "cpu": [ + "x64" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz", + "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==", + "cpu": [ + "arm" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz", + "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==", + "cpu": [ + "arm64" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz", + "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==", + "cpu": [ + "arm64" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz", + "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==", + "cpu": [ + "x64" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz", + "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==", + "cpu": [ + "x64" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz", + "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==", + "cpu": [ + "arm64" + ], + "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.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz", + "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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==", + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "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==" + }, + "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==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dependencies": { + "is-core-module": "^2.16.0", + "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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", + "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + } + } +} diff --git a/admin/package.json b/admin/package.json new file mode 100644 index 0000000..d997665 --- /dev/null +++ b/admin/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "@tailwindcss/cli": "^4.0.6", + "flowbite": "^3.1.2", + "tailwindcss": "^4.0.6" + } +} diff --git a/admin/requirements.txt b/admin/requirements.txt new file mode 100644 index 0000000..00dc2db --- /dev/null +++ b/admin/requirements.txt @@ -0,0 +1,5 @@ +python-dotenv + +Flask +boto3 +pillow diff --git a/admin/static/tailwind.css b/admin/static/tailwind.css new file mode 100644 index 0000000..91f0315 --- /dev/null +++ b/admin/static/tailwind.css @@ -0,0 +1,3553 @@ +/*! tailwindcss v4.0.6 | MIT License | https://tailwindcss.com */ +@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-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; + --color-red-50: #FEF2F2; + --color-red-100: #FEE2E2; + --color-red-200: #FECACA; + --color-red-300: #FCA5A5; + --color-red-400: #F87171; + --color-red-500: #EF4444; + --color-red-600: #DC2626; + --color-red-700: #B91C1C; + --color-red-800: #991B1B; + --color-red-900: #7F1D1D; + --color-red-950: oklch(0.258 0.092 26.042); + --color-orange-50: #FFFAF0; + --color-orange-100: #FEEBC8; + --color-orange-200: #FBD38D; + --color-orange-300: #F6AD55; + --color-orange-400: #ED8936; + --color-orange-500: #DD6B20; + --color-orange-600: #C05621; + --color-orange-700: #9C4221; + --color-orange-800: #7B341E; + --color-orange-900: #652B19; + --color-orange-950: oklch(0.266 0.079 36.259); + --color-amber-50: oklch(0.987 0.022 95.277); + --color-amber-100: oklch(0.962 0.059 95.617); + --color-amber-200: oklch(0.924 0.12 95.746); + --color-amber-300: oklch(0.879 0.169 91.605); + --color-amber-400: oklch(0.828 0.189 84.429); + --color-amber-500: oklch(0.769 0.188 70.08); + --color-amber-600: oklch(0.666 0.179 58.318); + --color-amber-700: oklch(0.555 0.163 48.998); + --color-amber-800: oklch(0.473 0.137 46.201); + --color-amber-900: oklch(0.414 0.112 45.904); + --color-amber-950: oklch(0.279 0.077 45.635); + --color-yellow-50: #FFFBEB; + --color-yellow-100: #FEF3C7; + --color-yellow-200: #FDE68A; + --color-yellow-300: #FCD34D; + --color-yellow-400: #FBBF24; + --color-yellow-500: #F59E0B; + --color-yellow-600: #D97706; + --color-yellow-700: #B45309; + --color-yellow-800: #92400E; + --color-yellow-900: #78350F; + --color-yellow-950: oklch(0.286 0.066 53.813); + --color-lime-50: oklch(0.986 0.031 120.757); + --color-lime-100: oklch(0.967 0.067 122.328); + --color-lime-200: oklch(0.938 0.127 124.321); + --color-lime-300: oklch(0.897 0.196 126.665); + --color-lime-400: oklch(0.841 0.238 128.85); + --color-lime-500: oklch(0.768 0.233 130.85); + --color-lime-600: oklch(0.648 0.2 131.684); + --color-lime-700: oklch(0.532 0.157 131.589); + --color-lime-800: oklch(0.453 0.124 130.933); + --color-lime-900: oklch(0.405 0.101 131.063); + --color-lime-950: oklch(0.274 0.072 132.109); + --color-green-50: #ECFDF5; + --color-green-100: #D1FAE5; + --color-green-200: #A7F3D0; + --color-green-300: #6EE7B7; + --color-green-400: #34D399; + --color-green-500: #10B981; + --color-green-600: #059669; + --color-green-700: #047857; + --color-green-800: #065F46; + --color-green-900: #064E3B; + --color-green-950: oklch(0.266 0.065 152.934); + --color-emerald-50: oklch(0.979 0.021 166.113); + --color-emerald-100: oklch(0.95 0.052 163.051); + --color-emerald-200: oklch(0.905 0.093 164.15); + --color-emerald-300: oklch(0.845 0.143 164.978); + --color-emerald-400: oklch(0.765 0.177 163.223); + --color-emerald-500: oklch(0.696 0.17 162.48); + --color-emerald-600: oklch(0.596 0.145 163.225); + --color-emerald-700: oklch(0.508 0.118 165.612); + --color-emerald-800: oklch(0.432 0.095 166.913); + --color-emerald-900: oklch(0.378 0.077 168.94); + --color-emerald-950: oklch(0.262 0.051 172.552); + --color-teal-50: #F0FDFA; + --color-teal-100: #CCFBF1; + --color-teal-200: #99F6E4; + --color-teal-300: #5EEAD4; + --color-teal-400: #2DD4BF; + --color-teal-500: #14B8A6; + --color-teal-600: #0D9488; + --color-teal-700: #0F766E; + --color-teal-800: #115E59; + --color-teal-900: #134E4A; + --color-teal-950: oklch(0.277 0.046 192.524); + --color-cyan-50: #ECFEFF; + --color-cyan-100: #CFFAFE; + --color-cyan-200: #A5F3FC; + --color-cyan-300: #67E8F9; + --color-cyan-400: #22D3EE; + --color-cyan-500: #06B6D4; + --color-cyan-600: #0891B2; + --color-cyan-700: #0E7490; + --color-cyan-800: #155E75; + --color-cyan-900: #164E63; + --color-cyan-950: oklch(0.302 0.056 229.695); + --color-sky-50: oklch(0.977 0.013 236.62); + --color-sky-100: oklch(0.951 0.026 236.824); + --color-sky-200: oklch(0.901 0.058 230.902); + --color-sky-300: oklch(0.828 0.111 230.318); + --color-sky-400: oklch(0.746 0.16 232.661); + --color-sky-500: oklch(0.685 0.169 237.323); + --color-sky-600: oklch(0.588 0.158 241.966); + --color-sky-700: oklch(0.5 0.134 242.749); + --color-sky-800: oklch(0.443 0.11 240.79); + --color-sky-900: oklch(0.391 0.09 240.876); + --color-sky-950: oklch(0.293 0.066 243.157); + --color-blue-50: #EFF6FF; + --color-blue-100: #DBEAFE; + --color-blue-200: #BFDBFE; + --color-blue-300: #93C5FD; + --color-blue-400: #60A5FA; + --color-blue-500: #3B82F6; + --color-blue-600: #2563EB; + --color-blue-700: #1D4ED8; + --color-blue-800: #1E40AF; + --color-blue-900: #1E3A8A; + --color-blue-950: oklch(0.282 0.091 267.935); + --color-indigo-50: #EEF2FF; + --color-indigo-100: #E0E7FF; + --color-indigo-200: #C7D2FE; + --color-indigo-300: #A5B4FC; + --color-indigo-400: #818CF8; + --color-indigo-500: #6366F1; + --color-indigo-600: #4F46E5; + --color-indigo-700: #4338CA; + --color-indigo-800: #3730A3; + --color-indigo-900: #312E81; + --color-indigo-950: oklch(0.257 0.09 281.288); + --color-violet-50: oklch(0.969 0.016 293.756); + --color-violet-100: oklch(0.943 0.029 294.588); + --color-violet-200: oklch(0.894 0.057 293.283); + --color-violet-300: oklch(0.811 0.111 293.571); + --color-violet-400: oklch(0.702 0.183 293.541); + --color-violet-500: oklch(0.606 0.25 292.717); + --color-violet-600: oklch(0.541 0.281 293.009); + --color-violet-700: oklch(0.491 0.27 292.581); + --color-violet-800: oklch(0.432 0.232 292.759); + --color-violet-900: oklch(0.38 0.189 293.745); + --color-violet-950: oklch(0.283 0.141 291.089); + --color-purple-50: #F5F3FF; + --color-purple-100: #EDE9FE; + --color-purple-200: #DDD6FE; + --color-purple-300: #C4B5FD; + --color-purple-400: #A78BFA; + --color-purple-500: #8B5CF6; + --color-purple-600: #7C3AED; + --color-purple-700: #6D28D9; + --color-purple-800: #5B21B6; + --color-purple-900: #4C1D95; + --color-purple-950: oklch(0.291 0.149 302.717); + --color-fuchsia-50: oklch(0.977 0.017 320.058); + --color-fuchsia-100: oklch(0.952 0.037 318.852); + --color-fuchsia-200: oklch(0.903 0.076 319.62); + --color-fuchsia-300: oklch(0.833 0.145 321.434); + --color-fuchsia-400: oklch(0.74 0.238 322.16); + --color-fuchsia-500: oklch(0.667 0.295 322.15); + --color-fuchsia-600: oklch(0.591 0.293 322.896); + --color-fuchsia-700: oklch(0.518 0.253 323.949); + --color-fuchsia-800: oklch(0.452 0.211 324.591); + --color-fuchsia-900: oklch(0.401 0.17 325.612); + --color-fuchsia-950: oklch(0.293 0.136 325.661); + --color-pink-50: #FDF2F8; + --color-pink-100: #FCE7F3; + --color-pink-200: #FBCFE8; + --color-pink-300: #F9A8D4; + --color-pink-400: #F472B6; + --color-pink-500: #EC4899; + --color-pink-600: #DB2777; + --color-pink-700: #BE185D; + --color-pink-800: #9D174D; + --color-pink-900: #831843; + --color-pink-950: oklch(0.284 0.109 3.907); + --color-rose-50: oklch(0.969 0.015 12.422); + --color-rose-100: oklch(0.941 0.03 12.58); + --color-rose-200: oklch(0.892 0.058 10.001); + --color-rose-300: oklch(0.81 0.117 11.638); + --color-rose-400: oklch(0.712 0.194 13.428); + --color-rose-500: oklch(0.645 0.246 16.439); + --color-rose-600: oklch(0.586 0.253 17.585); + --color-rose-700: oklch(0.514 0.222 16.935); + --color-rose-800: oklch(0.455 0.188 13.697); + --color-rose-900: oklch(0.41 0.159 10.272); + --color-rose-950: oklch(0.271 0.105 12.094); + --color-slate-50: oklch(0.984 0.003 247.858); + --color-slate-100: oklch(0.968 0.007 247.896); + --color-slate-200: oklch(0.929 0.013 255.508); + --color-slate-300: oklch(0.869 0.022 252.894); + --color-slate-400: oklch(0.704 0.04 256.788); + --color-slate-500: oklch(0.554 0.046 257.417); + --color-slate-600: oklch(0.446 0.043 257.281); + --color-slate-700: oklch(0.372 0.044 257.287); + --color-slate-800: oklch(0.279 0.041 260.031); + --color-slate-900: oklch(0.208 0.042 265.755); + --color-slate-950: oklch(0.129 0.042 264.695); + --color-gray-50: #F9FAFB; + --color-gray-100: #F3F4F6; + --color-gray-200: #E5E7EB; + --color-gray-300: #D1D5DB; + --color-gray-400: #9CA3AF; + --color-gray-500: #6B7280; + --color-gray-600: #4B5563; + --color-gray-700: #374151; + --color-gray-800: #1F2937; + --color-gray-900: #111827; + --color-gray-950: oklch(0.13 0.028 261.692); + --color-zinc-50: oklch(0.985 0 0); + --color-zinc-100: oklch(0.967 0.001 286.375); + --color-zinc-200: oklch(0.92 0.004 286.32); + --color-zinc-300: oklch(0.871 0.006 286.286); + --color-zinc-400: oklch(0.705 0.015 286.067); + --color-zinc-500: oklch(0.552 0.016 285.938); + --color-zinc-600: oklch(0.442 0.017 285.786); + --color-zinc-700: oklch(0.37 0.013 285.805); + --color-zinc-800: oklch(0.274 0.006 286.033); + --color-zinc-900: oklch(0.21 0.006 285.885); + --color-zinc-950: oklch(0.141 0.005 285.823); + --color-neutral-50: oklch(0.985 0 0); + --color-neutral-100: oklch(0.97 0 0); + --color-neutral-200: oklch(0.922 0 0); + --color-neutral-300: oklch(0.87 0 0); + --color-neutral-400: oklch(0.708 0 0); + --color-neutral-500: oklch(0.556 0 0); + --color-neutral-600: oklch(0.439 0 0); + --color-neutral-700: oklch(0.371 0 0); + --color-neutral-800: oklch(0.269 0 0); + --color-neutral-900: oklch(0.205 0 0); + --color-neutral-950: oklch(0.145 0 0); + --color-stone-50: oklch(0.985 0.001 106.423); + --color-stone-100: oklch(0.97 0.001 106.424); + --color-stone-200: oklch(0.923 0.003 48.717); + --color-stone-300: oklch(0.869 0.005 56.366); + --color-stone-400: oklch(0.709 0.01 56.259); + --color-stone-500: oklch(0.553 0.013 58.071); + --color-stone-600: oklch(0.444 0.011 73.639); + --color-stone-700: oklch(0.374 0.01 67.558); + --color-stone-800: oklch(0.268 0.007 34.298); + --color-stone-900: oklch(0.216 0.006 56.043); + --color-stone-950: oklch(0.147 0.004 49.25); + --color-black: #000000; + --color-white: #ffffff; + --spacing: 0.25rem; + --breakpoint-sm: 40rem; + --breakpoint-md: 48rem; + --breakpoint-lg: 64rem; + --breakpoint-xl: 80rem; + --breakpoint-2xl: 96rem; + --container-3xs: 16rem; + --container-2xs: 18rem; + --container-xs: 20rem; + --container-sm: 24rem; + --container-md: 28rem; + --container-lg: 32rem; + --container-xl: 36rem; + --container-2xl: 42rem; + --container-3xl: 48rem; + --container-4xl: 56rem; + --container-5xl: 64rem; + --container-6xl: 72rem; + --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); + --text-4xl: 2.25rem; + --text-4xl--line-height: calc(2.5 / 2.25); + --text-5xl: 3rem; + --text-5xl--line-height: 1; + --text-6xl: 3.75rem; + --text-6xl--line-height: 1; + --text-7xl: 4.5rem; + --text-7xl--line-height: 1; + --text-8xl: 6rem; + --text-8xl--line-height: 1; + --text-9xl: 8rem; + --text-9xl--line-height: 1; + --font-weight-thin: 100; + --font-weight-extralight: 200; + --font-weight-light: 300; + --font-weight-normal: 400; + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --font-weight-extrabold: 800; + --font-weight-black: 900; + --tracking-tighter: -0.05em; + --tracking-tight: -0.025em; + --tracking-normal: 0em; + --tracking-wide: 0.025em; + --tracking-wider: 0.05em; + --tracking-widest: 0.1em; + --leading-tight: 1.25; + --leading-snug: 1.375; + --leading-normal: 1.5; + --leading-relaxed: 1.625; + --leading-loose: 2; + --radius-xs: 0.125rem; + --radius-sm: 0.25rem; + --radius-md: 0.375rem; + --radius-lg: 0.5rem; + --radius-xl: 0.75rem; + --radius-2xl: 1rem; + --radius-3xl: 1.5rem; + --radius-4xl: 2rem; + --shadow-2xs: 0 1px rgb(0 0 0 / 0.05); + --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); + --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05); + --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05); + --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05); + --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05); + --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15); + --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12); + --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15); + --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1); + --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15); + --ease-in: cubic-bezier(0.4, 0, 1, 1); + --ease-out: cubic-bezier(0, 0, 0.2, 1); + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --animate-spin: spin 1s linear infinite; + --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; + --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; + --animate-bounce: bounce 1s infinite; + --blur-xs: 4px; + --blur-sm: 8px; + --blur-md: 12px; + --blur-lg: 16px; + --blur-xl: 24px; + --blur-2xl: 40px; + --blur-3xl: 64px; + --perspective-dramatic: 100px; + --perspective-near: 300px; + --perspective-normal: 500px; + --perspective-midrange: 800px; + --perspective-distant: 1200px; + --aspect-video: 16 / 9; + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-font-feature-settings: var(--font-sans--font-feature-settings); + --default-font-variation-settings: var( + --font-sans--font-variation-settings + ); + --default-mono-font-family: var(--font-mono); + --default-mono-font-feature-settings: var( + --font-mono--font-feature-settings + ); + --default-mono-font-variation-settings: var( + --font-mono--font-variation-settings + ); + --color-transparent: transparent; + } +} +@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; + } + body { + line-height: inherit; + } + 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; + 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; + } + :-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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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='%236B7280' 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='%23111827' 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='%239CA3AF' 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: rect(0, 0, 0, 0); + 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); + } + .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; + } + .me-2 { + margin-inline-end: calc(var(--spacing) * 2); + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .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-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: e !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; + } + } + .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-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-marker { + :is([dir=rtl]) .apexcharts-tooltip & { + margin-right: 0px !important; + margin-left: e !important; + } + } + .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-1 { + margin-bottom: calc(var(--spacing) * 1); + } + .mb-2 { + margin-bottom: calc(var(--spacing) * 2); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .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; + } + .contents { + display: contents; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .inline-block { + display: inline-block; + } + .inline-flex { + display: inline-flex; + } + .table { + display: table; + } + .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-64 { + height: calc(var(--spacing) * 64); + } + .h-\[calc\(100\%-1rem\)\] { + height: calc(100% - 1rem); + } + .h-full { + height: 100%; + } + .max-h-full { + max-height: 100%; + } + .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-4 { + width: calc(var(--spacing) * 4); + } + .w-5 { + width: calc(var(--spacing) * 5); + } + .w-6 { + width: calc(var(--spacing) * 6); + } + .w-8 { + width: calc(var(--spacing) * 8); + } + .w-64 { + width: calc(var(--spacing) * 64); + } + .w-128 { + width: calc(var(--spacing) * 128); + } + .w-full { + width: 100%; + } + .max-w-2xl { + max-width: var(--container-2xl); + } + .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; + } + .-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-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); + } + .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; + } + .resize-none { + resize: 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-2 { + gap: calc(var(--spacing) * 2); + } + .gap-4 { + gap: calc(var(--spacing) * 4); + } + .gap-8 { + gap: calc(var(--spacing) * 8); + } + .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))); + } + } + .overflow-hidden { + overflow: hidden; + } + .datatable-container { + .datatable-wrapper & thead tr.search-filtering-row th { + padding-top: 0; + } + .datatable-wrapper & { + 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-l-lg { + border-top-left-radius: var(--radius-lg); + border-bottom-left-radius: var(--radius-lg); + } + .rounded-t { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + .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; + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-0 { + border-style: var(--tw-border-style); + border-width: 0px; + } + .border-2 { + border-style: var(--tw-border-style); + border-width: 2px; + } + .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-dashed { + --tw-border-style: dashed; + border-style: dashed; + } + .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='%239CA3AF' 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='%239CA3AF' 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-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-gray-600 { + border-color: var(--color-gray-600); + } + .border-gray-700 { + border-color: var(--color-gray-700); + } + .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; + } + } + .apexcharts-tooltip-series-group { + .apexcharts-canvas &.apexcharts-active .apexcharts-tooltip-y-group { + padding: 0 !important; + } + .apexcharts-canvas &.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-canvas &.apexcharts-active { + background-color: var(--color-gray-700) !important; + color: var(--color-gray-400) !important; + } + .apexcharts-canvas &.apexcharts-active:first-of-type { + padding-top: 0.75rem !important; + } + } + .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-600 { + background-color: var(--color-gray-600); + } + .bg-gray-700 { + background-color: var(--color-gray-700); + } + .bg-gray-800 { + background-color: var(--color-gray-800); + } + .bg-gray-900\/50 { + background-color: color-mix(in oklab, var(--color-gray-900) 50%, transparent); + } + .bg-red-700 { + background-color: var(--color-red-700); + } + .bg-slate-900 { + background-color: var(--color-slate-900); + } + .bg-transparent { + background-color: transparent; + } + .bg-white { + background-color: var(--color-white); + } + .bg-white\/50 { + background-color: color-mix(in oklab, var(--color-white) 50%, transparent); + } + .dark { + & .selectedCell { + background-color: var(--color-gray-700); + } + } + .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); + } + } + .apexcharts-text { + .apexcharts-datalabels-group &.apexcharts-datalabel-value { + fill: var(--color-gray-900) !important; + font-size: 1.875rem,[object Object] !important; + font-weight: 700 !important; + } + .dark .apexcharts-canvas .apexcharts-datalabels-group &.apexcharts-datalabel-value { + fill: white !important; + } + .apexcharts-canvas .apexcharts-datalabels-group &.apexcharts-datalabel-label { + fill: var(--color-gray-500) !important; + font-size: 1rem,[object Object] !important; + font-weight: 400 !important; + } + .dark .apexcharts-canvas .apexcharts-datalabels-group &.apexcharts-datalabel-label { + fill: var(--color-gray-400) !important; + } + .apexcharts-canvas .apexcharts-datalabels &.apexcharts-pie-label { + font-size: 0.75rem,[object Object] !important; + font-weight: 600 !important; + text-shadow: none !important; + filter: none !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-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-gridline { + stroke: var(--color-gray-200) !important; + .dark & { + stroke: var(--color-gray-700) !important; + } + } + .apexcharts-xcrosshairs { + stroke: var(--color-gray-200) !important; + .dark & { + stroke: var(--color-gray-700) !important; + } + } + .apexcharts-ycrosshairs { + stroke: var(--color-gray-200) !important; + .dark & { + stroke: var(--color-gray-700) !important; + } + } + .object-contain { + object-fit: contain; + } + .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-6 { + padding: calc(var(--spacing) * 6); + } + .p-8 { + padding: calc(var(--spacing) * 8); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-5 { + padding-inline: calc(var(--spacing) * 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); + } + .pt-5 { + padding-top: calc(var(--spacing) * 5); + } + .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; + } + } + .pb-2 { + padding-bottom: calc(var(--spacing) * 2); + } + .pb-6 { + padding-bottom: calc(var(--spacing) * 6); + } + .datatable-empty { + .datatable-wrapper .datatable-table & { + text-align: center; + } + } + .text-center { + text-align: center; + } + .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-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; + } + } + .apexcharts-xaxistooltip-text { + .apexcharts-canvas & { + font-weight: 400 !important; + font-size: 0.875rem !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-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); + } + .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-gray-300 { + color: var(--color-gray-300); + } + .text-gray-400 { + color: var(--color-gray-400); + } + .text-gray-500 { + color: var(--color-gray-500); + } + .text-gray-800 { + color: var(--color-gray-800); + } + .text-gray-900 { + color: var(--color-gray-900); + } + .text-orange-400 { + color: var(--color-orange-400); + } + .text-white { + color: var(--color-white); + } + .uppercase { + text-transform: uppercase; + } + .opacity-0 { + opacity: 0%; + } + .opacity-100 { + opacity: 100%; + } + .shadow { + --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); + } + .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,); + } + .backdrop-filter { + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } + .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; + 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\:border-gray-500 { + &:hover { + @media (hover: hover) { + border-color: var(--color-gray-500); + } + } + } + .hover\:bg-blue-800 { + &:hover { + @media (hover: hover) { + background-color: var(--color-blue-800); + } + } + } + .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-gray-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-600); + } + } + } + .hover\:bg-red-800 { + &:hover { + @media (hover: hover) { + background-color: var(--color-red-800); + } + } + } + .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-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\:text-orange-600 { + &:hover { + @media (hover: hover) { + color: var(--color-orange-600); + } + } + } + .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-red-300 { + &:focus { + --tw-ring-color: var(--color-red-300); + } + } + .focus\:outline-none { + &:focus { + --tw-outline-style: none; + outline-style: none; + } + } + .md\:inset-0 { + @media (width >= 48rem) { + inset: calc(var(--spacing) * 0); + } + } + .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; + } + } + } + .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 oklab, var(--color-gray-800) 50%, transparent); + } + } + .dark\:bg-gray-900 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-gray-900); + } + } + .dark\:bg-gray-900\/80 { + @media (prefers-color-scheme: dark) { + background-color: color-mix(in oklab, var(--color-gray-900) 80%, transparent); + } + } + .dark\:bg-red-600 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-red-600); + } + } + .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\:placeholder-gray-400 { + @media (prefers-color-scheme: dark) { + &::placeholder { + color: var(--color-gray-400); + } + } + } + .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\:bg-red-700 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + background-color: var(--color-red-700); + } + } + } + } + .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\:border-blue-500 { + @media (prefers-color-scheme: dark) { + &:focus { + border-color: var(--color-blue-500); + } + } + } + .dark\:focus\:ring-blue-500 { + @media (prefers-color-scheme: dark) { + &:focus { + --tw-ring-color: var(--color-blue-500); + } + } + } + .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); + } + } + } + .dark\:focus\:ring-red-900 { + @media (prefers-color-scheme: dark) { + &:focus { + --tw-ring-color: var(--color-red-900); + } + } + } +} +@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; + } +} +@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='%236B7280' 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); + } +} +@keyframes spin { + to { + transform: rotate(360deg); + } +} +@keyframes ping { + 75%, 100% { + transform: scale(2); + opacity: 0; + } +} +@keyframes pulse { + 50% { + opacity: 0.5; + } +} +@keyframes bounce { + 0%, 100% { + transform: translateY(-25%); + animation-timing-function: cubic-bezier(0.8, 0, 1, 1); + } + 50% { + transform: none; + animation-timing-function: cubic-bezier(0, 0, 0.2, 1); + } +} +@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; + initial-value: rotateX(0); +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; + initial-value: rotateY(0); +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; + initial-value: rotateZ(0); +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; + initial-value: skewX(0); +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; + initial-value: skewY(0); +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-space-x-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-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@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-backdrop-blur { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-invert { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-ease { + syntax: "*"; + inherits: false; +} diff --git a/admin/templates/Base.html b/admin/templates/Base.html new file mode 100644 index 0000000..fbbb95e --- /dev/null +++ b/admin/templates/Base.html @@ -0,0 +1,21 @@ + + + + + + Radiquum-Photos Admin Panel + + + + + +
+

{{page_title}}

+ + {% block content %}{% endblock %} +
+ + \ No newline at end of file diff --git a/admin/templates/Index.html b/admin/templates/Index.html new file mode 100644 index 0000000..40d1a60 --- /dev/null +++ b/admin/templates/Index.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} +{% block content %} + + + + + + +{% endblock %} \ No newline at end of file diff --git a/admin/templates/Upload.html b/admin/templates/Upload.html new file mode 100644 index 0000000..c832d9e --- /dev/null +++ b/admin/templates/Upload.html @@ -0,0 +1,218 @@ +{% extends 'base.html' %} +{% block content %} + + +
+ +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+ + + + +{% endblock %} \ No newline at end of file