diff --git a/Web/package.json b/Web/package.json index 9d529a0..1665fb2 100644 --- a/Web/package.json +++ b/Web/package.json @@ -4,7 +4,7 @@ "scripts": { "ng": "ng", "start": "ng serve --host 0.0.0.0", - "build": "ng build", + "build": "ng build --configuration=production", "watch": "ng build --watch --configuration development", "test": "ng test" }, diff --git a/Web/themes/modernize/.editorconfig b/Web/themes/modernize/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/Web/themes/modernize/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/Web/themes/modernize/.gitignore b/Web/themes/modernize/.gitignore new file mode 100644 index 0000000..0711527 --- /dev/null +++ b/Web/themes/modernize/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/Web/themes/modernize/.npmrc b/Web/themes/modernize/.npmrc new file mode 100644 index 0000000..e9ee3cb --- /dev/null +++ b/Web/themes/modernize/.npmrc @@ -0,0 +1 @@ +legacy-peer-deps=true \ No newline at end of file diff --git a/Web/themes/modernize/README.md b/Web/themes/modernize/README.md new file mode 100644 index 0000000..4e00817 --- /dev/null +++ b/Web/themes/modernize/README.md @@ -0,0 +1,2 @@ +# Modernize-Angular-pro +Modernize Angular Admin Dashboard diff --git a/Web/themes/modernize/angular.json b/Web/themes/modernize/angular.json new file mode 100644 index 0000000..b869628 --- /dev/null +++ b/Web/themes/modernize/angular.json @@ -0,0 +1,96 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "Modernize": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "allowedCommonJsDependencies": ["apexcharts", "bezier-easing", "moment"], + "outputPath": "dist/Modernize", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss", "src/assets/scss/style.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "12mb", + "maximumError": "12mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "12mb", + "maximumError": "12mb" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "Modernize:build:production" + }, + "hmr": { + "hmr": true + }, + "development": { + "buildTarget": "Modernize:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "Modernize:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/Web/themes/modernize/netlify.toml b/Web/themes/modernize/netlify.toml new file mode 100644 index 0000000..ff1c050 --- /dev/null +++ b/Web/themes/modernize/netlify.toml @@ -0,0 +1,4 @@ +[[redirects]] + from = "/*" + to = "/index.html" + status = 200 \ No newline at end of file diff --git a/Web/themes/modernize/package-lock.json b/Web/themes/modernize/package-lock.json new file mode 100644 index 0000000..a7ff887 --- /dev/null +++ b/Web/themes/modernize/package-lock.json @@ -0,0 +1,13801 @@ +{ + "name": "modernize", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "modernize", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^19.0.0", + "@angular/cdk": "^19.0.0", + "@angular/common": "^19.0.0", + "@angular/compiler": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/forms": "^19.0.0", + "@angular/material": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/router": "^19.0.0", + "@ngx-translate/core": "^14.0.0", + "@ngx-translate/http-loader": "^7.0.0", + "angular-tabler-icons": "^2.7.0", + "apexcharts": "^3.49.0", + "ng-apexcharts": "1.7.6", + "ngx-scrollbar": "^11.0.0", + "rxjs": "~7.5.0", + "sass": "1.81.0", + "tslib": "^2.3.0", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.0.1", + "@angular/cli": "~19.0.1", + "@angular/compiler-cli": "^19.0.0", + "@types/date-fns": "^2.6.0", + "@types/jasmine": "~4.3.0", + "jasmine-core": "~4.5.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.0.0", + "typescript": "~5.6.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1902.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1902.11.tgz", + "integrity": "sha512-Zz/4ySZ4i8WXU4U4WwUGQm8wjwAyrMo5kjFt7O2SGmHQx7L/hChvcMLCGVkpHr27Xdsmrl//OXfbjkPgb6DFBg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "19.2.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "19.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.2.11.tgz", + "integrity": "sha512-X/5Ug3S1dJmBG+TaK6Brp4mH+yBPOVQb4vFNZIoKTsSQdMcGM1hJJGXsJ9U4hTiHut6LJpbsfZu+AlhfNJjB0w==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1902.11", + "@angular-devkit/build-webpack": "0.1902.11", + "@angular-devkit/core": "19.2.11", + "@angular/build": "19.2.11", + "@babel/core": "7.26.10", + "@babel/generator": "7.26.10", + "@babel/helper-annotate-as-pure": "7.25.9", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.26.8", + "@babel/plugin-transform-async-to-generator": "7.25.9", + "@babel/plugin-transform-runtime": "7.26.10", + "@babel/preset-env": "7.26.9", + "@babel/runtime": "7.26.10", + "@discoveryjs/json-ext": "0.6.3", + "@ngtools/webpack": "19.2.11", + "@vitejs/plugin-basic-ssl": "1.2.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.20", + "babel-loader": "9.2.1", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "12.0.2", + "css-loader": "7.1.2", + "esbuild-wasm": "0.25.4", + "fast-glob": "3.3.3", + "http-proxy-middleware": "3.0.5", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.2", + "less-loader": "12.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.3.1", + "mini-css-extract-plugin": "2.9.2", + "open": "10.1.0", + "ora": "5.4.1", + "picomatch": "4.0.2", + "piscina": "4.8.0", + "postcss": "8.5.2", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.85.0", + "sass-loader": "16.0.5", + "semver": "7.7.1", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.39.0", + "tree-kill": "1.2.2", + "tslib": "2.8.1", + "webpack": "5.98.0", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.2.0", + "webpack-merge": "6.0.1", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.25.4" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "@angular/localize": "^19.0.0 || ^19.2.0-next.0", + "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", + "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", + "@angular/ssr": "^19.2.11", + "@web/test-runner": "^0.20.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^19.0.0 || ^19.2.0-next.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.5 <5.9" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@angular/ssr": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/sass": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", + "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", + "dev": true, + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1902.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.11.tgz", + "integrity": "sha512-l6UM9+QxCZPmzu7j66lymSj7q6p/LDVOPOBD8UmfGyoSXMY3Pojd+CQ2WDhi3JkMheDjziXVCSxLZSYdL18YYw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1902.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "19.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.11.tgz", + "integrity": "sha512-hXacCEbLbVo/PYPHBhaU2LThFm0Q1tIGTsWSkQjtsQpW8e4xqgSnFIWaHdsPiiGryxtdtvNE2cr9qa0ddAJOnA==", + "dev": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.7.tgz", + "integrity": "sha512-BHXQv6kMc9xo4TH9lhwMv8nrZXHkLioQvLun2qYjwvOsyzt3qd+sUM9wpHwbG6t+01+FIQ05iNN9ox+Cvpndgg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "19.0.7", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.12", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", + "dev": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular/animations": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.10.tgz", + "integrity": "sha512-LlH6mt0D8+MI0LV8QNx9/rqLLv0WCfYPS/5iXSGpIyfsflLoO5dRGhtS4pdQbu5gqmnLdf9i7r4ldRJjf7wb+g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.10", + "@angular/core": "19.2.10" + } + }, + "node_modules/@angular/build": { + "version": "19.2.11", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.2.11.tgz", + "integrity": "sha512-r3gQvJ/HOxdcDCzXEeljnBnB8o24Y2MgVq4zN/NWu0B8YZDeUWor+oKcRHEXdfIQA47zdEmXXNjedOdxWQBGGg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1902.11", + "@babel/core": "7.26.10", + "@babel/helper-annotate-as-pure": "7.25.9", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.26.0", + "@inquirer/confirm": "5.1.6", + "@vitejs/plugin-basic-ssl": "1.2.0", + "beasties": "0.3.2", + "browserslist": "^4.23.0", + "esbuild": "0.25.4", + "fast-glob": "3.3.3", + "https-proxy-agent": "7.0.6", + "istanbul-lib-instrument": "6.0.3", + "listr2": "8.2.5", + "magic-string": "0.30.17", + "mrmime": "2.0.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.8.0", + "rollup": "4.34.8", + "sass": "1.85.0", + "semver": "7.7.1", + "source-map-support": "0.5.21", + "vite": "6.2.7", + "watchpack": "2.4.2" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "lmdb": "3.2.6" + }, + "peerDependencies": { + "@angular/compiler": "^19.0.0 || ^19.2.0-next.0", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "@angular/localize": "^19.0.0 || ^19.2.0-next.0", + "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", + "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", + "@angular/ssr": "^19.2.11", + "karma": "^6.4.0", + "less": "^4.2.0", + "ng-packagr": "^19.0.0 || ^19.2.0-next.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.5 <5.9" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@angular/ssr": { + "optional": true + }, + "karma": { + "optional": true + }, + "less": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/sass": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", + "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", + "dev": true, + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/@angular/cdk": { + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.15.tgz", + "integrity": "sha512-srM0O4oVPvMIbv1m+fU3D0X2ZK0Q7raggCD7jcb+d+pXoPESqI91Hn8FIhA2OCbw0vJWJ/Mly8lskmIb8RNLcQ==", + "dependencies": { + "parse5": "^7.1.2", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.7.tgz", + "integrity": "sha512-y6C4B4XdiZwe2+OADLWXyKqUVvW/XDzTuJ2mZ5PhTnSiiXDN4zRWId1F5wA8ve8vlbUKApPHXRQuaqiQJmA24g==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1900.7", + "@angular-devkit/core": "19.0.7", + "@angular-devkit/schematics": "19.0.7", + "@inquirer/prompts": "7.1.0", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.0.7", + "@yarnpkg/lockfile": "1.1.0", + "ini": "5.0.0", + "jsonc-parser": "3.3.1", + "listr2": "8.2.5", + "npm-package-arg": "12.0.0", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", + "resolve": "1.22.8", + "semver": "7.6.3", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1900.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.7.tgz", + "integrity": "sha512-3dRV0IB+MbNYbAGbYEFMcABkMphqcTvn5MG79dQkwcf2a9QZxCq2slwf/rIleWoDUcFm9r1NnVPYrTYNYJaqQg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "19.0.7", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", + "dev": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/common": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.10.tgz", + "integrity": "sha512-1Aq0pT0MXEYHUXFB0nFkiErW7OUCLxF2XkZv///hxWEBX3nc4Zl+p9yrVRvnTJoLuOVU5TYOPjiyKzAGbUIxVw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "19.2.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.10.tgz", + "integrity": "sha512-XI4VVaTHIsvDu25b/hOqFBIub4RoEVqVrBYo1rKRF9NI+mxg2Wy30qyJ7rYGbF7qUPomC54pen0qQgw359YhMA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.10.tgz", + "integrity": "sha512-g+Zg87IbQSmoIVw4fnqBcz3csTaSWDNTabt4JAlNdcoIw88+WsyZVjxPBFFvezsDEd6eFvNdqVJdAUyLhieDYA==", + "dev": true, + "dependencies": { + "@babel/core": "7.26.9", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^4.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/compiler": "19.2.10", + "typescript": ">=5.5 <5.9" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/core": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.10.tgz", + "integrity": "sha512-9SQj5zz9VL4nD2dnqaS8nHxYWWQTPavacwG/e5I1wlctrUIGAvvl9uApxXanqlNVoezA0isUVzZGjaiQuu0hBQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0" + } + }, + "node_modules/@angular/forms": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.10.tgz", + "integrity": "sha512-IUO+kvW1hIMuWAf98YNRLu+L0Kwq4Bd66ga5veJZ0aqnwA95m3HtcGhB9kygKyF/evQYO+X8GC/Hn1knPjkk1w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.10", + "@angular/core": "19.2.10", + "@angular/platform-browser": "19.2.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.2.15.tgz", + "integrity": "sha512-5IRzspYwzG58nz9/uJwGpaeFymaVveylIg8A+7SyYjAASFkdDUdI2hQn8TPRiP3AhGRSSx80BShYrcYwTZseYA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/cdk": "19.2.15", + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "@angular/forms": "^19.0.0 || ^20.0.0", + "@angular/platform-browser": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.10.tgz", + "integrity": "sha512-MYX4av0UvCmtUyCo6vW2RjOT2nbZsChhNjKr70DrWcCRMhYYv4cB4PMr6PnyGKJb7QZSSdzbqbbGtvvaB/quqw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/animations": "19.2.10", + "@angular/common": "19.2.10", + "@angular/core": "19.2.10" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.10.tgz", + "integrity": "sha512-ETyTBTL/Kt17BjTDGXoUJVfjx1ZI0ryg3gvEvvtiMfBcmT/ohiIstYfaoF1QSPVMtbiTRLbCtdE439e4B7YoaQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.10", + "@angular/compiler": "19.2.10", + "@angular/core": "19.2.10", + "@angular/platform-browser": "19.2.10" + } + }, + "node_modules/@angular/router": { + "version": "19.2.10", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.10.tgz", + "integrity": "sha512-bmt3ws3L4pYTlI8FW5L1ShyOeUQobXA7wy6TbcIToEonZk+i8uj3xlTD9Ymnjkb9wbNXrD1qoNSpP86c7C1rWQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.10", + "@angular/core": "19.2.10", + "@angular/platform-browser": "19.2.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", + "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.26.10", + "@babel/types": "^7.26.10", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", + "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", + "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz", + "integrity": "sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", + "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz", + "integrity": "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.40.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "dev": true, + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.6.tgz", + "integrity": "sha512-62u896rWCtKKE43soodq5e/QcRsA22I+7/4Ov7LESWnKRO6BVo2A1DFLDmXL9e28TB0CfHc3YtkbPm7iwajqkg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.6.tgz", + "integrity": "sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.7", + "@inquirer/type": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.11.tgz", + "integrity": "sha512-BXwI/MCqdtAhzNQlBEFE7CEflhPkl/BqvAuV/aK6lW3DClIfYVDWPP/kXuXHtBWC7/EEbNqd/1BGq2BGBBnuxw==", + "dev": true, + "dependencies": { + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.11.tgz", + "integrity": "sha512-YoZr0lBnnLFPpfPSNsQ8IZyKxU47zPyVi9NLjCWtna52//M/xuL0PGPAxHxxYhdOhnvY2oBafoM+BI5w/JK7jw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/type": "^3.0.6", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.13.tgz", + "integrity": "sha512-HgYNWuZLHX6q5y4hqKhwyytqAghmx35xikOGY3TcgNiElqXGPas24+UzNPOwGUZa5Dn32y25xJqVeUcGlTv+QQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz", + "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.10.tgz", + "integrity": "sha512-kV3BVne3wJ+j6reYQUZi/UN9NZGZLxgc/tfyjeK3mrx1QI7RXPxGp21IUTv+iVHcbP4ytZALF8vCHoxyNSC6qg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.13.tgz", + "integrity": "sha512-IrLezcg/GWKS8zpKDvnJ/YTflNJdG0qSFlUM/zNFsdi4UKW/CO+gaJpbMgQ20Q58vNKDJbEzC6IebdkprwL6ew==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.13.tgz", + "integrity": "sha512-NN0S/SmdhakqOTJhDwOpeBEEr8VdcYsjmZHDb0rblSh2FcbXQOr+2IApP7JG4WE3sxIdKytDn4ed3XYwtHxmJQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", + "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", + "dev": true, + "dependencies": { + "@inquirer/checkbox": "^4.0.2", + "@inquirer/confirm": "^5.0.2", + "@inquirer/editor": "^4.1.0", + "@inquirer/expand": "^4.0.2", + "@inquirer/input": "^4.0.2", + "@inquirer/number": "^3.0.2", + "@inquirer/password": "^4.0.2", + "@inquirer/rawlist": "^4.0.2", + "@inquirer/search": "^3.0.2", + "@inquirer/select": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.1.tgz", + "integrity": "sha512-VBUC0jPN2oaOq8+krwpo/mf3n/UryDUkKog3zi+oIi8/e5hykvdntgHUB9nhDM78RubiyR1ldIOfm5ue+2DeaQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.13.tgz", + "integrity": "sha512-9g89d2c5Izok/Gw/U7KPC3f9kfe5rA1AJ24xxNZG0st+vWekSk7tB9oE+dJv5JXd0ZSijomvW0KPMoBd8qbN4g==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.1.tgz", + "integrity": "sha512-gt1Kd5XZm+/ddemcT3m23IP8aD8rC9drRckWoP/1f7OL46Yy2FGi8DSmNjEjQKtPl6SV96Kmjbl6p713KXJ/Jg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^10.1.11", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz", + "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.2.0.tgz", + "integrity": "sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA==", + "dev": true, + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.6.0.tgz", + "integrity": "sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz", + "integrity": "sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==", + "dev": true, + "dependencies": { + "@inquirer/type": "^1.5.5" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 8" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.6.tgz", + "integrity": "sha512-yF/ih9EJJZc72psFQbwnn8mExIWfTnzWJg+N02hnpXtDPETYLmQswIMBn7+V88lfCaFrMozJsUvcEQIkEPU0Gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.6.tgz", + "integrity": "sha512-5BbCumsFLbCi586Bb1lTWQFkekdQUw8/t8cy++Uq251cl3hbDIGEwD9HAwh8H6IS2F6QA9KdKmO136LmipRNkg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.6.tgz", + "integrity": "sha512-+6XgLpMb7HBoWxXj+bLbiiB4s0mRRcDPElnRS3LpWRzdYSe+gFk5MT/4RrVNqd2MESUDmb53NUXw1+BP69bjiQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.6.tgz", + "integrity": "sha512-l5VmJamJ3nyMmeD1ANBQCQqy7do1ESaJQfKPSm2IG9/ADZryptTyCj8N6QaYgIWewqNUrcbdMkJajRQAt5Qjfg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.6.tgz", + "integrity": "sha512-nDYT8qN9si5+onHYYaI4DiauDMx24OAiuZAUsEqrDy+ja/3EbpXPX/VAkMV8AEaQhy3xc4dRC+KcYIvOFefJ4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.6.tgz", + "integrity": "sha512-XlqVtILonQnG+9fH2N3Aytria7P/1fwDgDhl29rde96uH2sLB8CHORIf2PfuLVzFQJ7Uqp8py9AYwr3ZUCFfWg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@napi-rs/nice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", + "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.0.1", + "@napi-rs/nice-android-arm64": "1.0.1", + "@napi-rs/nice-darwin-arm64": "1.0.1", + "@napi-rs/nice-darwin-x64": "1.0.1", + "@napi-rs/nice-freebsd-x64": "1.0.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", + "@napi-rs/nice-linux-arm64-gnu": "1.0.1", + "@napi-rs/nice-linux-arm64-musl": "1.0.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", + "@napi-rs/nice-linux-s390x-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-musl": "1.0.1", + "@napi-rs/nice-win32-arm64-msvc": "1.0.1", + "@napi-rs/nice-win32-ia32-msvc": "1.0.1", + "@napi-rs/nice-win32-x64-msvc": "1.0.1" + } + }, + "node_modules/@napi-rs/nice-android-arm-eabi": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", + "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-android-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", + "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", + "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-freebsd-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", + "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", + "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", + "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", + "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-ppc64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", + "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-riscv64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", + "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-s390x-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", + "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", + "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", + "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-arm64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", + "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-ia32-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", + "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-x64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", + "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ngtools/webpack": { + "version": "19.2.11", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.2.11.tgz", + "integrity": "sha512-rOtSuw5mqyCIrsxZQBqv5flQqVjKMsOtIqKIgWs/UKdoiGgDckeJMTdOjbXvkF3Iy3XpG9bNiLJoSwbENpyxsw==", + "dev": true, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "typescript": ">=5.5 <5.9", + "webpack": "^5.54.0" + } + }, + "node_modules/@ngx-translate/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", + "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=13.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@ngx-translate/http-loader": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-7.0.0.tgz", + "integrity": "sha512-j+NpXXlcGVdyUNyY/qsJrqqeAdJdizCd+GKh3usXExSqy1aE9866jlAIL+xrfDU4w+LiMoma5pgE4emvFebZmA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0", + "@ngx-translate/core": ">=14.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/@npmcli/fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.3.tgz", + "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", + "dev": true, + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.1.1.tgz", + "integrity": "sha512-d5qimadRAUCO4A/Txw71VM7UrRZzV+NPclxz/dc+M6B2oYwjWTjqh8HA/sGQgs9VZuJ6I/P7XIAlJvgrl27ZOw==", + "dev": true, + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", + "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", + "dev": true, + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.2.2.tgz", + "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.1.0.tgz", + "integrity": "sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "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, + "optional": 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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/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==", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@parcel/watcher/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==", + "optional": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.7.tgz", + "integrity": "sha512-1WtTqKFPuEaV99VIP+y/gf/XW3TVJh/NbJbbEF4qYpp7qQiJ4ntF4klVZmsJcQzFucZSzlg91QVMPQKev5WZGA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "19.0.7", + "@angular-devkit/schematics": "19.0.7", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", + "dev": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.1.0.tgz", + "integrity": "sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.4.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz", + "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.4.1.tgz", + "integrity": "sha512-7MJXQhIm7dWF9zo7rRtMYh8d2gSnc3+JddeQOTIg6gUN7FjcuckZ9EwGq+ReeQtbbl3Tbf5YqRrWxA1DMfIn+w==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.1.0.tgz", + "integrity": "sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.1.1.tgz", + "integrity": "sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.4.1", + "tuf-js": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.1.1.tgz", + "integrity": "sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz", + "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.18", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.18.tgz", + "integrity": "sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/date-fns": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/date-fns/-/date-fns-2.6.3.tgz", + "integrity": "sha512-Ke1lw2Ni1t/wMUoLtKFmSNCLozcTBd6vmMqFP4hRzXn6qzkNt97bPAX0x5Y/c15DP43kKvwW1ycStD5+43jVQA==", + "deprecated": "This is a stub types definition. date-fns provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "date-fns": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "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==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.6.tgz", + "integrity": "sha512-3N0FpQTeiWjm+Oo1WUYWguUS7E6JLceiGTriFrG8k5PU7zRLJCzLcWURU3wjMbZGS//a2/LgjsnO3QxIlwxt9g==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "22.15.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz", + "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", + "dev": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, + "node_modules/abbrev": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/angular-tabler-icons": { + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/angular-tabler-icons/-/angular-tabler-icons-2.47.0.tgz", + "integrity": "sha512-Pfnnq3lB3gxmu4S/jXQR88DXnmCvD4hgZrx1PofmudqRqzzSl1eV37siogp7v+dDT6IGSXYgi6CQlDKHU2pQnw==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "14 - 17", + "@angular/core": "14 - 17" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/apexcharts": { + "version": "3.54.1", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.54.1.tgz", + "integrity": "sha512-E4et0h/J1U3r3EwS/WlqJCQIbepKbp6wGUmaAwJOMjHUP4Ci0gxanLa7FR3okx6p9coi4st6J853/Cb1NP0vpA==", + "dependencies": { + "@yr/monotone-cubic-spline": "^1.0.3", + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/beasties": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.2.tgz", + "integrity": "sha512-p4AF8uYzm9Fwu8m/hSVTCPXrRBPmB34hQpHsec2KOaR9CZmgoU8IOv4Cvwq4hgz2p4hLMNbsdNl5XeA6XbAQwA==", + "dev": true, + "dependencies": { + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "htmlparser2": "^10.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", + "postcss-media-query-parser": "^0.2.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/bezier-easing": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz", + "integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.1", + "globby": "^14.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", + "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.152", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", + "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", + "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", + "dev": true, + "dependencies": { + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", + "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "punycode": "^1.4.1", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.25.4.tgz", + "integrity": "sha512-2HlCS6rNvKWaSKhWaG/YIyRsTsL3gUrMP2ToZMBIjw9LM7vVcIs+rz8kE2vExvTJgvM8OKPqNpcHawY/BQc/qQ==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "dev": true + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "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==", + "devOptional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", + "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.5.tgz", + "integrity": "sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", + "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz", + "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", + "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", + "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma-coverage/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", + "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/karma/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/karma/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.2.tgz", + "integrity": "sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "dev": true, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "dev": true, + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.6.tgz", + "integrity": "sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "msgpackr": "^1.11.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.5.3", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.2.6", + "@lmdb/lmdb-darwin-x64": "3.2.6", + "@lmdb/lmdb-linux-arm": "3.2.6", + "@lmdb/lmdb-linux-arm64": "3.2.6", + "@lmdb/lmdb-linux-x64": "3.2.6", + "@lmdb/lmdb-win32-x64": "3.2.6" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.1.tgz", + "integrity": "sha512-thuTRd7F4m4dReCIy7vv4eNYnU6XI/tHMLSMMHLiortw/Y0QxqKtinG523U2aerzwYWGi606oBP4oMPy4+edag==", + "dev": true, + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "devOptional": true, + "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==", + "devOptional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", + "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "dev": true, + "optional": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "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/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/ng-apexcharts": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.7.6.tgz", + "integrity": "sha512-XzW0gLRG9x9ntJ+Ena3dbrGB6lLPuIgVP21Qcv82zbebnYncG9aOyQk48fd2P56jDychanAVTYrNUuK0pMUM1g==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0", + "@angular/core": ">=13.0.0", + "apexcharts": "^3.40.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/ngx-scrollbar": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ngx-scrollbar/-/ngx-scrollbar-11.0.0.tgz", + "integrity": "sha512-bvIsdoOVjb8nmMXCr+ditKUE1FeY1b+QOunozP3Mh6U+wjKHuozpWzDyPGx0cakBCiRUX7IepOU9OlsTIVZ+Zg==", + "dependencies": { + "bezier-easing": "^2.1.0", + "tslib": "^2.3.1" + }, + "peerDependencies": { + "@angular/cdk": ">=15.0.0", + "@angular/common": ">=15.0.0", + "@angular/core": ">=15.0.0", + "rxjs": ">=6.0.0" + } + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.2.0.tgz", + "integrity": "sha512-T0S1zqskVUSxcsSTkAsLc7xCycrRYmtDHadDinzocrThjyQCn5kMlEBSj6H4qDbgsIOSLmmlRIeb0lZXj+UArA==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "dev": true, + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-install-checks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", + "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-package-arg": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", + "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "dev": true, + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-packlist": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", + "dev": true, + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", + "dev": true, + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", + "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", + "dev": true, + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ordered-binary": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "dev": true, + "optional": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/pacote": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", + "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", + "dev": true, + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", + "dev": true, + "optionalDependencies": { + "@napi-rs/nice": "^1.0.1" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "dev": true, + "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/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/proc-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.81.0.tgz", + "integrity": "sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-loader": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sigstore": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.1.0.tgz", + "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "dev": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "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/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tuf-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", + "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", + "dev": true, + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz", + "integrity": "sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-filename": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", + "dev": true, + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/unique-slug": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.7.tgz", + "integrity": "sha512-qg3LkeuinTrZoJHHF94coSaTfIPyBYoywp+ys4qu20oSJFbKMYoIJo0FWJT9q6Vp49l6z9IsJRbHdcGtiKbGoQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "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/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "optional": true + }, + "node_modules/webpack": { + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz", + "integrity": "sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.21.2", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.7", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", + "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==" + } + } +} diff --git a/Web/themes/modernize/package.json b/Web/themes/modernize/package.json new file mode 100644 index 0000000..c7d0341 --- /dev/null +++ b/Web/themes/modernize/package.json @@ -0,0 +1,48 @@ +{ + "name": "modernize", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.0.0", + "@angular/cdk": "^19.0.0", + "@angular/common": "^19.0.0", + "@angular/compiler": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/forms": "^19.0.0", + "@angular/material": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/router": "^19.0.0", + "@ngx-translate/core": "^14.0.0", + "@ngx-translate/http-loader": "^7.0.0", + "angular-tabler-icons": "^2.7.0", + "apexcharts": "^3.49.0", + "ng-apexcharts": "1.7.6", + "ngx-scrollbar": "^11.0.0", + "rxjs": "~7.5.0", + "sass": "1.81.0", + "tslib": "^2.3.0", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.0.1", + "@angular/cli": "~19.0.1", + "@angular/compiler-cli": "^19.0.0", + "@types/date-fns": "^2.6.0", + "@types/jasmine": "~4.3.0", + "jasmine-core": "~4.5.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.0.0", + "typescript": "~5.6.3" + } +} diff --git a/Web/themes/modernize/src/app/app.component.html b/Web/themes/modernize/src/app/app.component.html new file mode 100644 index 0000000..0680b43 --- /dev/null +++ b/Web/themes/modernize/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/Web/themes/modernize/src/app/app.component.spec.ts b/Web/themes/modernize/src/app/app.component.spec.ts new file mode 100644 index 0000000..71cb3e3 --- /dev/null +++ b/Web/themes/modernize/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'Angular15'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('Angular15'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('.content span')?.textContent).toContain('Angular15 app is running!'); + }); +}); diff --git a/Web/themes/modernize/src/app/app.component.ts b/Web/themes/modernize/src/app/app.component.ts new file mode 100644 index 0000000..f9e13b0 --- /dev/null +++ b/Web/themes/modernize/src/app/app.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-root', + imports: [RouterOutlet], + templateUrl: './app.component.html' +}) +export class AppComponent { + title = 'Modernize Angular Admin Template'; +} diff --git a/Web/themes/modernize/src/app/app.config.ts b/Web/themes/modernize/src/app/app.config.ts new file mode 100644 index 0000000..43474ac --- /dev/null +++ b/Web/themes/modernize/src/app/app.config.ts @@ -0,0 +1,55 @@ +import { + ApplicationConfig, + provideZoneChangeDetection, + importProvidersFrom, +} from '@angular/core'; +import { + HttpClient, + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; +import { routes } from './app.routes'; +import { + provideRouter, + withComponentInputBinding, + withInMemoryScrolling, +} from '@angular/router'; +import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; +import { provideClientHydration } from '@angular/platform-browser'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; +import { TranslateHttpLoader } from '@ngx-translate/http-loader'; + +// icons +import { TablerIconsModule } from 'angular-tabler-icons'; +import * as TablerIcons from 'angular-tabler-icons/icons'; + +// perfect scrollbar +import { NgScrollbarModule } from 'ngx-scrollbar'; + +//Import all material modules +import { MaterialModule } from './material.module'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideZoneChangeDetection({ eventCoalescing: true }), + provideRouter( + routes, + withInMemoryScrolling({ + scrollPositionRestoration: 'enabled', + anchorScrolling: 'enabled', + }), + withComponentInputBinding() + ), + provideHttpClient(withInterceptorsFromDi()), + provideClientHydration(), + provideAnimationsAsync(), + importProvidersFrom( + FormsModule, + ReactiveFormsModule, + MaterialModule, + TablerIconsModule.pick(TablerIcons), + NgScrollbarModule, + ), + ], +}; diff --git a/Web/themes/modernize/src/app/app.routes.ts b/Web/themes/modernize/src/app/app.routes.ts new file mode 100644 index 0000000..580cafe --- /dev/null +++ b/Web/themes/modernize/src/app/app.routes.ts @@ -0,0 +1,51 @@ +import { Routes } from '@angular/router'; +import { BlankComponent } from './layouts/blank/blank.component'; +import { FullComponent } from './layouts/full/full.component'; + +export const routes: Routes = [ + { + path: '', + component: FullComponent, + children: [ + { + path: '', + redirectTo: '/dashboard', + pathMatch: 'full', + }, + { + path: 'dashboard', + loadChildren: () => + import('./pages/pages.routes').then((m) => m.PagesRoutes), + }, + { + path: 'ui-components', + loadChildren: () => + import('./pages/ui-components/ui-components.routes').then( + (m) => m.UiComponentsRoutes + ), + }, + { + path: 'extra', + loadChildren: () => + import('./pages/extra/extra.routes').then((m) => m.ExtraRoutes), + }, + ], + }, + { + path: '', + component: BlankComponent, + children: [ + { + path: 'authentication', + loadChildren: () => + import('./pages/authentication/authentication.routes').then( + (m) => m.AuthenticationRoutes + ), + }, + ], + }, + { + path: '**', + redirectTo: 'authentication/error', + }, +]; diff --git a/Web/themes/modernize/src/app/components/blog-card/blog-card.component.html b/Web/themes/modernize/src/app/components/blog-card/blog-card.component.html new file mode 100644 index 0000000..9c86bbe --- /dev/null +++ b/Web/themes/modernize/src/app/components/blog-card/blog-card.component.html @@ -0,0 +1,32 @@ +
+ @for(productcard of productcards; track productcards) { +
+ + + imgSrc + + + + {{ + productcard.title + }} +
+
+
${{ productcard.price }}
+ ${{ productcard.rprice }} +
+
+ + + + + +
+
+
+
+
+ } +
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/components/blog-card/blog-card.component.ts b/Web/themes/modernize/src/app/components/blog-card/blog-card.component.ts new file mode 100644 index 0000000..e7e9262 --- /dev/null +++ b/Web/themes/modernize/src/app/components/blog-card/blog-card.component.ts @@ -0,0 +1,53 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { TablerIconsModule } from 'angular-tabler-icons'; + +// ecommerce card +interface productCards { + id: number; + imgSrc: string; + title: string; + price: string; + rprice: string; +} + +@Component({ + selector: 'app-blog-card', + imports: [MatCardModule, TablerIconsModule, MatButtonModule], + templateUrl: './blog-card.component.html', +}) +export class AppBlogCardsComponent { + constructor() { } + + productcards: productCards[] = [ + { + id: 1, + imgSrc: '/assets/images/products/s4.jpg', + title: 'Boat Headphone', + price: '285', + rprice: '375', + }, + { + id: 2, + imgSrc: '/assets/images/products/s5.jpg', + title: 'MacBook Air Pro', + price: '285', + rprice: '375', + }, + { + id: 3, + imgSrc: '/assets/images/products/s7.jpg', + title: 'Red Valvet Dress', + price: '285', + rprice: '375', + }, + { + id: 4, + imgSrc: '/assets/images/products/s11.jpg', + title: 'Cute Soft Teddybear', + price: '285', + rprice: '375', + }, + ]; +} diff --git a/Web/themes/modernize/src/app/components/monthly-earnings/monthly-earnings.component.html b/Web/themes/modernize/src/app/components/monthly-earnings/monthly-earnings.component.html new file mode 100644 index 0000000..ab05373 --- /dev/null +++ b/Web/themes/modernize/src/app/components/monthly-earnings/monthly-earnings.component.html @@ -0,0 +1,24 @@ + + +
+ Monthly Earnings +
+ +
+
+

$6,820

+
+ +
+9%
+
last year
+
+
+ +
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/components/monthly-earnings/monthly-earnings.component.ts b/Web/themes/modernize/src/app/components/monthly-earnings/monthly-earnings.component.ts new file mode 100644 index 0000000..2e30971 --- /dev/null +++ b/Web/themes/modernize/src/app/components/monthly-earnings/monthly-earnings.component.ts @@ -0,0 +1,81 @@ +import { Component, ViewChild } from '@angular/core'; +import { + ApexChart, + ChartComponent, + ApexDataLabels, + ApexLegend, + ApexStroke, + ApexTooltip, + ApexAxisChartSeries, + ApexPlotOptions, + ApexResponsive, + NgApexchartsModule, +} from 'ng-apexcharts'; + +import { TablerIconsModule } from 'angular-tabler-icons'; +import { MaterialModule } from 'src/app/material.module'; + +export interface monthlyChart { + series: ApexAxisChartSeries; + chart: ApexChart; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + tooltip: ApexTooltip; + stroke: ApexStroke; + legend: ApexLegend; + responsive: ApexResponsive; +} + +@Component({ + selector: 'app-monthly-earnings', + imports: [NgApexchartsModule, MaterialModule, TablerIconsModule], + templateUrl: './monthly-earnings.component.html', +}) +export class AppMonthlyEarningsComponent { + @ViewChild('chart') chart: ChartComponent = Object.create(null); + public monthlyChart!: Partial | any; + + constructor() { + this.monthlyChart = { + series: [ + { + name: '', + color: '#49BEFF', + data: [25, 66, 20, 40, 12, 58, 20], + }, + ], + + chart: { + type: 'area', + fontFamily: "'Plus Jakarta Sans', sans-serif;", + foreColor: '#adb0bb', + toolbar: { + show: false, + }, + height: 85, + sparkline: { + enabled: true, + }, + group: 'sparklines', + }, + stroke: { + curve: 'smooth', + width: 2, + }, + fill: { + colors: ['#E8F7FF'], + type: 'solid', + opacity: 0.05, + }, + markers: { + size: 0, + }, + tooltip: { + theme: 'dark', + x: { + show: false, + }, + }, + }; + } +} diff --git a/Web/themes/modernize/src/app/components/product-performance/product-performance.component.html b/Web/themes/modernize/src/app/components/product-performance/product-performance.component.html new file mode 100644 index 0000000..c0b56ee --- /dev/null +++ b/Web/themes/modernize/src/app/components/product-performance/product-performance.component.html @@ -0,0 +1,98 @@ + + +
+
+ Top Projects + Best Products +
+ + + @for(month of months; track month.value) { + + {{ month.viewValue }} + + } + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Product + +
+ users +
+
+ {{ element.pname }} +
+ + {{ element.category }} + +
+
+
+ Progress + + {{ element.progress }}% + + Status + + @if(element.status == 'low') { + + {{ element.status | titlecase }} + + } + + @if(element.status == 'medium') { + + {{ element.status | titlecase }} + + } + + @if(element.status == 'high') { + + {{ element.status | titlecase }} + + } + + @if(element.status == 'critical') { + + {{ element.status | titlecase }} + + } + + + Sales + + ${{ element.sales }}k +
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/components/product-performance/product-performance.component.ts b/Web/themes/modernize/src/app/components/product-performance/product-performance.component.ts new file mode 100644 index 0000000..dd46ece --- /dev/null +++ b/Web/themes/modernize/src/app/components/product-performance/product-performance.component.ts @@ -0,0 +1,80 @@ +import { Component } from '@angular/core'; +import { NgApexchartsModule } from 'ng-apexcharts'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { CommonModule } from '@angular/common'; +import { MaterialModule } from 'src/app/material.module'; + +export interface performanceData { + id: number; + imagePath: string; + pname: string; + category: string; + progress: number; + sales: number; + status: string; +} + +const ELEMENT_DATA: performanceData[] = [ + { + id: 1, + imagePath: 'assets/images/products/s6.jpg', + pname: 'Gaming Console', + category: 'Electronics', + progress: 78.5, + sales: 3.9, + status: 'low', + }, + { + id: 2, + imagePath: 'assets/images/products/s9.jpg', + pname: 'Leather Purse', + category: 'Fashion', + progress: 58.6, + sales: 3.5, + status: 'medium', + }, + { + id: 3, + imagePath: 'assets/images/products/s7.jpg', + pname: 'Red Velvate Dress', + category: 'Womens Fashion', + progress: 25, + sales: 3.8, + status: 'high', + }, + { + id: 4, + imagePath: 'assets/images/products/s4.jpg', + pname: 'Headphone Boat', + category: 'Electronics', + progress: 96.3, + sales: 3.54, + status: 'critical', + }, +]; + +interface month { + value: string; + viewValue: string; +} + +@Component({ + selector: 'app-product-performance', + imports: [ + NgApexchartsModule, + MaterialModule, + TablerIconsModule, + CommonModule, + ], + templateUrl: './product-performance.component.html', +}) +export class AppProductPerformanceComponent { + displayedColumns: string[] = ['product', 'progress', 'status', 'sales']; + dataSource = ELEMENT_DATA; + + months: month[] = [ + { value: 'mar', viewValue: 'March 2025' }, + { value: 'apr', viewValue: 'April 2025' }, + { value: 'june', viewValue: 'June 2025' }, + ]; +} diff --git a/Web/themes/modernize/src/app/components/recent-transactions/recent-transactions.component.html b/Web/themes/modernize/src/app/components/recent-transactions/recent-transactions.component.html new file mode 100644 index 0000000..fdb3503 --- /dev/null +++ b/Web/themes/modernize/src/app/components/recent-transactions/recent-transactions.component.html @@ -0,0 +1,33 @@ + + + Recent Transactions + +
+ @for(stat of stats; track stat.title) { +
+
{{ stat.time }}
+
+ + +
+
+ @if(stat.subtext) { + {{ stat.subtext }} + } + + @if(stat.title) { + {{ + stat.title + }} + } + + @if(stat.link) { + #ML-3467 + } + +
+
+ } +
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/components/recent-transactions/recent-transactions.component.ts b/Web/themes/modernize/src/app/components/recent-transactions/recent-transactions.component.ts new file mode 100644 index 0000000..d5b30f7 --- /dev/null +++ b/Web/themes/modernize/src/app/components/recent-transactions/recent-transactions.component.ts @@ -0,0 +1,62 @@ +import { Component } from '@angular/core'; +import { NgApexchartsModule } from 'ng-apexcharts'; +import { MaterialModule } from 'src/app/material.module'; + + +interface stats { + id: number; + time: string; + color: string; + title?: string; + subtext?: string; + link?: string; +} + +@Component({ + selector: 'app-recent-transactions', + imports: [NgApexchartsModule, MaterialModule], + templateUrl: './recent-transactions.component.html', +}) +export class AppRecentTransactionsComponent { + stats: stats[] = [ + { + id: 1, + time: '09.30 am', + color: 'primary', + subtext: 'Payment received from John Doe of $385.90', + }, + { + id: 2, + time: '10.30 am', + color: 'accent', + title: 'New sale recorded', + link: '#ML-3467', + }, + { + id: 3, + time: '12.30 pm', + color: 'success', + subtext: 'Payment was made of $64.95 to Michael', + }, + { + id: 4, + time: '12.30 pm', + color: 'warning', + title: 'New sale recorded', + link: '#ML-3467', + }, + { + id: 5, + time: '12.30 pm', + color: 'error', + title: 'New arrival recorded', + link: '#ML-3467', + }, + { + id: 6, + time: '12.30 pm', + color: 'success', + subtext: 'Payment Done', + }, + ]; +} diff --git a/Web/themes/modernize/src/app/components/sales-overview/sales-overview.component.html b/Web/themes/modernize/src/app/components/sales-overview/sales-overview.component.html new file mode 100644 index 0000000..994b693 --- /dev/null +++ b/Web/themes/modernize/src/app/components/sales-overview/sales-overview.component.html @@ -0,0 +1,22 @@ + + +
+ Sales Overview +
+ + + @for(month of months; track month.viewValue ) { + + {{ month.viewValue }} + + } + + +
+
+ +
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/components/sales-overview/sales-overview.component.ts b/Web/themes/modernize/src/app/components/sales-overview/sales-overview.component.ts new file mode 100644 index 0000000..a84e99e --- /dev/null +++ b/Web/themes/modernize/src/app/components/sales-overview/sales-overview.component.ts @@ -0,0 +1,153 @@ +import { Component, ViewChild } from '@angular/core'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { MaterialModule } from 'src/app/material.module'; + +import { + ApexChart, + ChartComponent, + ApexDataLabels, + ApexLegend, + ApexStroke, + ApexTooltip, + ApexAxisChartSeries, + ApexXAxis, + ApexYAxis, + ApexGrid, + ApexPlotOptions, + ApexFill, + ApexMarkers, + ApexResponsive, + NgApexchartsModule, +} from 'ng-apexcharts'; +import { MatButtonModule } from '@angular/material/button'; + +interface month { + value: string; + viewValue: string; +} + +export interface salesOverviewChart { + series: ApexAxisChartSeries; + chart: ApexChart; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + yaxis: ApexYAxis; + xaxis: ApexXAxis; + fill: ApexFill; + tooltip: ApexTooltip; + stroke: ApexStroke; + legend: ApexLegend; + grid: ApexGrid; + marker: ApexMarkers; +} + +@Component({ + selector: 'app-sales-overview', + imports: [MaterialModule, TablerIconsModule, NgApexchartsModule, MatButtonModule], + templateUrl: './sales-overview.component.html', +}) +export class AppSalesOverviewComponent { + + @ViewChild('chart') chart: ChartComponent = Object.create(null); + + public salesOverviewChart!: Partial | any; + + months: month[] = [ + { value: 'mar', viewValue: 'Sep 2025' }, + { value: 'apr', viewValue: 'Oct 2025' }, + { value: 'june', viewValue: 'Nov 2025' }, + ]; + + + constructor() { + + // sales overview chart + this.salesOverviewChart = { + series: [ + { + name: 'Eanings this month', + data: [355, 390, 300, 350, 390, 180, 355, 390], + color: '#5D87FF', + }, + { + name: 'Expense this month', + data: [280, 250, 325, 215, 250, 310, 280, 250], + color: '#49BEFF', + }, + ], + + grid: { + borderColor: 'rgba(0,0,0,0.1)', + strokeDashArray: 3, + xaxis: { + lines: { + show: false, + }, + }, + }, + plotOptions: { + bar: { horizontal: false, columnWidth: '35%', borderRadius: [4] }, + }, + chart: { + type: 'bar', + height: 390, + offsetX: -15, + toolbar: { show: false }, + foreColor: '#adb0bb', + fontFamily: 'inherit', + sparkline: { enabled: false }, + }, + dataLabels: { enabled: false }, + markers: { size: 0 }, + legend: { show: false }, + xaxis: { + type: 'category', + categories: [ + '16/08', + '17/08', + '18/08', + '19/08', + '20/08', + '21/08', + '22/08', + '23/08', + ], + labels: { + style: { cssClass: 'grey--text lighten-2--text fill-color' }, + }, + }, + yaxis: { + show: true, + min: 0, + max: 400, + tickAmount: 4, + labels: { + style: { + cssClass: 'grey--text lighten-2--text fill-color', + }, + }, + }, + stroke: { + show: true, + width: 3, + lineCap: 'butt', + colors: ['transparent'], + }, + tooltip: { theme: 'light' }, + + responsive: [ + { + breakpoint: 600, + options: { + plotOptions: { + bar: { + borderRadius: 3, + }, + }, + }, + }, + ], + }; + + } +} diff --git a/Web/themes/modernize/src/app/components/yearly-breakup/yearly-breakup.component.html b/Web/themes/modernize/src/app/components/yearly-breakup/yearly-breakup.component.html new file mode 100644 index 0000000..ed43680 --- /dev/null +++ b/Web/themes/modernize/src/app/components/yearly-breakup/yearly-breakup.component.html @@ -0,0 +1,34 @@ + + + Yearly Breakup +
+
+

$36,358

+
+ +
+9%
+
last year
+
+ +
+
+ +
2025
+
+
+ +
2024
+
+
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/components/yearly-breakup/yearly-breakup.component.ts b/Web/themes/modernize/src/app/components/yearly-breakup/yearly-breakup.component.ts new file mode 100644 index 0000000..81fbea6 --- /dev/null +++ b/Web/themes/modernize/src/app/components/yearly-breakup/yearly-breakup.component.ts @@ -0,0 +1,101 @@ +import { Component, ViewEncapsulation, ViewChild } from '@angular/core'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { + ApexChart, + ChartComponent, + ApexDataLabels, + ApexLegend, + ApexStroke, + ApexTooltip, + ApexAxisChartSeries, + ApexXAxis, + ApexYAxis, + ApexGrid, + ApexPlotOptions, + ApexFill, + ApexMarkers, + ApexResponsive, + NgApexchartsModule, +} from 'ng-apexcharts'; +import { MaterialModule } from 'src/app/material.module'; + + +export interface yearlyChart { + series: ApexAxisChartSeries; + chart: ApexChart; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + tooltip: ApexTooltip; + stroke: ApexStroke; + legend: ApexLegend; + responsive: ApexResponsive; +} + + + +@Component({ + selector: 'app-yearly-breakup', + templateUrl: './yearly-breakup.component.html', + imports: [MaterialModule, NgApexchartsModule, TablerIconsModule], + encapsulation: ViewEncapsulation.None, +}) +export class AppYearlyBreakupComponent { + @ViewChild('chart') chart: ChartComponent = Object.create(null); + + public yearlyChart!: Partial | any; + + + constructor() { + + this.yearlyChart = { + + color: "#adb5bd", + series: [38, 40, 25], + labels: ["2025", "2024", "2023"], + chart: { + width: 125, + type: "donut", + fontFamily: "inherit", + foreColor: "#adb0bb", + }, + plotOptions: { + pie: { + startAngle: 0, + endAngle: 360, + donut: { + size: "75%", + }, + }, + }, + stroke: { + show: false, + }, + + dataLabels: { + enabled: false, + }, + + legend: { + show: false, + }, + colors: ['#5D87FF', '#ECF2FF', '#F9F9FD'], + + responsive: [ + { + breakpoint: 991, + options: { + chart: { + width: 120, + }, + }, + }, + ], + tooltip: { + theme: "dark", + fillSeriesColor: false, + }, + }; + + + } +} diff --git a/Web/themes/modernize/src/app/config.ts b/Web/themes/modernize/src/app/config.ts new file mode 100644 index 0000000..f78393a --- /dev/null +++ b/Web/themes/modernize/src/app/config.ts @@ -0,0 +1,11 @@ +export interface AppSettings { + + sidenavOpened: boolean; + sidenavCollapsed: boolean; + +} + +export const defaults: AppSettings = { + sidenavOpened: false, + sidenavCollapsed: false, +}; diff --git a/Web/themes/modernize/src/app/layouts/blank/blank.component.html b/Web/themes/modernize/src/app/layouts/blank/blank.component.html new file mode 100644 index 0000000..88bc7f7 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/blank/blank.component.html @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/blank/blank.component.ts b/Web/themes/modernize/src/app/layouts/blank/blank.component.ts new file mode 100644 index 0000000..2df6064 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/blank/blank.component.ts @@ -0,0 +1,23 @@ +import { Component } from '@angular/core'; +import { CoreService } from 'src/app/services/core.service'; +import { CommonModule } from '@angular/common'; +import { RouterOutlet } from '@angular/router'; +import { MaterialModule } from 'src/app/material.module'; + +@Component({ + selector: 'app-blank', + templateUrl: './blank.component.html', + styleUrls: [], + imports: [RouterOutlet, MaterialModule, CommonModule], +}) +export class BlankComponent { + private htmlElement!: HTMLHtmlElement; + + options = this.settings.getOptions(); + + constructor(private settings: CoreService) { + this.htmlElement = document.querySelector('html')!; + } + + +} diff --git a/Web/themes/modernize/src/app/layouts/full/full.component.html b/Web/themes/modernize/src/app/layouts/full/full.component.html new file mode 100644 index 0000000..3afef14 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/full.component.html @@ -0,0 +1,59 @@ + + + + + + + +
+ + + + @for(item of navItems; track item) { + + + } + + +
+
+
+
+ Check Pro
Version +
+ + Check + +
+ imgae +
+
+
+
+ + + + + + + + + + + +
+ + + + +
+ +
+ Design & Developed by AdminMart.com +
+
+ +
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/full.component.ts b/Web/themes/modernize/src/app/layouts/full/full.component.ts new file mode 100644 index 0000000..55d89d7 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/full.component.ts @@ -0,0 +1,117 @@ +import { BreakpointObserver, MediaMatcher } from '@angular/cdk/layout'; +import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { MatSidenav, MatSidenavContent } from '@angular/material/sidenav'; +import { CoreService } from 'src/app/services/core.service'; + +import { filter } from 'rxjs/operators'; +import { NavigationEnd, Router } from '@angular/router'; +import { NavService } from '../../services/nav.service'; +import { RouterModule } from '@angular/router'; +import { MaterialModule } from 'src/app/material.module'; +import { CommonModule } from '@angular/common'; +import { NgScrollbarModule } from 'ngx-scrollbar'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { HeaderComponent } from './header/header.component'; +import { SidebarComponent } from './sidebar/sidebar.component'; +import { AppNavItemComponent } from './sidebar/nav-item/nav-item.component'; +import { navItems } from './sidebar/sidebar-data'; +import { AppTopstripComponent } from './top-strip/topstrip.component'; + + +const MOBILE_VIEW = 'screen and (max-width: 768px)'; +const TABLET_VIEW = 'screen and (min-width: 769px) and (max-width: 1024px)'; + + +@Component({ + selector: 'app-full', + imports: [ + RouterModule, + AppNavItemComponent, + MaterialModule, + CommonModule, + SidebarComponent, + NgScrollbarModule, + TablerIconsModule, + HeaderComponent, + AppTopstripComponent + ], + templateUrl: './full.component.html', + styleUrls: [], + encapsulation: ViewEncapsulation.None +}) +export class FullComponent implements OnInit { + navItems = navItems; + + @ViewChild('leftsidenav') + public sidenav: MatSidenav; + resView = false; + @ViewChild('content', { static: true }) content!: MatSidenavContent; + //get options from service + options = this.settings.getOptions(); + private layoutChangesSubscription = Subscription.EMPTY; + private isMobileScreen = false; + private isContentWidthFixed = true; + private isCollapsedWidthFixed = false; + private htmlElement!: HTMLHtmlElement; + + get isOver(): boolean { + return this.isMobileScreen; + } + + + constructor( + private settings: CoreService, + private router: Router, + private breakpointObserver: BreakpointObserver, + ) { + this.htmlElement = document.querySelector('html')!; + this.layoutChangesSubscription = this.breakpointObserver + .observe([MOBILE_VIEW, TABLET_VIEW]) + .subscribe((state) => { + // SidenavOpened must be reset true when layout changes + this.options.sidenavOpened = true; + this.isMobileScreen = state.breakpoints[MOBILE_VIEW]; + if (this.options.sidenavCollapsed == false) { + this.options.sidenavCollapsed = state.breakpoints[TABLET_VIEW]; + } + }); + + // Initialize project theme with options + + + // This is for scroll to top + this.router.events + .pipe(filter((event) => event instanceof NavigationEnd)) + .subscribe((e) => { + this.content.scrollTo({ top: 0 }); + }); + } + + ngOnInit(): void { } + + ngOnDestroy() { + this.layoutChangesSubscription.unsubscribe(); + } + + toggleCollapsed() { + this.isContentWidthFixed = false; + this.options.sidenavCollapsed = !this.options.sidenavCollapsed; + this.resetCollapsedState(); + } + + resetCollapsedState(timer = 400) { + setTimeout(() => this.settings.setOptions(this.options), timer); + } + + onSidenavClosedStart() { + this.isContentWidthFixed = false; + } + + onSidenavOpenedChange(isOpened: boolean) { + this.isCollapsedWidthFixed = !this.isOver; + this.options.sidenavOpened = isOpened; + //this.settings.setOptions(this.options); + } + +} diff --git a/Web/themes/modernize/src/app/layouts/full/header/header.component.html b/Web/themes/modernize/src/app/layouts/full/header/header.component.html new file mode 100644 index 0000000..def3713 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/header/header.component.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + Check Pro Template + + + + + + + +
+ Logout +
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/header/header.component.ts b/Web/themes/modernize/src/app/layouts/full/header/header.component.ts new file mode 100644 index 0000000..1d14ea4 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/header/header.component.ts @@ -0,0 +1,30 @@ +import { + Component, + Output, + EventEmitter, + Input, + ViewEncapsulation, +} from '@angular/core'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { MaterialModule } from 'src/app/material.module'; +import { RouterModule } from '@angular/router'; +import { CommonModule } from '@angular/common'; +import { NgScrollbarModule } from 'ngx-scrollbar'; + +@Component({ + selector: 'app-header', + imports: [ + RouterModule, + CommonModule, + NgScrollbarModule, + TablerIconsModule, + MaterialModule, + ], + templateUrl: './header.component.html', + encapsulation: ViewEncapsulation.None, +}) +export class HeaderComponent { + @Input() showToggle = true; + @Input() toggleChecked = false; + @Output() toggleMobileNav = new EventEmitter(); +} \ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/branding.component.ts b/Web/themes/modernize/src/app/layouts/full/sidebar/branding.component.ts new file mode 100644 index 0000000..fe4d69b --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/branding.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { CoreService } from 'src/app/services/core.service'; + +@Component({ + selector: 'app-branding', + imports: [], + template: ` + + logo + + `, +}) +export class BrandingComponent { + options = this.settings.getOptions(); + constructor(private settings: CoreService) {} +} diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.component.html b/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.component.html new file mode 100644 index 0000000..6b4aafb --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.component.html @@ -0,0 +1,48 @@ +@if(item.navCap){ + +} @if(!item.navCap && !item.external) { + + + {{ item.displayName }} + + @if(item.children && item.children.length) { + + + @if(item.chip) { + + {{ item.chipContent }} + + } + + expand_more + + + } + +} + + + +@if(!item.navCap && item.external) { + + + {{ item.displayName }} + @if(item.chip) { + + {{ item.chipContent }} + + } + +} + + +@if(expanded) { @for(child of item.children; track child) { + + +} } \ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.component.ts b/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.component.ts new file mode 100644 index 0000000..6eac56f --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.component.ts @@ -0,0 +1,77 @@ +import { + Component, + HostBinding, + Input, + OnChanges, + Output, + EventEmitter, +} from '@angular/core'; +import { NavItem } from './nav-item'; +import { Router } from '@angular/router'; +import { NavService } from '../../../../services/nav.service'; + +import { TranslateModule } from '@ngx-translate/core'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { MaterialModule } from 'src/app/material.module'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-nav-item', + imports: [TranslateModule, TablerIconsModule, MaterialModule, CommonModule], + templateUrl: './nav-item.component.html', + styleUrls: [], +}) +export class AppNavItemComponent implements OnChanges { + @Output() notify: EventEmitter = new EventEmitter(); + + @Input() item: NavItem | any; + + expanded: any = false; + + @HostBinding('attr.aria-expanded') ariaExpanded = this.expanded; + @Input() depth: any; + + constructor(public navService: NavService, public router: Router) {} + + ngOnChanges() { + const url = this.navService.currentUrl(); + if (this.item.route && url) { + this.expanded = url.indexOf(`/${this.item.route}`) === 0; + this.ariaExpanded = this.expanded; + } + } + + onItemSelected(item: NavItem) { + if (!item.children || !item.children.length) { + this.router.navigate([item.route]); + } + if (item.children && item.children.length) { + this.expanded = !this.expanded; + } + //scroll + window.scroll({ + top: 0, + left: 0, + behavior: 'smooth', + }); + if (!this.expanded) { + if (window.innerWidth < 1024) { + this.notify.emit(); + } + } + } + + openExternalLink(url: string): void { + if (url) { + window.open(url, '_blank'); + } + } + + onSubItemSelected(item: NavItem) { + if (!item.children || !item.children.length) { + if (this.expanded && window.innerWidth < 1024) { + this.notify.emit(); + } + } + } +} diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.ts b/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.ts new file mode 100644 index 0000000..c2c6e4e --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/nav-item/nav-item.ts @@ -0,0 +1,11 @@ +export interface NavItem { + displayName?: string; + iconName?: string; + navCap?: string; + route?: string; + children?: NavItem[]; + chip?: boolean; + chipContent?: string; + chipClass?: string; + external?: boolean; +} \ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar-data.ts b/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar-data.ts new file mode 100644 index 0000000..c29884d --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar-data.ts @@ -0,0 +1,914 @@ +import { NavItem } from './nav-item/nav-item'; + +export const navItems: NavItem[] = [ + { + navCap: 'Home', + }, + { + displayName: 'Dashboard', + iconName: 'layout-grid-add', + route: '/dashboard', + }, + { + displayName: 'Analytical', + iconName: 'aperture', + route: 'https://modernize-angular-main.netlify.app/dashboards/dashboard1', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'eCommerce', + iconName: 'shopping-cart', + route: 'https://modernize-angular-main.netlify.app/dashboards/dashboard2', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + + { + navCap: 'Apps', + }, + { + displayName: 'Chat', + iconName: 'message-dots', + route: 'https://modernize-angular-main.netlify.app/apps/chat', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Calendar', + iconName: 'calendar', + route: 'https://modernize-angular-main.netlify.app/apps/calendar', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Email', + iconName: 'mail', + route: 'https://modernize-angular-main.netlify.app/apps/email/inbox', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Kanban', + iconName: 'checklist', + route: 'https://modernize-angular-main.netlify.app/apps/kanban', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Contacts', + iconName: 'phone', + route: 'https://modernize-angular-main.netlify.app/apps/contacts', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Contact List', + iconName: 'list-details', + route: 'https://modernize-angular-main.netlify.app/apps/contact-list', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Courses', + iconName: 'certificate', + route: 'https://modernize-angular-main.netlify.app/apps/courses', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Employee', + iconName: 'brand-ctemplar', + route: 'https://modernize-angular-main.netlify.app/apps/employee', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Notes', + iconName: 'note', + route: 'https://modernize-angular-main.netlify.app/apps/notes', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Tickets', + iconName: 'ticket', + route: 'https://modernize-angular-main.netlify.app/apps/tickets', + chip: true, + external: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'ToDo', + iconName: 'edit', + route: 'https://modernize-angular-main.netlify.app/apps/todo', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Invoice', + iconName: 'file-invoice', + chip: true, + route: '', + children: [ + { + displayName: 'List', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: '/https://modernize-angular-main.netlify.app/apps/invoice', + }, + { + displayName: 'Detail', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: + '/https://modernize-angular-main.netlify.app/apps/viewInvoice/101', + }, + { + displayName: 'Create', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: '/https://modernize-angular-main.netlify.app/apps/addInvoice', + }, + { + displayName: 'Edit', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: + '/https://modernize-angular-main.netlify.app/apps/editinvoice/101', + }, + ], + }, + + { + displayName: 'Blog', + iconName: 'chart-donut-3', + chip: true, + route: 'apps/blog', + children: [ + { + displayName: 'Post', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/apps/blog/post', + }, + { + displayName: 'Detail', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: + 'https://modernize-angular-main.netlify.app/apps/blog/detail/Early Black Friday Amazon deals: cheap TVs, headphones, laptops', + }, + ], + }, + + { + navCap: 'Ui Components', + }, + { + displayName: 'Badge', + iconName: 'archive', + route: '/ui-components/badge', + }, + { + displayName: 'Chips', + iconName: 'info-circle', + route: '/ui-components/chips', + }, + { + displayName: 'Lists', + iconName: 'list-details', + route: '/ui-components/lists', + }, + { + displayName: 'Menu', + iconName: 'file-text', + route: '/ui-components/menu', + }, + { + displayName: 'Tooltips', + iconName: 'file-text-ai', + route: '/ui-components/tooltips', + }, + { + displayName: 'Forms', + iconName: 'clipboard-text', + route: '/ui-components/forms', + }, + { + displayName: 'Tables', + iconName: 'table', + route: '/ui-components/tables', + }, + { + displayName: 'Expansion Panel', + iconName: 'layout-bottombar-inactive', + route: 'https://modernize-angular-main.netlify.app/ui-components/expansion', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Dialog', + iconName: 'diabolo', + route: 'https://modernize-angular-main.netlify.app/ui-components/dialog', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Divider', + iconName: 'separator', + route: 'https://modernize-angular-main.netlify.app/ui-components/divider', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Paginator', + iconName: 'text-wrap', + route: 'https://modernize-angular-main.netlify.app/ui-components/paginator', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Progress Bar', + iconName: 'progress', + route: 'https://modernize-angular-main.netlify.app/ui-components/progress', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Progress Spinner', + iconName: 'rotate-2', + route: 'https://modernize-angular-main.netlify.app/ui-components/progress-spinner', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Ripples', + iconName: 'ripple', + route: 'https://modernize-angular-main.netlify.app/ui-components/ripples', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Slide Toggle', + iconName: 'toggle-left', + route: 'https://modernize-angular-main.netlify.app/ui-components/slide-toggle', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Slider', + iconName: 'adjustments-alt', + route: 'https://modernize-angular-main.netlify.app/ui-components/slider', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Snackbar', + iconName: 'stack-backward', + route: 'https://modernize-angular-main.netlify.app/ui-components/snackbar', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Tabs', + iconName: 'border-all', + route: 'https://modernize-angular-main.netlify.app/ui-components/tabs', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Toolbar', + iconName: 'tools-kitchen', + route: 'https://modernize-angular-main.netlify.app/ui-components/toolbar', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Tooltips', + iconName: 'tooltip', + route: 'https://modernize-angular-main.netlify.app/ui-components/tooltips', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + + { + navCap: 'Pages', + }, + { + displayName: 'Roll Base Access', + iconName: 'lock-access', + route: 'https://modernize-angular-main.netlify.app/apps/permission', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Treeview', + iconName: 'git-merge', + route: 'https://modernize-angular-main.netlify.app/theme-pages/treeview', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Pricing', + iconName: 'currency-dollar', + route: 'https://modernize-angular-main.netlify.app/theme-pages/pricing', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Account Setting', + iconName: 'user-circle', + route: + 'https://modernize-angular-main.netlify.app/theme-pages/account-setting', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'FAQ', + iconName: 'help', + route: 'https://modernize-angular-main.netlify.app/theme-pages/faq', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Landingpage', + iconName: 'app-window', + route: 'https://modernize-angular-main.netlify.app/landingpage', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Widgets', + iconName: 'layout', + route: 'widgets', + chip: true, + children: [ + { + displayName: 'Cards', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/widgets/cards', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Banners', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/widgets/banners', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Charts', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/widgets/charts', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + ], + }, + { + navCap: 'Extra', + }, + { + displayName: 'Icons', + iconName: 'mood-smile', + route: '/extra/icons', + }, + { + displayName: 'Sample Page', + iconName: 'brand-dribbble', + route: '/extra/sample-page', + }, + { + navCap: 'Forms', + }, + { + displayName: 'Elements', + iconName: 'apps', + chip: true, + route: 'forms/forms-elements', + children: [ + { + displayName: 'Autocomplete', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/forms/forms-elements/autocomplete', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Button', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/forms/forms-elements/button', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Checkbox', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/forms/forms-elements/checkbox', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Radio', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/forms/forms-elements/radio', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Datepicker', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/forms/forms-elements/datepicker', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + ], + }, + { + displayName: 'Form Layouts', + iconName: 'file-description', + route: 'https://modernize-angular-main.netlify.app/forms/form-layouts', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Form Horizontal', + iconName: 'box-align-bottom', + route: 'https://modernize-angular-main.netlify.app/forms/form-horizontal', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Form Vertical', + iconName: 'box-align-left', + route: 'https://modernize-angular-main.netlify.app/forms/form-vertical', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Form Wizard', + iconName: 'files', + route: 'https://modernize-angular-main.netlify.app/forms/form-wizard', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Toastr', + iconName: 'notification', + route: 'https://modernize-angular-main.netlify.app/forms/form-toastr', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + + { + navCap: 'Tables', + }, + { + displayName: 'Tables', + iconName: 'layout', + route: 'tables', + chip: true, + children: [ + { + displayName: 'Basic Table', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/tables/basic-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Dynamic Table', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/tables/dynamic-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Expand Table', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/tables/expand-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Filterable Table', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/filterable-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Footer Row Table', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/footer-row-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'HTTP Table', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/tables/http-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Mix Table', + iconName: 'point', + route: 'https://modernize-angular-main.netlify.app/tables/mix-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Multi Header Footer', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/multi-header-footer-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Pagination Table', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/pagination-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Row Context Table', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/row-context-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Selection Table', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/selection-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Sortable Table', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/sortable-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Sticky Column', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/sticky-column-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Sticky Header Footer', + iconName: 'point', + route: + 'https://modernize-angular-main.netlify.app/tables/sticky-header-footer-table', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + ], + }, + { + displayName: 'Data table', + iconName: 'border-outer', + route: 'https://modernize-angular-main.netlify.app/datatable/kichen-sink', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + navCap: 'Chart', + }, + { + displayName: 'Line', + iconName: 'chart-line', + route: 'https://modernize-angular-main.netlify.app/charts/line', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Gredient', + iconName: 'chart-arcs', + route: 'https://modernize-angular-main.netlify.app/charts/gredient', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Area', + iconName: 'chart-area', + route: 'https://modernize-angular-main.netlify.app/charts/area', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Candlestick', + iconName: 'chart-candle', + route: 'https://modernize-angular-main.netlify.app/charts/candlestick', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Column', + iconName: 'chart-dots', + route: 'https://modernize-angular-main.netlify.app/charts/column', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Doughnut & Pie', + iconName: 'chart-donut-3', + route: 'https://modernize-angular-main.netlify.app/charts/doughnut-pie', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Radialbar & Radar', + iconName: 'chart-radar', + route: 'https://modernize-angular-main.netlify.app/charts/radial-radar', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + + { + navCap: 'Auth', + }, + { + displayName: 'Login', + iconName: 'login', + route: '/authentication', + children: [ + { + displayName: 'Login', + iconName: 'point', + route: '/authentication/login', + }, + { + displayName: 'Side Login', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/authentication/login', + }, + ], + }, + { + displayName: 'Register', + iconName: 'user-plus', + route: '/authentication', + children: [ + { + displayName: 'Register', + iconName: 'point', + route: '/authentication/register', + }, + { + displayName: 'Side Register', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/authentication/side-register', + }, + ], + }, + { + displayName: 'Forgot Pwd', + iconName: 'rotate', + chip: true, + route: '/authentication', + children: [ + { + displayName: 'Side Forgot Pwd', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/authentication/side-forgot-pwd', + }, + { + displayName: 'Boxed Forgot Pwd', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/authentication/boxed-forgot-pwd', + }, + ], + }, + { + displayName: 'Two Steps', + iconName: 'zoom-code', + chip: true, + route: '/authentication', + children: [ + { + displayName: 'Side Two Steps', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/authentication/side-two-steps', + }, + { + displayName: 'Boxed Two Steps', + iconName: 'point', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + route: 'https://modernize-angular-main.netlify.app/authentication/boxed-two-steps', + }, + ], + }, + { + displayName: 'Error', + iconName: 'alert-circle', + route: 'https://modernize-angular-main.netlify.app//authentication/error', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, + { + displayName: 'Maintenance', + iconName: 'settings', + route: 'https://modernize-angular-main.netlify.app//authentication/maintenance', + external: true, + chip: true, + chipClass: 'bg-light-secondary text-secondary', + chipContent: 'PRO', + }, +]; diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar.component.html b/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar.component.html new file mode 100644 index 0000000..eba60a8 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar.component.html @@ -0,0 +1,10 @@ +
+
+ + @if(showToggle) { + + + + } +
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar.component.ts b/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar.component.ts new file mode 100644 index 0000000..fc21a5e --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/sidebar/sidebar.component.ts @@ -0,0 +1,25 @@ +import { + Component, + EventEmitter, + Input, + OnInit, + Output, + ViewChild, +} from '@angular/core'; +import { BrandingComponent } from './branding.component'; +import { TablerIconsModule } from 'angular-tabler-icons'; +import { MaterialModule } from 'src/app/material.module'; + +@Component({ + selector: 'app-sidebar', + imports: [BrandingComponent, TablerIconsModule, MaterialModule], + templateUrl: './sidebar.component.html', +}) +export class SidebarComponent implements OnInit { + constructor() {} + @Input() showToggle = true; + @Output() toggleMobileNav = new EventEmitter(); + @Output() toggleCollapsed = new EventEmitter(); + + ngOnInit(): void {} +} diff --git a/Web/themes/modernize/src/app/layouts/full/top-strip/topstrip.component.html b/Web/themes/modernize/src/app/layouts/full/top-strip/topstrip.component.html new file mode 100644 index 0000000..63de604 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/top-strip/topstrip.component.html @@ -0,0 +1,121 @@ + \ No newline at end of file diff --git a/Web/themes/modernize/src/app/layouts/full/top-strip/topstrip.component.ts b/Web/themes/modernize/src/app/layouts/full/top-strip/topstrip.component.ts new file mode 100644 index 0000000..4f26c99 --- /dev/null +++ b/Web/themes/modernize/src/app/layouts/full/top-strip/topstrip.component.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatMenuModule } from '@angular/material/menu'; +import { TablerIconsModule } from 'angular-tabler-icons'; + +@Component({ + selector: 'app-topstrip', + imports: [TablerIconsModule, MatButtonModule, MatMenuModule], + templateUrl: './topstrip.component.html', +}) +export class AppTopstripComponent { + constructor() { } + +} + \ No newline at end of file diff --git a/Web/themes/modernize/src/app/material.module.ts b/Web/themes/modernize/src/app/material.module.ts new file mode 100644 index 0000000..4f8ca3a --- /dev/null +++ b/Web/themes/modernize/src/app/material.module.ts @@ -0,0 +1,85 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +// Material Form Controls +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatSelectModule } from '@angular/material/select'; +import { MatSliderModule } from '@angular/material/slider'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +// Material Navigation +import { MatMenuModule } from '@angular/material/menu'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatToolbarModule } from '@angular/material/toolbar'; +// Material Layout +import { MatCardModule } from '@angular/material/card'; +import { MatDividerModule } from '@angular/material/divider'; +import { MatExpansionModule } from '@angular/material/expansion'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatListModule } from '@angular/material/list'; +import { MatStepperModule } from '@angular/material/stepper'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatTreeModule } from '@angular/material/tree'; +// Material Buttons & Indicators +import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; +import { MatBadgeModule } from '@angular/material/badge'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatIconModule } from '@angular/material/icon'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatRippleModule } from '@angular/material/core'; +// Material Popups & Modals +import { MatBottomSheetModule } from '@angular/material/bottom-sheet'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatSnackBarModule } from '@angular/material/snack-bar'; +import { MatTooltipModule } from '@angular/material/tooltip'; +// Material Data tables +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; + +@NgModule({ + declarations: [], + exports: [ + MatAutocompleteModule, + MatCheckboxModule, + MatDatepickerModule, + MatFormFieldModule, + MatInputModule, + MatRadioModule, + MatSelectModule, + MatSliderModule, + MatSlideToggleModule, + MatMenuModule, + MatSidenavModule, + MatToolbarModule, + MatCardModule, + MatDividerModule, + MatExpansionModule, + MatGridListModule, + MatListModule, + MatStepperModule, + MatTabsModule, + MatTreeModule, + MatButtonModule, + MatButtonToggleModule, + MatBadgeModule, + MatChipsModule, + MatIconModule, + MatProgressSpinnerModule, + MatProgressBarModule, + MatRippleModule, + MatBottomSheetModule, + MatDialogModule, + MatSnackBarModule, + MatTooltipModule, + MatPaginatorModule, + MatSortModule, + MatTableModule, + ], +}) +export class MaterialModule {} diff --git a/Web/themes/modernize/src/app/pages/authentication/authentication.routes.ts b/Web/themes/modernize/src/app/pages/authentication/authentication.routes.ts new file mode 100644 index 0000000..c3764e1 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/authentication/authentication.routes.ts @@ -0,0 +1,20 @@ +import { Routes } from '@angular/router'; + +import { AppSideLoginComponent } from './side-login/side-login.component'; +import { AppSideRegisterComponent } from './side-register/side-register.component'; + +export const AuthenticationRoutes: Routes = [ + { + path: '', + children: [ + { + path: 'login', + component: AppSideLoginComponent, + }, + { + path: 'register', + component: AppSideRegisterComponent, + }, + ], + }, +]; diff --git a/Web/themes/modernize/src/app/pages/authentication/side-login/side-login.component.html b/Web/themes/modernize/src/app/pages/authentication/side-login/side-login.component.html new file mode 100644 index 0000000..cea0428 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/authentication/side-login/side-login.component.html @@ -0,0 +1,64 @@ +
+
+
+ + +
+ + logo + +
+ +
+
+ +
+
+ +
+
+ +
or sign in with
+ +
+ Username + + + + + Password + + + + +
+ Remember this Device + Forgot Password + ? +
+ + Sign In + + +
+ New to Modernize? + + Create an account + +
+
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/authentication/side-login/side-login.component.ts b/Web/themes/modernize/src/app/pages/authentication/side-login/side-login.component.ts new file mode 100644 index 0000000..28175c0 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/authentication/side-login/side-login.component.ts @@ -0,0 +1,31 @@ +import { Component } from '@angular/core'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { RouterModule } from '@angular/router'; +import { MaterialModule } from 'src/app/material.module'; +import { FormsModule } from '@angular/forms'; +import { ReactiveFormsModule } from '@angular/forms'; + +@Component({ + selector: 'app-side-login', + imports: [RouterModule, MaterialModule, FormsModule, ReactiveFormsModule], + templateUrl: './side-login.component.html', +}) +export class AppSideLoginComponent { + + constructor( private router: Router) {} + + form = new FormGroup({ + uname: new FormControl('', [Validators.required, Validators.minLength(6)]), + password: new FormControl('', [Validators.required]), + }); + + get f() { + return this.form.controls; + } + + submit() { + // console.log(this.form.value); + this.router.navigate(['/']); + } +} diff --git a/Web/themes/modernize/src/app/pages/authentication/side-register/side-register.component.html b/Web/themes/modernize/src/app/pages/authentication/side-register/side-register.component.html new file mode 100644 index 0000000..835eabe --- /dev/null +++ b/Web/themes/modernize/src/app/pages/authentication/side-register/side-register.component.html @@ -0,0 +1,62 @@ +
+
+
+ + +
+ + logo + +
+ +
+
+ +
+
+ +
+
+ +
or sign up with
+ +
+ Name + + + + Email Adddress + + + + + Password + + + + + + Sign Up + + +
+ Already have an Account? + + + Sign In + +
+
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/authentication/side-register/side-register.component.ts b/Web/themes/modernize/src/app/pages/authentication/side-register/side-register.component.ts new file mode 100644 index 0000000..a91f9e1 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/authentication/side-register/side-register.component.ts @@ -0,0 +1,33 @@ +import { Component } from '@angular/core'; +import { CoreService } from 'src/app/services/core.service'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; +import { MaterialModule } from 'src/app/material.module'; + +@Component({ + selector: 'app-side-register', + imports: [RouterModule, MaterialModule, FormsModule, ReactiveFormsModule], + templateUrl: './side-register.component.html', +}) +export class AppSideRegisterComponent { + options = this.settings.getOptions(); + + constructor(private settings: CoreService, private router: Router) {} + + form = new FormGroup({ + uname: new FormControl('', [Validators.required, Validators.minLength(6)]), + email: new FormControl('', [Validators.required]), + password: new FormControl('', [Validators.required]), + }); + + get f() { + return this.form.controls; + } + + submit() { + // console.log(this.form.value); + this.router.navigate(['/']); + } +} diff --git a/Web/themes/modernize/src/app/pages/extra/extra.routes.ts b/Web/themes/modernize/src/app/pages/extra/extra.routes.ts new file mode 100644 index 0000000..2fe567a --- /dev/null +++ b/Web/themes/modernize/src/app/pages/extra/extra.routes.ts @@ -0,0 +1,22 @@ +import { Routes } from '@angular/router'; + + +// pages +import { AppIconsComponent } from './icons/icons.component'; +import { AppSamplePageComponent } from './sample-page/sample-page.component'; + +export const ExtraRoutes: Routes = [ + { + path: '', + children: [ + { + path: 'icons', + component: AppIconsComponent, + }, + { + path: 'sample-page', + component: AppSamplePageComponent, + }, + ], + }, +]; diff --git a/Web/themes/modernize/src/app/pages/extra/icons/icons.component.html b/Web/themes/modernize/src/app/pages/extra/icons/icons.component.html new file mode 100644 index 0000000..9e55b05 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/extra/icons/icons.component.html @@ -0,0 +1,12 @@ + + + + + + Icons + Tabler Icons + + + \ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/extra/icons/icons.component.ts b/Web/themes/modernize/src/app/pages/extra/icons/icons.component.ts new file mode 100644 index 0000000..9505557 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/extra/icons/icons.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; +import { MaterialModule } from '../../../material.module'; + +@Component({ + selector: 'app-icons', + imports: [MaterialModule], + templateUrl: './icons.component.html', +}) +export class AppIconsComponent { } diff --git a/Web/themes/modernize/src/app/pages/extra/sample-page/sample-page.component.html b/Web/themes/modernize/src/app/pages/extra/sample-page/sample-page.component.html new file mode 100644 index 0000000..4d3e42d --- /dev/null +++ b/Web/themes/modernize/src/app/pages/extra/sample-page/sample-page.component.html @@ -0,0 +1,9 @@ + + + + + + Sample Page + This is test page + + \ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/extra/sample-page/sample-page.component.ts b/Web/themes/modernize/src/app/pages/extra/sample-page/sample-page.component.ts new file mode 100644 index 0000000..aa49165 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/extra/sample-page/sample-page.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; +import { MaterialModule } from '../../../material.module'; + +@Component({ + selector: 'app-sample-page', + imports: [MaterialModule], + templateUrl: './sample-page.component.html', +}) + +export class AppSamplePageComponent { } diff --git a/Web/themes/modernize/src/app/pages/pages.routes.ts b/Web/themes/modernize/src/app/pages/pages.routes.ts new file mode 100644 index 0000000..a2a0de4 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/pages.routes.ts @@ -0,0 +1,16 @@ +import { Routes } from '@angular/router'; +import { StarterComponent } from './starter/starter.component'; + +export const PagesRoutes: Routes = [ + { + path: '', + component: StarterComponent, + data: { + title: 'Starter Page', + urls: [ + { title: 'Dashboard', url: '/dashboards/dashboard1' }, + { title: 'Starter Page' }, + ], + }, + }, +]; diff --git a/Web/themes/modernize/src/app/pages/starter/starter.component.html b/Web/themes/modernize/src/app/pages/starter/starter.component.html new file mode 100644 index 0000000..f22d78b --- /dev/null +++ b/Web/themes/modernize/src/app/pages/starter/starter.component.html @@ -0,0 +1,24 @@ +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/starter/starter.component.ts b/Web/themes/modernize/src/app/pages/starter/starter.component.ts new file mode 100644 index 0000000..af7618b --- /dev/null +++ b/Web/themes/modernize/src/app/pages/starter/starter.component.ts @@ -0,0 +1,25 @@ +import { Component, ViewEncapsulation } from '@angular/core'; +import { MaterialModule } from '../../material.module'; +import { AppSalesOverviewComponent } from 'src/app/components/sales-overview/sales-overview.component'; +import { AppYearlyBreakupComponent } from 'src/app/components/yearly-breakup/yearly-breakup.component'; +import { AppMonthlyEarningsComponent } from 'src/app/components/monthly-earnings/monthly-earnings.component'; +import { AppRecentTransactionsComponent } from 'src/app/components/recent-transactions/recent-transactions.component'; +import { AppProductPerformanceComponent } from 'src/app/components/product-performance/product-performance.component'; +import { AppBlogCardsComponent } from 'src/app/components/blog-card/blog-card.component'; + + +@Component({ + selector: 'app-starter', + imports: [ + MaterialModule, + AppSalesOverviewComponent, + AppYearlyBreakupComponent, + AppMonthlyEarningsComponent, + AppRecentTransactionsComponent, + AppProductPerformanceComponent, + AppBlogCardsComponent + ], + templateUrl: './starter.component.html', + encapsulation: ViewEncapsulation.None, +}) +export class StarterComponent { } \ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/badge/badge.component.html b/Web/themes/modernize/src/app/pages/ui-components/badge/badge.component.html new file mode 100644 index 0000000..4683430 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/badge/badge.component.html @@ -0,0 +1,51 @@ + + + Badges + + + + +
Text with a badge
+
+
+ + + +
Text with small badge


+
Text with large badge
+
+
+ + + +

+ Button with a badge on the left + +

+
+
+ + + +

+ Icon with a badge + home +

+
+
+ + + +

+ Button toggles badge visibility + +

+
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/badge/badge.component.ts b/Web/themes/modernize/src/app/pages/ui-components/badge/badge.component.ts new file mode 100644 index 0000000..f7631db --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/badge/badge.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; +import { MatButtonModule } from '@angular/material/button'; +import { MatBadgeModule } from '@angular/material/badge'; +import { MatCardModule } from '@angular/material/card'; + +@Component({ + selector: 'app-badge', + templateUrl: './badge.component.html', + imports: [MatBadgeModule, MatButtonModule, MatIconModule, MatCardModule], +}) +export class AppBadgeComponent implements OnInit { + constructor() {} + + ngOnInit(): void {} + + hidden = false; + + toggleBadgeVisibility() { + this.hidden = !this.hidden; + } +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.html b/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.html new file mode 100644 index 0000000..3657a2d --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.html @@ -0,0 +1,172 @@ + + + Chips + + +
+
+ + + + + + + Basic + + + + One fish + Two fish + Accent fish + Warn fish + + + +
+ +
+ + + + + + + Avatar + + + + + Photo of a Shiba Inu + Anderson + + + Photo of a Shiba Inu + Monty + + + Photo of a Shiba Inu + Mathew + + + + +
+ +
+ + + + + + + Drag n Drop + + + + @for (vegetable of vegetables(); track vegetable.name) { + {{ + vegetable.name + }} + } + + + +
+ +
+ + + + + + Stacked + + + + @for(chip of availableColors; track chip.color) { + + {{ chip.name }} + + } + + + +
+ +
+ + + + + + + Input + + + + Favorite Fruits + + @for(fruit of fruits; track fruit.name) { + + {{ fruit.name }} + + + } + + + + + + +
+ +
+ + + + + + + Form Control + + +
+ + +
+ + Video keywords + + @for (keyword of keywords(); track keyword) { + + {{ keyword }} + + + } + + + + +

+ The following keywords are entered: + {{ formControl.value }} +

+
+
+
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.scss b/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.scss new file mode 100644 index 0000000..10964e6 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.scss @@ -0,0 +1,7 @@ +.example-box.cdk-drag-animating { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.example-chip .cdk-drop-list-dragging { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} \ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.ts b/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.ts new file mode 100644 index 0000000..426259b --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/chips/chips.component.ts @@ -0,0 +1,161 @@ +import { COMMA, ENTER } from '@angular/cdk/keycodes'; +import { ThemePalette } from '@angular/material/core'; +import { + ChangeDetectionStrategy, + Component, + inject, + signal, +} from '@angular/core'; +import { + CdkDrag, + CdkDragDrop, + CdkDropList, + moveItemInArray, +} from '@angular/cdk/drag-drop'; +import { MatCardModule } from '@angular/material/card'; +import { + MatChipEditedEvent, + MatChipInputEvent, + MatChipsModule, +} from '@angular/material/chips'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { LiveAnnouncer } from '@angular/cdk/a11y'; +import { MatButtonModule } from '@angular/material/button'; + +export interface ChipColor { + name: string; + color: ThemePalette; +} + +export interface Fruit { + name: string; +} + +export interface Vegetable { + name: string; +} + +@Component({ + selector: 'app-chips', + templateUrl: './chips.component.html', + styleUrls: ['./chips.component.scss'], + imports: [ + MatFormFieldModule, + MatChipsModule, + MatIconModule, + MatCardModule, + CdkDropList, + CdkDrag, + FormsModule, + ReactiveFormsModule, + MatButtonModule + ], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppChipsComponent { + // drag n drop + readonly vegetables = signal([ + { name: 'apple' }, + { name: 'banana' }, + { name: 'strawberry' }, + { name: 'orange' }, + { name: 'kiwi' }, + { name: 'cherry' }, + ]); + + drop(event: CdkDragDrop) { + this.vegetables.update((vegetables) => { + moveItemInArray(vegetables, event.previousIndex, event.currentIndex); + return [...vegetables]; + }); + } + + // + // Stacked + // + availableColors: ChipColor[] = [ + { name: 'Primary', color: 'primary' }, + { name: 'Accent', color: 'accent' }, + { name: 'Warn', color: 'warn' }, + ]; + + // + // chips with input + // + addOnBlur = true; + readonly separatorKeysCodes = [ENTER, COMMA] as const; + fruits: Fruit[] = [{ name: 'Lemon' }, { name: 'Lime' }, { name: 'Apple' }]; + + add(event: MatChipInputEvent): void { + const value = (event.value || '').trim(); + + // Add our fruit + if (value) { + this.fruits.push({ name: value }); + } + + // Clear the input value + event.chipInput!.clear(); + } + + remove(fruit: Fruit): void { + const index = this.fruits.indexOf(fruit); + + if (index >= 0) { + this.fruits.splice(index, 1); + } + } + + edit(fruit: Fruit, event: MatChipEditedEvent) { + const value = event.value.trim(); + + // Remove fruit if it no longer has a name + if (!value) { + this.remove(fruit); + return; + } + + // Edit existing fruit + const index = this.fruits.indexOf(fruit); + if (index >= 0) { + this.fruits[index].name = value; + } + } + + // form control + + readonly keywords = signal(['angular', 'how-to', 'tutorial', 'accessibility']); + readonly formControl = new FormControl(['angular']); + + announcer = inject(LiveAnnouncer); + + removeKeyword(keyword: string) { + this.keywords.update(keywords => { + const index = keywords.indexOf(keyword); + if (index < 0) { + return keywords; + } + + keywords.splice(index, 1); + this.announcer.announce(`removed ${keyword}`); + return [...keywords]; + }); + } + + addForm(event: MatChipInputEvent): void { + const value = (event.value || '').trim(); + + // Add our keyword + if (value) { + this.keywords.update(keywords => [...keywords, value]); + } + + // Clear the input value + event.chipInput!.clear(); + } +} +function isDragDrop(object: any): object is CdkDragDrop { + return 'previousIndex' in object; +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/forms/forms.component.html b/Web/themes/modernize/src/app/pages/ui-components/forms/forms.component.html new file mode 100644 index 0000000..02d90a3 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/forms/forms.component.html @@ -0,0 +1,73 @@ + + + Form + + +
+
+
+ + Your Name + + + +
+
+ Country + + + @for(option of country; track option.value) { + {{ + option.viewValue + }} + } + + +
+
+ + Email + + + +
+
+ State + + + @for(option of state; track option.value) { + {{ + option.viewValue + }} + } + + +
+
+ + Password + + + +
+
+ City + + + @for(option of city; track option.value) { + {{ + option.viewValue + }} + } + + +
+
+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/forms/forms.component.ts b/Web/themes/modernize/src/app/pages/ui-components/forms/forms.component.ts new file mode 100644 index 0000000..017036b --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/forms/forms.component.ts @@ -0,0 +1,58 @@ +import { Component } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatSelectModule } from '@angular/material/select'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatCardModule } from '@angular/material/card'; +import { MatInputModule } from '@angular/material/input'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatRadioModule } from '@angular/material/radio'; + +interface Food { + value: string; + viewValue: string; +} + +@Component({ + selector: 'app-forms', + imports: [ + MatFormFieldModule, + MatSelectModule, + FormsModule, + ReactiveFormsModule, + MatRadioModule, + MatButtonModule, + MatCardModule, + MatInputModule, + MatCheckboxModule, + ], + templateUrl: './forms.component.html', +}) +export class AppFormsComponent { + country: Food[] = [ + { value: 'steak-0', viewValue: 'USA' }, + { value: 'pizza-1', viewValue: 'India' }, + { value: 'tacos-2', viewValue: 'France' }, + { value: 'tacos-3', viewValue: 'UK' }, + ]; + + selectedCountry = this.country[2].value; + + city: Food[] = [ + { value: 'steak-0', viewValue: 'Mexico' }, + { value: 'pizza-1', viewValue: 'Mumbai' }, + { value: 'tacos-2', viewValue: 'Tokyo' }, + { value: 'tacos-3', viewValue: 'New York' }, + ]; + + selectedCity = this.city[1].value; + + state: Food[] = [ + { value: 'steak-0', viewValue: 'Cuba' }, + { value: 'pizza-1', viewValue: 'Djibouti' }, + { value: 'tacos-2', viewValue: 'Bulgaria' }, + { value: 'tacos-3', viewValue: 'Cabo Verde' }, + ]; + + selectedState = this.state[3].value; +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/lists/lists.component.html b/Web/themes/modernize/src/app/pages/ui-components/lists/lists.component.html new file mode 100644 index 0000000..5de1028 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/lists/lists.component.html @@ -0,0 +1,197 @@ + + + Lists + + +
+
+ + + + + + Basic + + + + Item 1 + Item 2 + Item 3 + + + +
+ +
+ + + + + + Two Line + + + + + Title + Second line + + + Title + Second line + + + + +
+ +
+ + + + + + Three Line + + + + + Title + Second line + Third line + + + Title + Second line. This line will truncate. + Third line + + + + +
+ +
+ + + + + + Three Line with Text wrapping + + + + + Title + Secondary line that will wrap because the list lines is + explicitly set to 3 lines. Text inside of a `matListItemTitle` + or `matListItemLine` will never wrap. + + + + Title + Secondary line that will wrap because the list lines is + explicitly set to 3 lines. Text inside of a `matListItemTitle` + or `matListItemLine` will never wrap. + + + + + +
+ +
+ + + + + + List with Selection + + + + @for(shoe of typesOfShoes; track shoe) { + + {{ shoe }} + + } + + +

+ Options selected: {{ shoes.selectedOptions.selected.length }} +

+
+
+
+ +
+ + + + + + List with single Selection + + + + @for(shoe of typesOfShoes; track shoe) { + + {{ shoe }} + + } + + +

+ Option selected: + {{ + shoes2.selectedOptions.hasValue() + ? shoes2.selectedOptions.selected[0].value + : "None" + }} +

+
+
+
+ +
+ + + + + + List with sections + + + +
Folders
+ @for(folder of folders; track folder.name) { + + folder +
+ {{ folder.name }} +
+
+ {{ folder.updated | date }} +
+
+ } + + +
Notes
+ @for(note of notes; track note.name) { + + note +
+ {{ note.name }} +
+
+ {{ note.updated | date }} +
+
+ } +
+
+
+
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/lists/lists.component.ts b/Web/themes/modernize/src/app/pages/ui-components/lists/lists.component.ts new file mode 100644 index 0000000..f4b6b6d --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/lists/lists.component.ts @@ -0,0 +1,48 @@ +import { Component } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; +import { MatListModule } from '@angular/material/list'; +import {MatIconModule} from '@angular/material/icon'; +import {DatePipe} from '@angular/common'; +import { MaterialModule } from 'src/app/material.module'; + + +export interface Section { + name: string; + updated: Date; +} + +@Component({ + selector: 'app-lists', + imports: [MatListModule, MatCardModule, DatePipe,MatIconModule, MaterialModule ], + templateUrl: './lists.component.html', +}) +export class AppListsComponent { + constructor() {} + + typesOfShoes: string[] = ['Loafers', 'Sneakers']; + + folders: Section[] = [ + { + name: 'Photos', + updated: new Date('1/1/25'), + }, + { + name: 'Recipes', + updated: new Date('1/17/25'), + }, + { + name: 'Work', + updated: new Date('1/28/25'), + }, + ]; + notes: Section[] = [ + { + name: 'Vacation Itinerary', + updated: new Date('2/20/25'), + }, + { + name: 'Kitchen Remodel', + updated: new Date('1/18/25'), + }, + ]; +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/menu/menu.component.html b/Web/themes/modernize/src/app/pages/ui-components/menu/menu.component.html new file mode 100644 index 0000000..111be94 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/menu/menu.component.html @@ -0,0 +1,166 @@ + + + Menu + + +
+
+ + + Basic + + + + + + + + + +
+
+ + + with Icons + + + + + + + + + + +
+
+ + + Nested Menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + Positions + + +
+
+ + + + + +
+
+ + + + + +
+
+ + + + + +
+
+ + + + + +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/menu/menu.component.ts b/Web/themes/modernize/src/app/pages/ui-components/menu/menu.component.ts new file mode 100644 index 0000000..ec8a863 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/menu/menu.component.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenuModule } from '@angular/material/menu'; +import { TablerIconsModule } from 'angular-tabler-icons'; + +@Component({ + selector: 'app-menu', + imports: [MatCardModule, MatMenuModule, MatIconModule, TablerIconsModule, MatButtonModule], + templateUrl: './menu.component.html', +}) +export class AppMenuComponent { + constructor() {} +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/tables/tables.component.html b/Web/themes/modernize/src/app/pages/ui-components/tables/tables.component.html new file mode 100644 index 0000000..910bff3 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/tables/tables.component.html @@ -0,0 +1,102 @@ + + + Table + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Product + +
+ users +
+
+ {{ element.uname }} +
+
+
+
+ Payment + + @if(element.budget >= 160) { +
+ ${{ element.budget }} / 499 +
+ Full paid + + } @else if(element.budget > 119) { +
+ ${{ element.budget }} / 499 +
+ Partially paid + + } @else if(element.budget < 100) {
+ ${{ element.budget }} / 499 +
+ Cancelled + + } +
+ Status + + @if(element.priority == 'cancelled') { + + {{ element.priority | titlecase }} + + } @if(element.priority == 'rejected') { + + {{ element.priority | titlecase }} + + } @if(element.priority == 'confirmed') { + + {{ element.priority | titlecase }} + + } + + + + + + + +
+
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/tables/tables.component.ts b/Web/themes/modernize/src/app/pages/ui-components/tables/tables.component.ts new file mode 100644 index 0000000..911b254 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/tables/tables.component.ts @@ -0,0 +1,67 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; +import { MatTableModule } from '@angular/material/table'; +import { MaterialModule } from 'src/app/material.module'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatButtonModule } from '@angular/material/button'; + +// table 1 +export interface productsData { + id: number; + imagePath: string; + uname: string; + budget: number; + priority: string; +} + +const PRODUCT_DATA: productsData[] = [ + { + id: 1, + imagePath: 'assets/images/products/product-1.png', + uname: 'iPhone 13 pro max-Pacific Blue-128GB storage', + budget: 180, + priority: 'confirmed', + }, + { + id: 2, + imagePath: 'assets/images/products/product-2.png', + uname: 'Apple MacBook Pro 13 inch-M1-8/256GB-space', + budget: 90, + priority: 'cancelled', + }, + { + id: 3, + imagePath: 'assets/images/products/product-3.png', + uname: 'PlayStation 5 DualSense Wireless Controller', + budget: 120, + priority: 'rejected', + }, + { + id: 4, + imagePath: 'assets/images/products/product-4.png', + uname: 'Amazon Basics Mesh, Mid-Back, Swivel Office', + budget: 160, + priority: 'confirmed', + }, +]; + +@Component({ + selector: 'app-tables', + imports: [ + MatTableModule, + CommonModule, + MatCardModule, + MaterialModule, + MatIconModule, + MatMenuModule, + MatButtonModule, + ], + templateUrl: './tables.component.html', +}) +export class AppTablesComponent { + // table 1 + displayedColumns1: string[] = ['assigned', 'name', 'priority', 'budget']; + dataSource1 = PRODUCT_DATA; +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/tooltips/tooltips.component.html b/Web/themes/modernize/src/app/pages/ui-components/tooltips/tooltips.component.html new file mode 100644 index 0000000..c5fc9c2 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/tooltips/tooltips.component.html @@ -0,0 +1,128 @@ + + + Tooltips + + +
+
+ + + Basic + + + + + +
+
+ + + Uppercase + + + + + +
+
+ + + Disabled on click + + + + + + Tooltip disabled + + + +
+ +
+ + + Position + + + + + + + + +
+ +
+ + + Show and Hide + + +
+
+ + Show delay + + milliseconds + +
+
+ + Hide delay + + milliseconds + +
+
+ +
+
+
+
+
+ +
+ + + Change Message + + + + Tooltip message + + + + + + +
+ +
+
+
\ No newline at end of file diff --git a/Web/themes/modernize/src/app/pages/ui-components/tooltips/tooltips.component.ts b/Web/themes/modernize/src/app/pages/ui-components/tooltips/tooltips.component.ts new file mode 100644 index 0000000..0fd51a1 --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/tooltips/tooltips.component.ts @@ -0,0 +1,33 @@ +import { Component } from '@angular/core'; +import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {MatTooltipModule} from '@angular/material/tooltip'; +import {MatButtonModule} from '@angular/material/button'; +import {MatSelectModule} from '@angular/material/select'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import { MatCardModule } from '@angular/material/card'; +import { MatInputModule } from '@angular/material/input'; +import { MatCheckboxModule } from '@angular/material/checkbox'; + +@Component({ + selector: 'app-tooltips', + imports: [ + MatFormFieldModule, + MatSelectModule, + FormsModule, + ReactiveFormsModule, + MatButtonModule, + MatTooltipModule, MatCardModule, MatInputModule, MatCheckboxModule + ], + templateUrl: './tooltips.component.html', +}) +export class AppTooltipsComponent { + // disabled + disabled = new FormControl(false); + + // show and hide + showDelay = new FormControl(1000); + hideDelay2 = new FormControl(2000); + + // change message + message = new FormControl('Info about the action'); +} diff --git a/Web/themes/modernize/src/app/pages/ui-components/ui-components.routes.ts b/Web/themes/modernize/src/app/pages/ui-components/ui-components.routes.ts new file mode 100644 index 0000000..ffe793c --- /dev/null +++ b/Web/themes/modernize/src/app/pages/ui-components/ui-components.routes.ts @@ -0,0 +1,46 @@ +import { Routes } from '@angular/router'; + +// ui +import { AppBadgeComponent } from './badge/badge.component'; +import { AppChipsComponent } from './chips/chips.component'; +import { AppListsComponent } from './lists/lists.component'; +import { AppMenuComponent } from './menu/menu.component'; +import { AppTooltipsComponent } from './tooltips/tooltips.component'; +import { AppFormsComponent } from './forms/forms.component'; +import { AppTablesComponent } from './tables/tables.component'; + +export const UiComponentsRoutes: Routes = [ + { + path: '', + children: [ + { + path: 'badge', + component: AppBadgeComponent, + }, + { + path: 'chips', + component: AppChipsComponent, + }, + { + path: 'lists', + component: AppListsComponent, + }, + { + path: 'menu', + component: AppMenuComponent, + }, + { + path: 'tooltips', + component: AppTooltipsComponent, + }, + { + path: 'forms', + component: AppFormsComponent, + }, + { + path: 'tables', + component: AppTablesComponent, + }, + ], + }, +]; diff --git a/Web/themes/modernize/src/app/pipe/filter.pipe.ts b/Web/themes/modernize/src/app/pipe/filter.pipe.ts new file mode 100644 index 0000000..207702b --- /dev/null +++ b/Web/themes/modernize/src/app/pipe/filter.pipe.ts @@ -0,0 +1,18 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ name: 'appFilter', standalone: true, pure: true }) +export class FilterPipe implements PipeTransform { + transform(items: any[], searchText: string): any[] { + if (!items) { + return []; + } + if (!searchText) { + return items; + } + searchText = searchText.toLocaleLowerCase(); + + return items.filter((it) => { + return it.displayName.toLocaleLowerCase().includes(searchText); + }); + } +} diff --git a/Web/themes/modernize/src/app/services/core.service.ts b/Web/themes/modernize/src/app/services/core.service.ts new file mode 100644 index 0000000..2aef7db --- /dev/null +++ b/Web/themes/modernize/src/app/services/core.service.ts @@ -0,0 +1,21 @@ +import { Injectable, signal } from '@angular/core'; +import { AppSettings, defaults } from '../config'; + +@Injectable({ + providedIn: 'root', +}) +export class CoreService { + private optionsSignal = signal(defaults); + + getOptions() { + return this.optionsSignal(); + } + + setOptions(options: Partial) { + this.optionsSignal.update((current) => ({ + ...current, + ...options, + })); + } + +} diff --git a/Web/themes/modernize/src/app/services/nav.service.ts b/Web/themes/modernize/src/app/services/nav.service.ts new file mode 100644 index 0000000..93d7336 --- /dev/null +++ b/Web/themes/modernize/src/app/services/nav.service.ts @@ -0,0 +1,17 @@ +import { Injectable, signal } from '@angular/core'; +import { Event, NavigationEnd, Router } from '@angular/router'; + +@Injectable({ providedIn: 'root' }) +export class NavService { + showClass: any = false; + + public currentUrl = signal(undefined); + + constructor(private router: Router) { + this.router.events.subscribe((event: Event) => { + if (event instanceof NavigationEnd) { + this.currentUrl.set(event.urlAfterRedirects); + } + }); + } +} diff --git a/Web/themes/modernize/src/assets/.gitkeep b/Web/themes/modernize/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Web/themes/modernize/src/assets/i18n/de.json b/Web/themes/modernize/src/assets/i18n/de.json new file mode 100644 index 0000000..b00d7bf --- /dev/null +++ b/Web/themes/modernize/src/assets/i18n/de.json @@ -0,0 +1,7 @@ +{ + "Starter": "Menüebene", + "Menu Level": "Menüebene", + "Menu 1": "Menü 1", + "Menu 2": "Menü 2", + "Disabled": "Behinderte" +} diff --git a/Web/themes/modernize/src/assets/i18n/en.json b/Web/themes/modernize/src/assets/i18n/en.json new file mode 100644 index 0000000..2911b85 --- /dev/null +++ b/Web/themes/modernize/src/assets/i18n/en.json @@ -0,0 +1,7 @@ +{ + "Starter": "Starter", + "Menu Level": "Menu Level", + "Menu 1": "Menu 1", + "Menu 2": "Menu 2", + "Disabled": "Disabled" +} diff --git a/Web/themes/modernize/src/assets/i18n/es.json b/Web/themes/modernize/src/assets/i18n/es.json new file mode 100644 index 0000000..949bd8b --- /dev/null +++ b/Web/themes/modernize/src/assets/i18n/es.json @@ -0,0 +1,7 @@ +{ + "Starter": "Analítica", + "Menu Level": "Nível do menu", + "Menu 1": "Menu 1", + "Menu 2": "Menu 2", + "Disabled": "Desabilitada" +} diff --git a/Web/themes/modernize/src/assets/i18n/fr.json b/Web/themes/modernize/src/assets/i18n/fr.json new file mode 100644 index 0000000..5700085 --- /dev/null +++ b/Web/themes/modernize/src/assets/i18n/fr.json @@ -0,0 +1,7 @@ +{ + "Starter": "Analytique", + "Menu Level": "Niveau menu", + "Menu 1": "Menu 1", + "Menu 2": "Menu 2", + "Disabled": "Désactivé" +} diff --git a/Web/themes/modernize/src/assets/images/backgrounds/rocket.png b/Web/themes/modernize/src/assets/images/backgrounds/rocket.png new file mode 100644 index 0000000..5ee44a9 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/backgrounds/rocket.png differ diff --git a/Web/themes/modernize/src/assets/images/logos/dark-logo.svg b/Web/themes/modernize/src/assets/images/logos/dark-logo.svg new file mode 100644 index 0000000..c0e674b --- /dev/null +++ b/Web/themes/modernize/src/assets/images/logos/dark-logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Web/themes/modernize/src/assets/images/logos/logo-adminmart.svg b/Web/themes/modernize/src/assets/images/logos/logo-adminmart.svg new file mode 100644 index 0000000..fa68b2d --- /dev/null +++ b/Web/themes/modernize/src/assets/images/logos/logo-adminmart.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/modernize/src/assets/images/products/product-1.png b/Web/themes/modernize/src/assets/images/products/product-1.png new file mode 100644 index 0000000..bd10795 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/product-1.png differ diff --git a/Web/themes/modernize/src/assets/images/products/product-2.png b/Web/themes/modernize/src/assets/images/products/product-2.png new file mode 100644 index 0000000..6d4efa6 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/product-2.png differ diff --git a/Web/themes/modernize/src/assets/images/products/product-3.png b/Web/themes/modernize/src/assets/images/products/product-3.png new file mode 100644 index 0000000..0d05345 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/product-3.png differ diff --git a/Web/themes/modernize/src/assets/images/products/product-4.png b/Web/themes/modernize/src/assets/images/products/product-4.png new file mode 100644 index 0000000..abfccf9 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/product-4.png differ diff --git a/Web/themes/modernize/src/assets/images/products/s11.jpg b/Web/themes/modernize/src/assets/images/products/s11.jpg new file mode 100644 index 0000000..8980089 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/s11.jpg differ diff --git a/Web/themes/modernize/src/assets/images/products/s4.jpg b/Web/themes/modernize/src/assets/images/products/s4.jpg new file mode 100644 index 0000000..803e397 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/s4.jpg differ diff --git a/Web/themes/modernize/src/assets/images/products/s5.jpg b/Web/themes/modernize/src/assets/images/products/s5.jpg new file mode 100644 index 0000000..c40751b Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/s5.jpg differ diff --git a/Web/themes/modernize/src/assets/images/products/s6.jpg b/Web/themes/modernize/src/assets/images/products/s6.jpg new file mode 100644 index 0000000..3ca15a9 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/s6.jpg differ diff --git a/Web/themes/modernize/src/assets/images/products/s7.jpg b/Web/themes/modernize/src/assets/images/products/s7.jpg new file mode 100644 index 0000000..d819743 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/s7.jpg differ diff --git a/Web/themes/modernize/src/assets/images/products/s9.jpg b/Web/themes/modernize/src/assets/images/products/s9.jpg new file mode 100644 index 0000000..18c7623 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/products/s9.jpg differ diff --git a/Web/themes/modernize/src/assets/images/profile/user-1.jpg b/Web/themes/modernize/src/assets/images/profile/user-1.jpg new file mode 100644 index 0000000..e19df67 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/profile/user-1.jpg differ diff --git a/Web/themes/modernize/src/assets/images/profile/user-2.jpg b/Web/themes/modernize/src/assets/images/profile/user-2.jpg new file mode 100644 index 0000000..52d8f1f Binary files /dev/null and b/Web/themes/modernize/src/assets/images/profile/user-2.jpg differ diff --git a/Web/themes/modernize/src/assets/images/profile/user-3.jpg b/Web/themes/modernize/src/assets/images/profile/user-3.jpg new file mode 100644 index 0000000..2a541d7 Binary files /dev/null and b/Web/themes/modernize/src/assets/images/profile/user-3.jpg differ diff --git a/Web/themes/modernize/src/assets/images/profile/user-4.jpg b/Web/themes/modernize/src/assets/images/profile/user-4.jpg new file mode 100644 index 0000000..e9312df Binary files /dev/null and b/Web/themes/modernize/src/assets/images/profile/user-4.jpg differ diff --git a/Web/themes/modernize/src/assets/images/svgs/angular-cat-icon.svg b/Web/themes/modernize/src/assets/images/svgs/angular-cat-icon.svg new file mode 100644 index 0000000..9cb48f1 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/angular-cat-icon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Web/themes/modernize/src/assets/images/svgs/bt-cat-icon.svg b/Web/themes/modernize/src/assets/images/svgs/bt-cat-icon.svg new file mode 100644 index 0000000..2180b11 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/bt-cat-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Web/themes/modernize/src/assets/images/svgs/facebook-icon.svg b/Web/themes/modernize/src/assets/images/svgs/facebook-icon.svg new file mode 100644 index 0000000..c24d6ba --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/facebook-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/images/svgs/google-icon.svg b/Web/themes/modernize/src/assets/images/svgs/google-icon.svg new file mode 100644 index 0000000..1307b69 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/google-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/modernize/src/assets/images/svgs/next-cat-icon.svg b/Web/themes/modernize/src/assets/images/svgs/next-cat-icon.svg new file mode 100644 index 0000000..3560fc4 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/next-cat-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/modernize/src/assets/images/svgs/nuxt-cat-icon.svg b/Web/themes/modernize/src/assets/images/svgs/nuxt-cat-icon.svg new file mode 100644 index 0000000..0dee842 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/nuxt-cat-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/modernize/src/assets/images/svgs/react-cat-icon.svg b/Web/themes/modernize/src/assets/images/svgs/react-cat-icon.svg new file mode 100644 index 0000000..4137740 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/react-cat-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/modernize/src/assets/images/svgs/tailwindcss.svg b/Web/themes/modernize/src/assets/images/svgs/tailwindcss.svg new file mode 100644 index 0000000..480da41 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/tailwindcss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/images/svgs/vue-cat-icon.svg b/Web/themes/modernize/src/assets/images/svgs/vue-cat-icon.svg new file mode 100644 index 0000000..3a37d80 --- /dev/null +++ b/Web/themes/modernize/src/assets/images/svgs/vue-cat-icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Web/themes/modernize/src/assets/scss/_container.scss b/Web/themes/modernize/src/assets/scss/_container.scss new file mode 100644 index 0000000..d22372a --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/_container.scss @@ -0,0 +1,141 @@ +@use "variables" as *; + +*, +:after, +:before { + box-sizing: border-box; +} + +body { + font-family: $font-family; + line-height: 1.334rem; + overflow-x: hidden; + color: var(--mat-sys-on-background); +} + +.app-topstrip{ + position: fixed; + top: 0; + z-index: 10; +} + +.mainWrapper { + display: flex; + min-height: calc(100vh - 72px); + width: 100%; + flex: 1; + margin-top: 72px; +} + +@media (max-width: 991px){ + .mainWrapper{ + margin-top: 157px; + } +} + +@media (max-width: 767px){ + .mainWrapper{ + margin-top: 108px; + } +} + +.container { + max-width: 1200px; + padding-left: 24px; + padding-right: 24px; + margin: 0 auto; + + &.full-width { + display: flex; + align-items: center; + width: 100%; + } +} + +.pageWrapper { + padding: 24px; + min-height: calc(100vh - 70px); + + margin: 0 auto; + + &.maxWidth { + max-width: $boxedWidth; + } +} + +.w-100 { + width: 100%; +} + +.h-100 { + height: 100%; +} + +.shadow-none { + box-shadow: none !important; +} + +.rounded { + border-radius: $border-radius !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 25px !important; +} + +.overflow-hidden { + overflow: hidden; +} + +.text-decoration-none { + text-decoration: none; +} + +.position-relative { + position: relative; +} + +.table-responsive { + overflow-x: auto; + + td, + mat-cell { + white-space: nowrap; + padding: 16px; + } +} + +.op-5 { + opacity: 0.5; +} + +.cursor-pointer { + cursor: pointer; +} + +a { + color: var(--mat-sys-on-background); + + &:hover { + color: $primary; + } +} + +pre { + margin: 0; + white-space: nowrap; +} + +td.hljs-ln-line.hljs-ln-numbers { + padding-right: 10px; +} + +@media (min-width: 768px) { + html .flex-sm-row { + flex-direction: row !important; + } +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/_variables.scss b/Web/themes/modernize/src/assets/scss/_variables.scss new file mode 100644 index 0000000..79c6649 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/_variables.scss @@ -0,0 +1,44 @@ +@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap"); + +// font +$font-family: "Plus Jakarta Sans", sans-serif; + +// light color variable + +// Sidenav +$sidenav-desktop: 270px !default; +$sidenav-mini: 80px !default; +$header-height: 70px !default; + +//BorderColor +$borderColor: var(--mat-sys-outline-variant); +$borderformColor: var(--mat-sys-outline-variant); + +// custom +$primary: var(--mat-sys-primary); +$secondary: var(--mat-sys-secondary); +$accent: var(--mat-sys-secondary); +$error: var(--mat-sys-error); +$warning: #ffae1f; +$success: #13deb9; +$white: #ffffff; + +$light: var(--mat-sys-surface-bright); +$light-primary: var(--mat-sys-primary-fixed-dim); +$light-secondary: var(--mat-sys-secondary-fixed-dim); +$light-accent: var(--mat-sys-secondary-fixed-dim); +$light-error: var(--mat-sys-error-fixed-dim); +$light-warning: #ffad1f40; +$light-success: #13deb940; +$dark: #223742; + +// layout +$boxedWidth: 1200px; +$border-radius: 7px; + +$card-spacer: 24px; + +$text-color: var(--mat-sys-on-background); + +$dark-text-secondary: rgba(255, 255, 255, 0.67); +$dark-body-bg: #141a21; diff --git a/Web/themes/modernize/src/assets/scss/grid/_grid.scss b/Web/themes/modernize/src/assets/scss/grid/_grid.scss new file mode 100644 index 0000000..bfbd802 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/grid/_grid.scss @@ -0,0 +1,35 @@ +@use 'variables'; +@use 'mixins'; + +.row { + display: flex; + flex-wrap: wrap; + margin-right: variables.$grid-gutter * -.5; + margin-left: variables.$grid-gutter * -.5; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; + + > .col, + > [class*='col-'] { + padding-right: 0; + padding-left: 0; + } +} + +@include mixins.make-grid-columns(); + + +@each $breakpoint, $infix in variables.$breakpoint-infixs { + @if ($breakpoint== 'xsmall') { + @include mixins.loop-grid-columns(variables.$grid-columns, $infix); + } + + @else { + @include mixins.bp-gt($breakpoint) { + @include mixins.loop-grid-columns(variables.$grid-columns, $infix); + } + } +} diff --git a/Web/themes/modernize/src/assets/scss/grid/_mixins.scss b/Web/themes/modernize/src/assets/scss/grid/_mixins.scss new file mode 100644 index 0000000..dde3026 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/grid/_mixins.scss @@ -0,0 +1,79 @@ +@use 'sass:map'; +@use 'sass:math'; +@use 'variables'; + +@function bp($name, $breakpoints: variables.$breakpoints) { + $min: map.get($breakpoints, $name); + + @return $min; +} + +// Media of at least the minimum breakpoint width. +@mixin bp-gt($name, $breakpoints: variables.$breakpoints) { + $min: bp($name, $breakpoints); + + @if $min { + @media (min-width: $min) { + @content; + } + } + @else { + @content; + } +} + +// Media of at most the maximum breakpoint width. +@mixin bp-lt($name, $breakpoints: variables.$breakpoints) { + $max: bp($name, $breakpoints) - 1px; + + @if $max { + @media (max-width: $max) { + @content; + } + } + @else { + @content; + } +} + +@mixin make-grid-columns($i: 1, $list: '.col') { + @each $breakpoint, $infix in variables.$breakpoint-infixs { + $infix: if($infix == '', '', '-#{$infix}'); + + @if ($infix != '') { + $list: '#{$list}, .col#{$infix}'; + } + + @for $i from 1 through variables.$grid-columns { + $list: '#{$list}, .col#{$infix}-#{$i}'; + } + } + + #{$list} { + position: relative; + width: 100%; + padding-right: variables.$grid-gutter * .5; + padding-left: variables.$grid-gutter * .5; + } +} + +@mixin loop-grid-columns($columns: $grid-columns, $breakpoint-infix: '') { + $infix: if($breakpoint-infix == '', '', '-#{$breakpoint-infix}'); + + .col#{$infix} { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + @for $i from 1 through $columns { + .col#{$infix}-#{$i} { + flex: 0 0 math.percentage(math.div($i, $columns)); + max-width: math.percentage(math.div($i, $columns)); + } + + .offset#{$infix}-#{$i} { + margin-left: math.percentage(math.div($i, $columns)); + } + } +} diff --git a/Web/themes/modernize/src/assets/scss/grid/_variables.scss b/Web/themes/modernize/src/assets/scss/grid/_variables.scss new file mode 100644 index 0000000..2f3edbc --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/grid/_variables.scss @@ -0,0 +1,18 @@ +$grid-columns: 12 !default; +$grid-gutter: 30px !default; + +$breakpoints: ( + xsmall: 0, + small: 600px, + medium: 960px, + large: 1280px, + xlarge: 2100px +) !default; + +$breakpoint-infixs: ( + xsmall: '', + small: 'sm', + medium: 'md', + large: 'lg', + xlarge: 'xl' +) !default; \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_border-color.scss b/Web/themes/modernize/src/assets/scss/helpers/_border-color.scss new file mode 100644 index 0000000..86197ad --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_border-color.scss @@ -0,0 +1,18 @@ +@use "../variables" as *; +@use "sass:meta"; // Import meta module for working with keyword arguments + +// Mixin to dynamically generate classes based on provided colors +@mixin syntax-colors2($args2...) { + @each $name2, $color2 in meta.keywords($args2) { + html .border-#{$name2} { + border: 1px solid #{$color2} !important; + } + } +} + +// Including the mixin with variables and CSS variables +@include syntax-colors2($primary: var(--mat-sys-primary), + $secondary: var(--mat-sys-secondary), + $success: $success, + $warning: $warning, + $error: var(--mat-sys-error)); \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_border.scss b/Web/themes/modernize/src/assets/scss/helpers/_border.scss new file mode 100644 index 0000000..a1e0393 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_border.scss @@ -0,0 +1,32 @@ +@use 'variables'; + +$utilities: ( + 'border': ( + property: border, + class: b, + values: variables.$borders + ), + 'border-top': ( + property: border-top, + class: b-t, + values: variables.$borders + ), + 'border-bottom': ( + property: border-bottom, + class: b-b, + values: variables.$borders + ), + 'border-left': ( + property: border-left, + class: b-l, + values: variables.$borders + ), + 'border-right': ( + property: border-right, + class: b-r, + values: variables.$borders + ), + +); + + diff --git a/Web/themes/modernize/src/assets/scss/helpers/_color.scss b/Web/themes/modernize/src/assets/scss/helpers/_color.scss new file mode 100644 index 0000000..b84e70d --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_color.scss @@ -0,0 +1,38 @@ +@use "sass:meta"; +@use "../variables" as *; + +@mixin syntax-colors($args...) { + @each $name, $color in meta.keywords($args) { + html .bg-#{$name} { + background-color: $color !important; + } + + html .text-#{$name} { + color: $color !important; + } + } +} + +@include syntax-colors($primary: var(--mat-sys-primary), + $secondary: var(--mat-sys-secondary), + $success: $success, + $warning: $warning, + $error: var(--mat-sys-error), + $white: $white, + $light: $light, + $dark: $dark, + $light-error: var(--mat-sys-error-fixed-dim), + $light-secondary: var(--mat-sys-secondary-fixed-dim), + $light-success: $light-success, + $light-warning: $light-warning, + $light-primary: var(--mat-sys-primary-fixed-dim)); + +.fill-warning svg { + fill: $warning; + color: $warning; +} + +.fill-light svg { + fill: $light; + color: $light; +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_custom-flex.scss b/Web/themes/modernize/src/assets/scss/helpers/_custom-flex.scss new file mode 100644 index 0000000..d720790 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_custom-flex.scss @@ -0,0 +1,58 @@ +@media (min-width: 1200px) { + body { + .d-lg-flex { + display: flex !important; + } + + .text-lg-left { + text-align: left !important; + } + + .d-lg-none { + display: none !important; + } + .align-items-lg-center { + align-items: center !important; + } + } +} + +@media (min-width: 960px) { + .d-md-none { + display: none !important; + } +} + +@media (min-width: 768px) { + body { + .d-sm-flex { + display: flex !important; + } + } +} + +@media (max-width: 767px) { + .p-xs-6 { + padding: 0 6px !important; + } +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.flex-1-auto { + flex: 1 1 0%; +} + +.hstack { + display: flex; + flex-direction: row; + gap: 20px; +} + +@media (max-width: 767px) { + .hstack { + flex-direction: column; + } +} diff --git a/Web/themes/modernize/src/assets/scss/helpers/_display.scss b/Web/themes/modernize/src/assets/scss/helpers/_display.scss new file mode 100644 index 0000000..ae8250e --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_display.scss @@ -0,0 +1,8 @@ +@use "variables"; + +$utilities: ( + "display": (property: display, + class: d, + values: inline inline-block block grid table table-row table-cell flex inline-flex none, + ), +); \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_flexbox.scss b/Web/themes/modernize/src/assets/scss/helpers/_flexbox.scss new file mode 100644 index 0000000..d7d21d5 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_flexbox.scss @@ -0,0 +1,71 @@ +@use "variables"; + +$utilities: ( + "flex": (property: flex, + class: flex, + values: (fill: 1 1 auto, + ), + ), + "flex-direction": (property: flex-direction, + class: flex, + values: (row: row, + row-reverse: row-reverse, + col: column, + col-reverse: column-reverse, + ), + ), + "flex-grow": (property: flex-grow, + class: flex, + values: (grow-0: 0, + grow-1: 1, + ), + ), + "flex-shrink": (property: flex-shrink, + class: flex, + values: (shrink-0: 0, + shrink-1: 1, + ), + ), + "flex-wrap": (property: flex-wrap, + class: flex, + values: wrap nowrap wrap-reverse, + ), + "justify-content": (property: justify-content, + class: justify-content, + values: (start: flex-start, + end: flex-end, + center: center, + between: space-between, + around: space-around, + ), + ), + "align-content": (property: align-content, + class: align-content, + values: (start: flex-start, + end: flex-end, + center: center, + between: space-between, + around: space-around, + stretch: stretch, + ), + ), + "align-items": (property: align-items, + class: align-items, + values: (start: flex-start, + end: flex-end, + center: center, + baseline: baseline, + stretch: stretch, + ), + ), + "align-self": (property: align-self, + class: align-self, + values: (auto: auto, + start: flex-start, + end: flex-end, + center: center, + baseline: baseline, + stretch: stretch, + ), + ), +); \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_functions.scss b/Web/themes/modernize/src/assets/scss/helpers/_functions.scss new file mode 100644 index 0000000..1c7dd6c --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_functions.scss @@ -0,0 +1,25 @@ +@use "sass:map"; + +// It makes the value negative. +@function negativify-map($map) { + $result: (); + + @each $key, $value in $map { + @if $key !=0 { + $result: map.merge($result, ("-" + $key: (-$value))); + } + } + + @return $result; +} + +// It allows to combine multiple maps together. +@function map-collect($maps...) { + $collection: (); + + @each $map in $maps { + $collection: map.merge($collection, $map); + } + + @return $collection; +} diff --git a/Web/themes/modernize/src/assets/scss/helpers/_icon-size.scss b/Web/themes/modernize/src/assets/scss/helpers/_icon-size.scss new file mode 100644 index 0000000..e483077 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_icon-size.scss @@ -0,0 +1,15 @@ +@use "sass:meta"; + +$columns: 48; + +@mixin icon_size { + @for $i from 1 through $columns { + .icon-#{$i} { + height: #{$i}px !important; + width: #{$i}px !important; + line-height: #{$i + 8}px !important; + } + } +} + +@include icon_size; diff --git a/Web/themes/modernize/src/assets/scss/helpers/_index.scss b/Web/themes/modernize/src/assets/scss/helpers/_index.scss new file mode 100644 index 0000000..3ca9bce --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_index.scss @@ -0,0 +1,108 @@ +@use "sass:map"; +@use "sass:meta"; +@use "sass:list"; +@use "variables"; + +@use "functions"; +@use "flexbox"; +@use "display"; +@use "border"; +@use "text"; +@use "spacing"; +@use "rounded"; + +$utilities: functions.map-collect(variables.$utilities, + display.$utilities, + flexbox.$utilities, + spacing.$utilities, + border.$utilities, + rounded.$utilities, + text.$utilities); + +@each $key, $utility in $utilities { + $values: map.get($utility, values); + + // If the values are a list or string, convert it into a map + @if meta.type-of($values)=="string" or meta.type-of(list.nth($values, 1)) !="list" + + { + $values: list.zip($values, $values); + } + + $properties: map.get($utility, property); + $property-class-prefix: map.get($utility, class); + + // Utility class maybe empty, (e.g. with position class) + $property-class-prefix-hyphen: if($property-class-prefix =="", + $property-class-prefix, + $property-class-prefix + "-" + ); + + @each $class-modifier, $value in $values { + .#{$property-class-prefix-hyphen + $class-modifier} { + @each $property in $properties { + #{$property}: $value !important; + } + } + } +} + +$ltrutilities: functions.map-collect(spacing.$ltr); + +@each $key, $utility in $ltrutilities { + $values: map.get($utility, values); + + // If the values are a list or string, convert it into a map + @if meta.type-of($values)=="string" or meta.type-of(list.nth($values, 1)) !="list" + + { + $values: list.zip($values, $values); + } + + $properties: map.get($utility, property); + $property-class-prefix: map.get($utility, class); + + // Utility class maybe empty, (e.g. with position class) + $property-class-prefix-hyphen: if($property-class-prefix =="", + $property-class-prefix, + $property-class-prefix + "-" + ); + + @each $class-modifier, $value in $values { + [dir="ltr"] .#{$property-class-prefix-hyphen + $class-modifier} { + @each $property in $properties { + #{$property}: $value !important; + } + } + } +} + +$rtlutilities: functions.map-collect(spacing.$rtl); + +@each $key, $utility in $rtlutilities { + $values: map.get($utility, values); + + // If the values are a list or string, convert it into a map + @if meta.type-of($values)=="string" or meta.type-of(list.nth($values, 1)) !="list" + + { + $values: list.zip($values, $values); + } + + $properties: map.get($utility, property); + $property-class-prefix: map.get($utility, class); + + // Utility class maybe empty, (e.g. with position class) + $property-class-prefix-hyphen: if($property-class-prefix =="", + $property-class-prefix, + $property-class-prefix + "-" + ); + + @each $class-modifier, $value in $values { + [dir="rtl"] .#{$property-class-prefix-hyphen + $class-modifier} { + @each $property in $properties { + #{$property}: $value !important; + } + } + } +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_rounded.scss b/Web/themes/modernize/src/assets/scss/helpers/_rounded.scss new file mode 100644 index 0000000..9bbf013 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_rounded.scss @@ -0,0 +1,40 @@ +@use "variables"; + +$utilities: ( + "border-radius": (property: border-radius, + class: rounded, + values: variables.$radius, + ), + "border-top-left-radius": (property: border-top-left-radius, + class: r-t-l, + values: variables.$radius, + ), + "border-top-right-radius": (property: border-top-right-radius, + class: r-t-r, + values: variables.$radius, + ), + "border-bottom-right-radius": (property: border-bottom-right-radius, + class: r-b-r, + values: variables.$radius, + ), + "border-bottom-left-radius": (property: border-bottom-left-radius, + class: r-b-l, + values: variables.$radius, + ), + "border-top-radius": (property: border-top-left-radius border-top-right-radius, + class: r-t, + values: variables.$radius, + ), + "border-bottom-radius": (property: border-bottom-left-radius border-bottom-right-radius, + class: r-b, + values: variables.$radius, + ), + "border-left-radius": (property: border-top-left-radius border-bottom-left-radius, + class: r-l, + values: variables.$radius, + ), + "border-right-radius": (property: border-top-right-radius border-bottom-right-radius, + class: r-r, + values: variables.$radius, + ), +); \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_spacing.scss b/Web/themes/modernize/src/assets/scss/helpers/_spacing.scss new file mode 100644 index 0000000..6d8a8f3 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_spacing.scss @@ -0,0 +1,136 @@ +@use "sass:map"; +@use "variables"; + +$utilities: ( + "margin": (property: margin, + class: m, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "margin-x": (property: margin-left margin-right, + class: m-x, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "margin-y": (property: margin-top margin-bottom, + class: m-y, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "margin-top": (property: margin-top, + class: m-t, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + + "margin-bottom": (property: margin-bottom, + class: m-b, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + + "negative-margin": (property: margin, + class: m, + values: variables.$negative-spacers, + ), + "negative-margin-x": (property: margin-left margin-right, + class: m-x, + values: variables.$negative-spacers, + ), + "negative-margin-y": (property: margin-top margin-bottom, + class: m-y, + values: variables.$negative-spacers, + ), + "negative-margin-top": (property: margin-top, + class: m-t, + values: variables.$negative-spacers, + ), + "negative-margin-right": (property: margin-right, + class: m-r, + values: variables.$negative-spacers, + ), + "negative-margin-bottom": (property: margin-bottom, + class: m-b, + values: variables.$negative-spacers, + ), + "negative-margin-left": (property: margin-left, + class: m-l, + values: variables.$negative-spacers, + ), + "padding": (property: padding, + class: p, + values: variables.$spacers, + ), + "padding-x": (property: padding-left padding-right, + class: p-x, + values: variables.$spacers, + ), + "padding-y": (property: padding-top padding-bottom, + class: p-y, + values: variables.$spacers, + ), + "padding-top": (property: padding-top, + class: p-t, + values: variables.$spacers, + ), + + "padding-bottom": (property: padding-bottom, + class: p-b, + values: variables.$spacers, + ), + "gap": (property: gap, + class: gap, + values: variables.$spacers, + ), +); + +$ltr: ( + "margin-right": (property: margin-right, + class: m-r, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "margin-left": (property: margin-left, + class: m-l, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "padding-left": (property: padding-left, + class: p-l, + values: variables.$spacers, + ), + "padding-right": (property: padding-right, + class: p-r, + values: variables.$spacers, + ), +); + +$rtl: ( + "margin-right": (property: margin-left, + class: m-r, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "margin-left": (property: margin-right, + class: m-l, + values: map.merge(variables.$spacers, + (auto: auto, + )), + ), + "padding-left": (property: padding-right, + class: p-l, + values: variables.$spacers, + ), + "padding-right": (property: padding-left, + class: p-r, + values: variables.$spacers, + ), +); \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/helpers/_text.scss b/Web/themes/modernize/src/assets/scss/helpers/_text.scss new file mode 100644 index 0000000..5fef9f5 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_text.scss @@ -0,0 +1,80 @@ +@use "sass:map"; +@use "variables"; + +$utilities: ( + "font-size": ( + property: font-size, + class: f-s, + values: variables.$font-sizes, + ), + "font-weight": ( + property: font-weight, + class: f-w, + values: variables.$font-wieghts, + ), + "font-style": ( + property: font-style, + class: font, + values: italic normal, + ), + "text-align": ( + property: text-align, + class: text, + values: center right left, + ), + "text-decoration": ( + property: text-decoration, + class: text, + values: none underline line-through, + ), + "text-transform": ( + property: text-transform, + class: text, + values: capitalize uppercase lowercase, + ), + "white-space": ( + property: white-space, + class: text, + values: ( + wrap: normal, + nowrap: nowrap, + ), + ), + "word-wrap": ( + property: word-wrap word-break, + class: text, + values: ( + break: break-word, + ), + ), + "text-overflow": ( + property: text-overflow, + class: text, + values: ellipsis, + ), + "text-color": ( + property: color, + class: text, + values: ( + reset: inherit, + current: currentColor, + ), + ), +); + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0px; +} + +.lh-lg { + line-height: 36px !important; +} + +.lh-sm { + line-height: 20px !important; +} diff --git a/Web/themes/modernize/src/assets/scss/helpers/_variables.scss b/Web/themes/modernize/src/assets/scss/helpers/_variables.scss new file mode 100644 index 0000000..b0d0806 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/helpers/_variables.scss @@ -0,0 +1,94 @@ +@use "functions" as *; + +// Utility Map + +$utilities: () !default; + +// Spacing + +$spacer: 16px !default; +$spacers: ( + 0: 0, + 2: $spacer * 0.125, + 4: $spacer * 0.25, + 5: 5px, + 6: 7px, + 8: $spacer * 0.5, + 10: 10px, + 12: $spacer * 0.75, + 14: 14px, + 15: 15px, + 16: $spacer, + 20: 20px, + 24: $spacer * 1.5, + 30: 30px, + 32: $spacer * 2, + 48: $spacer * 3, +) !default; +$negative-spacers: negativify-map($spacers) !default; + +// Border + +$border-color: var(--mat-sys-outline-variant) !default; +$borders: ( + 0: 0, + 1: 1px solid $border-color, + 2: 2px solid $border-color, + 4: 4px solid $border-color, + 8: 8px solid $border-color, +) !default; + +// Border radius + +$radius-base: 7px !default; +$radius: ( + 0: 0, + 7: $radius-base, + 8: $radius-base * 2, + 12: $radius-base * 3, + 16: $radius-base * 4, + full: 9999px, +) !default; + +// Text + +$font-wieghts: ( + 100: 100, + 200: 200, + 300: 300, + 400: 400, + 500: 500, + 600: 600, + 700: 700, + 800: 800, + 900: 900, +) !default; + +$font-sizes: ( + 0: 0, + 10: 10px, + 12: 12px, + 14: 14px, + 15: 15px, + 16: 16px, + 18: 18px, + 20: 20px, + 21: 21px, + 24: 24px, + 30: 30px, +) !default; + +// Sizing + +$sizes: ( + 0: 0, + 20: 20%, + 25: 25%, + 40: 40%, + 50: 50%, + 60: 60%, + 75: 75%, + 80: 80%, + full: 100%, + auto: auto, +) !default; diff --git a/Web/themes/modernize/src/assets/scss/layouts/_header.scss b/Web/themes/modernize/src/assets/scss/layouts/_header.scss new file mode 100644 index 0000000..779fd7e --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/layouts/_header.scss @@ -0,0 +1,115 @@ +@use "../variables" as *; + +html .topbar { + position: sticky; + top: 0; + z-index: 9; + height: $header-height; +} + +.topbar-dd { + min-width: 220px !important; +} + +.upgrade-bg { + position: absolute; + top: 0px; + right: 0px; + height: 100%; +} + +.object-cover { + object-fit: cover; +} + +.profile-dd { + margin-top: -5px; + margin-left: -5px; +} + + + + +// App Topstrip + +.app-topstrip { + position: fixed; + top: 0; + z-index: 12; + display: flex; + background: linear-gradient(90deg, #001138 0%, #001E66 100%); + + @media (max-width: 991px) { + flex-direction: column; + gap: 16px; + } + + .topstrip-right { + display: flex; + + @media (max-width: 991px) { + flex-direction: column; + gap: 16px; + } + } + + .topstrip-right-inner { + display: flex; + + @media (max-width: 767px) { + flex-direction: column; + gap: 16px; + } + } + + .linkbar { + border-left: 1px solid rgba(255, 255, 255, 0.4); + padding-left: 20px; + } + + .text-linear-gradient { + letter-spacing: 0.06em; + text-transform: uppercase; + background: linear-gradient(90deg, #FFFFFF 0%, #3772FF 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + text-fill-color: transparent; + } + + .live-preview-drop { + border: 1px solid rgba(255, 255, 255, 0.4); + border-radius: 4px; + + &:hover, + &:active { + background-color: #3772FF; + } + + } + + .get-pro-btn { + background-color: #3772FF; + border-radius: 4px; + + &:hover { + background-color: #5D87FF; + } + } + + .link-hover { + height: auto; + + &:hover, + &:active { + color: #5D87FF !important; + + .mat-mdc-button-persistent-ripple { + &::before { + opacity: 0 !important; + } + } + } + } + +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/layouts/_layouts.scss b/Web/themes/modernize/src/assets/scss/layouts/_layouts.scss new file mode 100644 index 0000000..3b26ca7 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/layouts/_layouts.scss @@ -0,0 +1,2 @@ +@use "sidebar"; +@use "header"; \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/layouts/_sidebar.scss b/Web/themes/modernize/src/assets/scss/layouts/_sidebar.scss new file mode 100644 index 0000000..486924c --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/layouts/_sidebar.scss @@ -0,0 +1,96 @@ +@use "../variables" as *; + +.mat-drawer.sidebarNav { + width: $sidenav-desktop; + flex-shrink: 0; + transition: swift-ease-out(width); + position: absolute; + overflow-x: hidden; + border-right: 1px solid $borderColor; + border-radius: 0px !important; +} + +.branding { + padding: 20px; +} + +.sidebar-list { + &.mdc-list { + padding: 0 24px; + + .mdc-list-group__subheader { + margin: 12px 0; + text-transform: uppercase; + font-size: 0.75rem; + font-weight: 700; + margin-top: 24px; + } + + .menu-list-item { + height: 45px; + padding: 8px 10px !important; + margin-bottom: 2px; + + &:before, + &:focus { + z-index: -1; + } + + + .item-chip { + height: 18px; + display: flex; + align-items: center; + justify-content: center; + font-size: 10px; + } + + &.activeMenu { + background-color: var(--mat-sys-primary); + + .mdc-list-item__primary-text { + color: $white !important; + } + + .mat-mdc-list-item-icon { + color: $white !important; + } + } + + .mdc-list-item__start { + margin-right: 14px; + margin-left: 0 !important; + width: 20px; + height: 20px; + line-height: 0px; + fill: transparent !important; + } + + .mdc-list-item__primary-text { + display: flex; + align-items: center; + justify-content: space-between; + + .arrow-icon { + display: flex; + gap: 2px; + + .mat-icon { + font-size: 18px; + width: 18px; + height: 18px; + display: flex; + align-items: center; + justify-content: center; + } + } + } + } + } +} + +.flex-layout { + display: flex; + flex-direction: column; + height: 100%; +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/layouts/_transitions.scss b/Web/themes/modernize/src/assets/scss/layouts/_transitions.scss new file mode 100644 index 0000000..fdc42bc --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/layouts/_transitions.scss @@ -0,0 +1,17 @@ +$swift-ease-out-duration: 400ms; +$swift-ease-out-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); + +@function swift-ease-out($property) { + // The Material default animation curves. + $transition: $property $swift-ease-out-duration + $swift-ease-out-timing-function; + + @return $transition; +} + +@function fast-out-slow($property) { + // The Material default animation curves. + $transition: $property 225ms cubic-bezier(0.4, 0, 0.2, 1); + + @return $transition; +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_badge.scss b/Web/themes/modernize/src/assets/scss/override-component/_badge.scss new file mode 100644 index 0000000..cb94c06 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_badge.scss @@ -0,0 +1,7 @@ +@use "sass:map"; +@use "@angular/material" as mat; +@include mat.badge-overrides( + ( + background-color: var(--mat-sys-primary), + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_button-toggle.scss b/Web/themes/modernize/src/assets/scss/override-component/_button-toggle.scss new file mode 100644 index 0000000..bdd2d6d --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_button-toggle.scss @@ -0,0 +1,9 @@ +@use "sass:map"; +@use "@angular/material" as mat; +@use "../variables" as *; + +@include mat.button-toggle-overrides( + ( + shape: $border-radius, + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_button.scss b/Web/themes/modernize/src/assets/scss/override-component/_button.scss new file mode 100644 index 0000000..f85ed5a --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_button.scss @@ -0,0 +1,136 @@ +@use "sass:map"; +@use "@angular/material" as mat; +@use "../variables" as *; + +@include mat.button-overrides( + ( + protected-hover-container-elevation-shadow: var(--mat-sys-level1), + filled-horizontal-padding: 15px, + outlined-horizontal-padding: 15px, + protected-horizontal-padding: 15px, + text-horizontal-padding: 15px, + filled-container-shape: var(--mat-sys-corner-small), + outlined-container-shape: var(--mat-sys-corner-small), + protected-container-shape: var(--mat-sys-corner-small), + text-container-shape: var(--mat-sys-corner-small), + ) +); + +@include mat.icon-button-overrides( + ( + icon-color: $text-color, + ) +); + +// styles +html { + .mat-mdc-button-base.bg-light-primary:hover, + .mat-mdc-button-base.bg-light-secondary:hover, + .mat-mdc-button-base.bg-light-error:hover, + .mat-mdc-button-base.bg-light-warning:hover, + .mat-mdc-button-base.bg-light-success:hover { + color: $white !important; + } + + .mat-mdc-button-base.bg-light-primary { + &:hover { + background-color: var(--mat-sys-primary) !important; + } + } + + .mat-mdc-button-base.bg-light-secondary { + &:hover { + background-color: var(--mat-sys-secondary) !important; + } + } + + .mat-mdc-button-base.bg-light-error { + &:hover { + background-color: var(--mat-sys-error) !important; + } + } + + .mat-mdc-button-base.bg-light-warning { + &:hover { + background-color: $warning !important; + } + } + + .mat-mdc-button-base.bg-light-success { + &:hover { + background-color: $success !important; + } + } + + .mat-mdc-outlined-button:not(:disabled) { + border-color: inherit !important; + } + + .mat-mdc-button-base.text-secondary:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $secondary; + } + } + + .mat-mdc-button-base.text-error:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $error; + } + } + + .mat-mdc-button-base.text-warning:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $warning; + } + } + + .mat-mdc-button-base.text-success:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $success; + } + } + + .mat-mdc-outlined-button:not(:disabled).mat-secondary { + color: var(--mat-sys-secondary); + border-color: var(--mat-sys-secondary); + + &:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $secondary; + } + } + } + + .mat-mdc-outlined-button:not(:disabled).mat-success { + color: $success; + border-color: $success; + + &:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $success; + } + } + } + + .mat-mdc-outlined-button:not(:disabled).mat-error { + color: $error; + border-color: $error; + + &:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $error; + } + } + } + + .mat-mdc-outlined-button:not(:disabled).mat-warning { + color: $warning; + border-color: $warning; + + &:hover { + .mat-mdc-button-persistent-ripple::before { + background-color: $warning; + } + } + } +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_card.scss b/Web/themes/modernize/src/assets/scss/override-component/_card.scss new file mode 100644 index 0000000..cdde21f --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_card.scss @@ -0,0 +1,60 @@ +@use "sass:map"; +@use "@angular/material" as mat; +@use "../variables" as *; + +@include mat.card-overrides( + ( + elevated-container-color: $white, + title-text-size: 1.125rem, + subtitle-text-size: 14px, + title-text-line-height: 1.6rem, + title-text-weight: 600, + subtitle-text-weight: 400, + elevated-container-shape: var(--mat-sys-corner-small), + outlined-container-shape: var(--mat-sys-corner-small), + elevated-container-elevation: var(--mat-sys-level2), + ) +); + +// styles +html { + .mat-mdc-card { + margin-bottom: $card-spacer; + + .mat-mdc-card-header { + padding: 16px $card-spacer !important; + } + + .mat-mdc-card-header + .mat-mdc-card-content { + padding: 0 $card-spacer $card-spacer; + } + + > .mat-mdc-card-content { + padding: $card-spacer !important; + } + + .mdc-card__actions { + padding: $card-spacer !important; + } + } + + .card-hover { + transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + + &:hover { + scale: 1.01; + transition: all 0.1s ease-in 0s; + } + } + + .cardBorder { + .mdc-card { + box-shadow: none !important; + border: 1px solid $borderColor !important; + + &.shadow-none { + border: 0 !important; + } + } + } +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_checkbox.scss b/Web/themes/modernize/src/assets/scss/override-component/_checkbox.scss new file mode 100644 index 0000000..a6585d1 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_checkbox.scss @@ -0,0 +1,23 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.checkbox-overrides( + ( + unselected-focus-icon-color: + var(--mdc-checkbox-unselected-hover-state-layer-color), + ) +); + +// styles +html { + .mdc-checkbox__background { + border-radius: 4px; + width: 21px; + height: 21px; + border: 1px solid var(--mat-sys-outline); + } + + .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__ripple { + background-color: var(--mdc-checkbox-unselected-hover-state-layer-color); + } +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_chip.scss b/Web/themes/modernize/src/assets/scss/override-component/_chip.scss new file mode 100644 index 0000000..6aabfd0 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_chip.scss @@ -0,0 +1,8 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.chips-overrides( + ( + focus-state-layer-color: var(--mat-option-focus-state-layer-color), + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_dialog.scss b/Web/themes/modernize/src/assets/scss/override-component/_dialog.scss new file mode 100644 index 0000000..1dee46e --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_dialog.scss @@ -0,0 +1,15 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.dialog-overrides( + ( + container-shape: var(--mat-sys-corner-small), + subhead-size: 18px, + subhead-weight: 600, + content-padding: 20px 24px, + actions-padding: 20px 24px, + container-min-width: 300px, + subhead-tracking: unset, + supporting-text-tracking: unset, + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_drawer.scss b/Web/themes/modernize/src/assets/scss/override-component/_drawer.scss new file mode 100644 index 0000000..1ed3a41 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_drawer.scss @@ -0,0 +1,8 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.sidenav-overrides( + ( + container-shape: 0, + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_fab.scss b/Web/themes/modernize/src/assets/scss/override-component/_fab.scss new file mode 100644 index 0000000..77b39ed --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_fab.scss @@ -0,0 +1,15 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.fab-overrides( + ( + small-container-shape: 30px, + container-shape: 30px, + container-elevation-shadow: none, + small-container-elevation-shadow: none, + small-hover-container-elevation-shadow: var(--mat-sys-level3), + hover-container-elevation-shadow: var(--mat-sys-level3), + extended-hover-container-elevation-shadow: var(--mat-sys-level3), + extended-container-elevation-shadow: none, + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_form-field.scss b/Web/themes/modernize/src/assets/scss/override-component/_form-field.scss new file mode 100644 index 0000000..a1eda9b --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_form-field.scss @@ -0,0 +1,27 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.form-field-overrides( + ( + container-height: 37px, + outlined-container-shape: var(--mat-sys-corner-small), + container-vertical-padding: 6px, + ) +); + +// forms +html { + .hide-hint { + .mat-mdc-form-field-subscript-wrapper { + display: none; + } + } + + .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label { + top: calc(var(--mat-form-field-container-height) / 2.15); + } + + .demo-inline-calendar-card { + width: 300px; + } +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_index.scss b/Web/themes/modernize/src/assets/scss/override-component/_index.scss new file mode 100644 index 0000000..cd81c32 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_index.scss @@ -0,0 +1,16 @@ +@use "badge"; +@use "button"; +@use "button-toggle"; +@use "card"; +@use "checkbox"; +@use "chip"; +@use "dialog"; +@use "fab"; +@use "form-field"; +@use "list"; +@use "menu"; +@use "theme"; +@use "table"; +@use "typography"; +@use "drawer"; +@use "progress"; \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/override-component/_list.scss b/Web/themes/modernize/src/assets/scss/override-component/_list.scss new file mode 100644 index 0000000..de39959 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_list.scss @@ -0,0 +1,12 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.list-overrides( + ( + list-item-hover-state-layer-color: var(--mat-sys-primary), + list-item-container-shape: var(--mat-sys-corner-small), + active-indicator-shape: var(--mat-sys-corner-small), + list-item-two-line-container-height: 70px, + list-item-three-line-container-height: 100px, + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_menu.scss b/Web/themes/modernize/src/assets/scss/override-component/_menu.scss new file mode 100644 index 0000000..32a6e73 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_menu.scss @@ -0,0 +1,19 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.menu-overrides( + ( + container-shape: var(--mat-sys-corner-small), + ) +); + +// styles +html { + .mat-mdc-menu-panel { + box-shadow: var(--mat-sys-level3) !important; + } + + .mat-mdc-select-panel { + padding: 8px !important; + } +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_progress.scss b/Web/themes/modernize/src/assets/scss/override-component/_progress.scss new file mode 100644 index 0000000..b1df43f --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_progress.scss @@ -0,0 +1,27 @@ +@use "../variables" as *; + +html { + .mat-secondary { + .mdc-linear-progress__bar-inner { + border-color: var(--mat-sys-secondary); + } + } + + .mat-warning { + .mdc-linear-progress__bar-inner { + border-color: $warning; + } + } + + .mat-error { + .mdc-linear-progress__bar-inner { + border-color: var(--mat-sys-error); + } + } + + // style + + .mat-mdc-progress-bar { + border-radius: var(--mat-sys-corner-small); + } +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_table.scss b/Web/themes/modernize/src/assets/scss/override-component/_table.scss new file mode 100644 index 0000000..f49fbf0 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_table.scss @@ -0,0 +1,8 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@include mat.table-overrides( + ( + background-color: var(--mdc-elevated-card-container-color), + ) +); diff --git a/Web/themes/modernize/src/assets/scss/override-component/_theme.scss b/Web/themes/modernize/src/assets/scss/override-component/_theme.scss new file mode 100644 index 0000000..e840626 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_theme.scss @@ -0,0 +1,25 @@ +@use "sass:map"; +@use "@angular/material" as mat; +@use "../variables" as *; + +html { + @include mat.theme( + ( + color: mat.$azure-palette, + typography: $font-family, + ) + ); + + @include mat.theme-overrides( + ( + primary: rgb(93, 135, 255), + error: rgb(250, 137, 107), + body-medium-size: 14px, + body-large-size: 14px, + outline-variant: #d7dde2, + level1: 0px 12px 24px -4px rgb(145 158 171 / 30%), + level2: rgba(145, 158, 171, 0.12) 0px 1px 16px, + level3: 0px 12px 24px -4px rgb(145 158 171 / 30%), + ) + ); +} diff --git a/Web/themes/modernize/src/assets/scss/override-component/_typography.scss b/Web/themes/modernize/src/assets/scss/override-component/_typography.scss new file mode 100644 index 0000000..c65fc04 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/override-component/_typography.scss @@ -0,0 +1,9 @@ +@use "../variables" as *; +html { + .mdc-list-item__primary-text, + .mat-drawer-container, + .mat-drawer, + .text-body { + color: $text-color; + } +} diff --git a/Web/themes/modernize/src/assets/scss/pages/_auth.scss b/Web/themes/modernize/src/assets/scss/pages/_auth.scss new file mode 100644 index 0000000..1b51841 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/pages/_auth.scss @@ -0,0 +1,109 @@ +@use "../variables" as *; + +.blank-layout-container { + height: 100vh; + display: flex; + background-size: cover; + align-items: center; +} + +.auth-title { + font-size: 36px; + line-height: 44px; +} + +.bg-gredient { + &::before { + content: ""; + position: absolute; + height: 100%; + width: 100%; + opacity: 0.3; + background: radial-gradient(rgb(210, 241, 223), + rgb(211, 215, 250), + rgb(186, 216, 244)) 0% 0% / 400% 400%; + animation: 15s ease 0s infinite normal none running gradient; + z-index: -1; + } +} + +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + + 50% { + background-position: 100% 50%; + } + + 100% { + background-position: 50% 0%; + } +} + +.img-height { + height: calc(100vh - 83px); +} + +.custom-row { + &.row { + margin-right: -8px; + margin-left: -8px; + + .col-2, + .col-12 { + padding-right: 8px; + padding-left: 8px; + } + } +} + +.or-border { + position: relative; + text-align: center; + + &:before { + content: ""; + position: absolute; + left: 0; + width: 120px; + top: 50%; + height: 1px; + background: var(--mat-sys-outline); + } + + &:after { + content: ""; + position: absolute; + right: 0; + width: 120px; + top: 50%; + height: 1px; + background: var(--mat-sys-outline); + } +} + +.boxed-auth { + width: 100%; + max-width: 480px; + margin: 0 auto; +} + +.max-width-form { + max-width: 450px; +} + +.mat-mdc-form-field.mat-form-field-invalid { + + .mdc-notched-outline__leading, + .mdc-notched-outline__notch, + .mdc-notched-outline__trailing { + border-color: $error !important; + } +} + +.error-msg { + position: absolute; + top: -19px; + right: 3px; +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/pages/_dashboards.scss b/Web/themes/modernize/src/assets/scss/pages/_dashboards.scss new file mode 100644 index 0000000..59a952e --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/pages/_dashboards.scss @@ -0,0 +1,128 @@ +// theme select +.theme-select { + width: 150px; + height: 36px; + + .mat-form-field-infix { + padding: 6px 0 1px !important; + } + + .mat-mdc-form-field-subscript-wrapper { + display: none; + } + + .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + border-color: $borderColor; + } + + .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing { + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + border-color: $borderColor; + } + + .mat-mdc-form-field-flex { + height: 36px; + align-items: center; + } + } + +.timeline { + position: relative; + + .timeline-item { + position: relative; + height: 70px; + + .time { + padding: 6px 16px 6px 0; + min-width: 90px; + flex-shrink: 0; + } + + .desc { + padding: 6px 16px; + } + + .timline-border { + width: 1px; + height: 100%; + background-color: $borderColor; + flex-shrink: 0; + } + + &:last-child { + height: 25px; + } + + .point { + flex-direction: column; + + .timeline-badge { + width: 12px; + height: 12px; + border-radius: 50px; + background-color: transparent; + flex-shrink: 0; + + &.border-primary { + border: 2px solid $primary !important; + } + + &.border-accent { + border: 2px solid $accent !important; + } + + &.border-success { + border: 2px solid $success; + } + + &.border-warning { + border: 2px solid $warning; + } + + &.border-error { + border: 2px solid $error; + } + } + + .timeline-border { + width: 1px; + height: 100%; + background-color: $borderColor; + flex-shrink: 0; + } + } + + &:last-child { + .timeline-border { + display: none !important; + } + } + } +} + +.user-category { + margin-top: -45px; + z-index: 1; + position: relative; +} + +.card-overlay { + position: absolute; + top: 0; + width: 100%; + height: 242px; +} + +.text-decoration-line-through { + text-decoration: line-through; +} + +.cart-btn { + position: absolute !important; + right: 16px; + top: -21px; +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/style.scss b/Web/themes/modernize/src/assets/scss/style.scss new file mode 100644 index 0000000..433f7b4 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/style.scss @@ -0,0 +1,24 @@ +@use "sass:map"; +@use "@angular/material" as mat; + +@use "themecolors/blue_theme"; + +@use "variables" as *; +@use "override-component"; +@use "theme-variables/default-variables"; +@use "theme-variables/light-theme-variables"; + +//container layout +@use "layouts/transitions"; +@use "helpers/color"; +@use "helpers/border-color"; +@use "helpers/icon-size"; +@use "container"; +@use "layouts/layouts"; +@use "grid/grid"; +@use "helpers/custom-flex"; +@use "helpers"; + +// pages +@use "pages/auth"; +@import "pages/dashboards"; \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/theme-variables/_default-variables.scss b/Web/themes/modernize/src/assets/scss/theme-variables/_default-variables.scss new file mode 100644 index 0000000..ca6d51f --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/theme-variables/_default-variables.scss @@ -0,0 +1,13 @@ +html { + --mat-sys-surface-container: #fff; + --mat-sys-error-fixed-dim: rgba(247, 68, 86, 0.15); + --mat-select-container-elevation-shadow: var(--mat-sys-level3); + --mdc-list-list-item-label-text-tracking: 0; + --mdc-switch-track-height: 28px; + --mat-sidenav-container-divider-color: var(--mat-sys-outline-variant); + --mat-dialog-with-actions-content-padding: 20px 24px; + --mat-form-field-container-text-tracking: unset; + --mat-switch-with-icon-handle-size: 21px; + --mat-badge-text-color: white; + --mat-switch-selected-with-icon-handle-horizontal-margin: 0 26px; +} \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/theme-variables/_light-theme-variables.scss b/Web/themes/modernize/src/assets/scss/theme-variables/_light-theme-variables.scss new file mode 100644 index 0000000..6315101 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/theme-variables/_light-theme-variables.scss @@ -0,0 +1,23 @@ +html .light-theme { + color-scheme: light; + --mat-sys-corner-small: 7px; + --mat-sys-background: #fff; + --mat-sys-surface-bright: #f2f6fa; + --mat-sys-surface: #fff; + --mat-sys-surface-container: #fff; + --mat-sys-surface-container-low: #fff; + --mat-sys-on-background: #2a3547; + --mat-sys-outline: #d7dde2; + --mat-sys-outline-variant: #d7dde2; + --mdc-outlined-text-field-hover-outline-color: #d7dde2; + --mdc-checkbox-unselected-hover-state-layer-color: #d7dde2; + --mat-menu-item-hover-state-layer-color: #f6f9fc; + --mat-standard-button-toggle-state-layer-color: #f6f9fc; + --mat-option-focus-state-layer-color: #f6f9fc; + --mat-option-hover-state-layer-color: #f6f9fc; + --mdc-switch-unselected-track-color: #f6f9fc; + --mat-stepper-header-focus-state-layer-color: #f6f9fc; + --mat-stepper-header-hover-state-layer-color: #f6f9fc; + --mdc-dialog-supporting-text-color: var(--mat-sys-on-background); + --mat-expansion-header-hover-state-layer-color: #f6f9fc; + } \ No newline at end of file diff --git a/Web/themes/modernize/src/assets/scss/themecolors/_blue_theme.scss b/Web/themes/modernize/src/assets/scss/themecolors/_blue_theme.scss new file mode 100644 index 0000000..c62e548 --- /dev/null +++ b/Web/themes/modernize/src/assets/scss/themecolors/_blue_theme.scss @@ -0,0 +1,6 @@ +html .blue_theme { + --mat-sys-primary: rgb(93, 135, 255); + --mat-sys-primary-fixed-dim: rgb(93, 135, 255, 0.15); + --mat-sys-secondary: rgb(68, 183, 247); + --mat-sys-secondary-fixed-dim: rgb(68, 183, 247, 0.15); +} \ No newline at end of file diff --git a/Web/themes/modernize/src/favicon.ico b/Web/themes/modernize/src/favicon.ico new file mode 100644 index 0000000..997406a Binary files /dev/null and b/Web/themes/modernize/src/favicon.ico differ diff --git a/Web/themes/modernize/src/index.html b/Web/themes/modernize/src/index.html new file mode 100644 index 0000000..9f09ecd --- /dev/null +++ b/Web/themes/modernize/src/index.html @@ -0,0 +1,17 @@ + + + + + Modernize Angular Admin Template + + + + + + + + + + + + diff --git a/Web/themes/modernize/src/main.ts b/Web/themes/modernize/src/main.ts new file mode 100644 index 0000000..514c89a --- /dev/null +++ b/Web/themes/modernize/src/main.ts @@ -0,0 +1,7 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig).catch((err) => + console.error(err) +); diff --git a/Web/themes/modernize/src/styles.scss b/Web/themes/modernize/src/styles.scss new file mode 100644 index 0000000..b28c7e4 --- /dev/null +++ b/Web/themes/modernize/src/styles.scss @@ -0,0 +1,7 @@ +/* You can add global styles to this file, and also import other style files */ + +html, +body { + height: 100%; + margin: 0; +} \ No newline at end of file diff --git a/Web/themes/modernize/tsconfig.app.json b/Web/themes/modernize/tsconfig.app.json new file mode 100644 index 0000000..374cc9d --- /dev/null +++ b/Web/themes/modernize/tsconfig.app.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/Web/themes/modernize/tsconfig.json b/Web/themes/modernize/tsconfig.json new file mode 100644 index 0000000..bed3f4d --- /dev/null +++ b/Web/themes/modernize/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "strictPropertyInitialization": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true, + } +} diff --git a/Web/themes/modernize/tsconfig.spec.json b/Web/themes/modernize/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/Web/themes/modernize/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.browserslistrc b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.browserslistrc new file mode 100644 index 0000000..97bd415 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.browserslistrc @@ -0,0 +1,4 @@ +last 1 version +>1% +maintained node versions +not dead \ No newline at end of file diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.gitignore b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.gitignore new file mode 100644 index 0000000..6285d17 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.gitignore @@ -0,0 +1,3 @@ +node_modules +package-lock.json +/build \ No newline at end of file diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.prettierrc b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.prettierrc new file mode 100644 index 0000000..8b0bc4e --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.prettierrc @@ -0,0 +1,3 @@ +{ + "plugins": ["prettier-plugin-tailwindcss"] +} \ No newline at end of file diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.vscode/settings.json b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.vscode/settings.json new file mode 100644 index 0000000..4d6c166 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "css.validate": false, + "prettier.printWidth": 80 +} diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/LICENSE b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/LICENSE new file mode 100644 index 0000000..cb92d41 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 TailAdmin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/README.md b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/README.md new file mode 100644 index 0000000..250995b --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/README.md @@ -0,0 +1,154 @@ +# TailAdmin - Free Tailwind Admin Dashboard Template + +TailAdmin is a high-quality, open-source, and **free Tailwind CSS admin template** that is perfect for creating data-rich backends, +powerful web applications and dashboard-admin projects. + +![TailAdmin Dashboard Preview](./banner.png) + +## Overview + +TailAdmin provides essential UI components and layouts for building feature-rich, data-driven admin dashboards and control panels. It's built using: + +- HTML +- Alpine.js +- Tailwind CSS +- and Webpack (for bundling) + +### Quick Links + +- [✨ Visit Website](https://tailadmin.com) +- [📄 Documentation](https://tailadmin.com/docs) +- [⬇️ Download](https://tailadmin.com/download) +- [🖌️ Figma Design File (Community Edition)](https://www.figma.com/community/file/1463141366275764364) +- [⚡ Get PRO Version](https://tailadmin.com/pricing) + +### Demos + +- [Free Version](https://free-demo.tailadmin.com/) +- [Pro Version](https://demo.tailadmin.com) + +### Other Versions + +- [Next.js Version](https://github.com/TailAdmin/free-nextjs-admin-dashboard) +- [React.js Version](https://github.com/TailAdmin/free-react-tailwind-admin-dashboard) +- [Vue.js Version](https://github.com/TailAdmin/vue-tailwind-admin-dashboard) + +## Installation + +### Prerequisites + +To get started with TailAdmin, ensure you have the following prerequisites installed and set up: + +- Node.js 18.x or later + +### Cloning the Repository + +Clone the repository using the following command: + +```bash +git clone https://github.com/TailAdmin/tailadmin-free-tailwind-dashboard-template.git +``` + +> Windows Users: place the repository near the root of your drive if you face issues while cloning. + +1. Install dependencies: + + ```bash + npm install + # or + yarn install + ``` + +2. Start the development server: + ```bash + npm run start + # or + yarn start + ``` + +## Components + +TailAdmin is a pre-designed starting point for building a web-based dashboard using HTML, Alpine.js and Tailwind CSS. The template includes: + +- Sophisticated and accessible sidebar +- Data visualization components +- Prebuilt profile management and 404 page +- Tables and Charts(Line and Bar) +- Authentication forms and input elements +- Alerts, Dropdowns, Modals, Buttons and more +- Can't forget Dark Mode 🕶️ + +## Feature Comparison + +### Free Version + +- 1 Unique Dashboard +- 30+ dashboard components +- 50+ UI elements +- Basic Figma design files +- Community support + +### Pro Version + +- 5 Unique Dashboards: Analytics, Ecommerce, Marketing, CRM, Stocks (more coming soon) +- 400+ dashboard components and UI elements +- Complete Figma design file +- Email support + +To learn more about pro version features and pricing, visit our [pricing page](https://tailadmin.com/pricing). + +## Update Logs + +### Version 2.0.1 - [February 27, 2025] + +#### Update Overview + +- Upgraded to Tailwind CSS v4 for better performance and efficiency. +- Updated class usage to match the latest syntax and features. +- Replaced deprecated class and optimized styles. + +#### Next Steps + +- Run npm install or yarn install to update dependencies. +- Check for any style changes or compatibility issues. +- Refer to the Tailwind CSS v4 [Migration Guide](https://tailwindcss.com/docs/upgrade-guide) on this release. if needed. +- This update keeps the project up to date with the latest Tailwind improvements. 🚀 + +### Version 2.0.0 - [February 2025] + +Major update with comprehensive redesign and new features. + +#### Major Improvements + +- Complete UI redesign of all pages and components +- Enhanced user interface with new elements +- Improved responsiveness and accessibility +- New features: collapsible sidebar, chat, and calendar +- Updated data visualization components + +#### New Features + +- Redesigned dashboards (Ecommerce, Analytics, Marketing, CRM) +- Enhanced navigation with improved header and breadcrumbs +- Advanced table components with sorting and filtering +- New UI components (Avatar, Alert, Ribbon) +- Full-featured calendar with drag-and-drop + +#### Breaking Changes + +- Updated sidebar component API +- New charting library implementation +- Revised authentication system +- **Deprecations:** SimpleTable component and legacy icon set + +#### Previous Versions + +For detailed changelogs of previous versions (1.0.0 - 1.3.0), visit our [documentation](https://tailadmin.com/docs/update-logs/). + +## License + +The community edition of TailAdmin is released under the MIT License. + +## Support + +If you find this project helpful, please consider giving it a star on GitHub. Your support helps us continue developing and maintaining this template. diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/banner.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/banner.png new file mode 100644 index 0000000..1b8c2f3 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/banner.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/package.json b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/package.json new file mode 100644 index 0000000..3d36e78 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/package.json @@ -0,0 +1,58 @@ +{ + "name": "tailadmin-free", + "version": "2.0.1", + "description": "TailAdmin is a high-quality, open-source, and free Tailwind CSS admin template that is perfect for creating data-rich backends, powerful web applications and dashboard-admin projects.", + "main": "index.js", + "scripts": { + "start": "webpack serve --open --config webpack.config.js", + "build": "webpack --config webpack.config.js", + "sort": "npx prettier --write src" + }, + "keywords": [], + "author": { + "name": "TailAdmin", + "email": "hello@tailadmin.com", + "url": "https://tailadmin.com" + }, + "license": "ISC", + "devDependencies": { + "@babel/core": "^7.24.9", + "@babel/preset-env": "^7.24.8", + "@tailwindcss/forms": "^0.5.9", + "@tailwindcss/postcss": "^4.0.0", + "babel-loader": "^9.1.3", + "babel-plugin-prismjs": "^2.1.0", + "css-loader": "^7.1.2", + "file-loader": "^6.2.0", + "glob": "^11.0.0", + "html-loader": "^5.0.0", + "html-webpack-plugin": "^5.6.0", + "mini-css-extract-plugin": "^2.9.0", + "postcss": "^8.4.39", + "postcss-loader": "^8.1.1", + "postcss-preset-env": "^9.6.0", + "prettier": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.11", + "style-loader": "^4.0.0", + "tailwindcss": "^4.0.0", + "webpack": "^5.96.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^5.0.4" + }, + "dependencies": { + "@alpinejs/persist": "^3.14.1", + "@fullcalendar/core": "^6.1.15", + "@fullcalendar/daygrid": "^6.1.15", + "@fullcalendar/interaction": "^6.1.15", + "@fullcalendar/list": "^6.1.15", + "@fullcalendar/timegrid": "^6.1.15", + "alpinejs": "^3.14.1", + "apexcharts": "^3.51.0", + "chart.js": "^4.4.6", + "dropzone": "^6.0.0-beta.2", + "flatpickr": "^4.6.13", + "fullcalendar": "^6.1.15", + "jsvectormap": "^1.6.0", + "swiper": "^11.1.14" + } +} diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/postcss.config.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/postcss.config.js new file mode 100644 index 0000000..241bd69 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + '@tailwindcss/postcss': {}, + } +} \ No newline at end of file diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/404.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/404.html new file mode 100644 index 0000000..baba490 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/404.html @@ -0,0 +1,71 @@ + + + + + + + + 404 Error Page | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + + +
+ + + + + +
+

+ ERROR +

+ + 404 + + +

+ We can’t seem to find the page you are looking for! +

+ + + Back to Home Page + +
+ +

+ © - TailAdmin +

+
+ + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/alerts.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/alerts.html new file mode 100644 index 0000000..2ee5f3d --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/alerts.html @@ -0,0 +1,135 @@ + + + + + + + Alerts | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Success Alert +

+
+
+
+ +
+
+
+ +
+
+

+ Warning Alert +

+
+
+
+ +
+
+
+ +
+
+

+ Error Alert +

+
+
+
+ +
+
+
+ +
+
+

+ Info Alert +

+
+
+
+ +
+
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/avatars.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/avatars.html new file mode 100644 index 0000000..d87415a --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/avatars.html @@ -0,0 +1,119 @@ + + + + + + + Avatars | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Default Avatar +

+
+
+ +
+
+ +
+
+

+ Avatar with online indicator +

+
+
+ +
+
+ +
+
+

+ Avatar with Offline indicator +

+
+
+ +
+
+ +
+
+

+ Avatar with busy indicator +

+
+
+ +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/badge.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/badge.html new file mode 100644 index 0000000..5a92134 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/badge.html @@ -0,0 +1,161 @@ + + + + + + + Badge | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ With Light Background +

+
+
+ +
+
+ +
+
+

+ With Solid Background +

+
+
+ +
+
+ +
+
+

+ Light Background with Left Icon +

+
+
+ +
+
+ +
+
+

+ Solid Background with Left Icon +

+
+
+ +
+
+ +
+
+

+ Light Background with Right Icon +

+
+
+ +
+
+ +
+
+

+ Solid Background with Right Icon +

+
+
+ +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/bar-chart.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/bar-chart.html new file mode 100644 index 0000000..d801144 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/bar-chart.html @@ -0,0 +1,80 @@ + + + + + + + Bar Chart | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Bar Chart 1 +

+
+
+ +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/basic-tables.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/basic-tables.html new file mode 100644 index 0000000..ca10502 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/basic-tables.html @@ -0,0 +1,80 @@ + + + + + + + + Basic Tables | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Basic Table 1 +

+
+
+ + + +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/blank.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/blank.html new file mode 100644 index 0000000..92a0947 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/blank.html @@ -0,0 +1,79 @@ + + + + + + + + Blank Page | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+

+ Card Title Here +

+ +

+ Start putting content on grids or panels, you can also use + different combinations of grids.
Please check out the + dashboard and other pages +

+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/buttons.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/buttons.html new file mode 100644 index 0000000..d05d66c --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/buttons.html @@ -0,0 +1,161 @@ + + + + + + + Buttons | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Primary Button +

+
+
+ +
+
+ +
+
+

+ Primary Button with Left Icon +

+
+
+ +
+
+ +
+
+

+ Primary Button with Right Icon +

+
+
+ +
+
+ +
+
+

+ Secondary Button +

+
+
+ +
+
+ +
+
+

+ Secondary Button with Left Icon +

+
+
+ +
+
+ +
+
+

+ Secondary Button with Right Icon +

+
+
+ +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/calendar.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/calendar.html new file mode 100644 index 0000000..d450158 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/calendar.html @@ -0,0 +1,67 @@ + + + + + + + Calendar | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+ + + + +
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/css/style.css b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/css/style.css new file mode 100644 index 0000000..edb74cc --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/css/style.css @@ -0,0 +1,745 @@ +@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap") +layer(base); + +@import "tailwindcss"; + +@custom-variant dark (&:is(.dark *)); + +@theme { + --font-*: initial; + --font-outfit: Outfit, sans-serif; + + --breakpoint-*: initial; + --breakpoint-2xsm: 375px; + --breakpoint-xsm: 425px; + --breakpoint-3xl: 2000px; + --breakpoint-sm: 640px; + --breakpoint-md: 768px; + --breakpoint-lg: 1024px; + --breakpoint-xl: 1280px; + --breakpoint-2xl: 1536px; + + --text-title-2xl: 72px; + --text-title-2xl--line-height: 90px; + --text-title-xl: 60px; + --text-title-xl--line-height: 72px; + --text-title-lg: 48px; + --text-title-lg--line-height: 60px; + --text-title-md: 36px; + --text-title-md--line-height: 44px; + --text-title-sm: 30px; + --text-title-sm--line-height: 38px; + --text-theme-xl: 20px; + --text-theme-xl--line-height: 30px; + --text-theme-sm: 14px; + --text-theme-sm--line-height: 20px; + --text-theme-xs: 12px; + --text-theme-xs--line-height: 18px; + + --color-current: currentColor; + --color-transparent: transparent; + --color-white: #ffffff; + --color-black: #101828; + + --color-brand-25: #f2f7ff; + --color-brand-50: #ecf3ff; + --color-brand-100: #dde9ff; + --color-brand-200: #c2d6ff; + --color-brand-300: #9cb9ff; + --color-brand-400: #7592ff; + --color-brand-500: #465fff; + --color-brand-600: #3641f5; + --color-brand-700: #2a31d8; + --color-brand-800: #252dae; + --color-brand-900: #262e89; + --color-brand-950: #161950; + + --color-blue-light-25: #f5fbff; + --color-blue-light-50: #f0f9ff; + --color-blue-light-100: #e0f2fe; + --color-blue-light-200: #b9e6fe; + --color-blue-light-300: #7cd4fd; + --color-blue-light-400: #36bffa; + --color-blue-light-500: #0ba5ec; + --color-blue-light-600: #0086c9; + --color-blue-light-700: #026aa2; + --color-blue-light-800: #065986; + --color-blue-light-900: #0b4a6f; + --color-blue-light-950: #062c41; + + --color-gray-25: #fcfcfd; + --color-gray-50: #f9fafb; + --color-gray-100: #f2f4f7; + --color-gray-200: #e4e7ec; + --color-gray-300: #d0d5dd; + --color-gray-400: #98a2b3; + --color-gray-500: #667085; + --color-gray-600: #475467; + --color-gray-700: #344054; + --color-gray-800: #1d2939; + --color-gray-900: #101828; + --color-gray-950: #0c111d; + --color-gray-dark: #1a2231; + + --color-orange-25: #fffaf5; + --color-orange-50: #fff6ed; + --color-orange-100: #ffead5; + --color-orange-200: #fddcab; + --color-orange-300: #feb273; + --color-orange-400: #fd853a; + --color-orange-500: #fb6514; + --color-orange-600: #ec4a0a; + --color-orange-700: #c4320a; + --color-orange-800: #9c2a10; + --color-orange-900: #7e2410; + --color-orange-950: #511c10; + + --color-success-25: #f6fef9; + --color-success-50: #ecfdf3; + --color-success-100: #d1fadf; + --color-success-200: #a6f4c5; + --color-success-300: #6ce9a6; + --color-success-400: #32d583; + --color-success-500: #12b76a; + --color-success-600: #039855; + --color-success-700: #027a48; + --color-success-800: #05603a; + --color-success-900: #054f31; + --color-success-950: #053321; + + --color-error-25: #fffbfa; + --color-error-50: #fef3f2; + --color-error-100: #fee4e2; + --color-error-200: #fecdca; + --color-error-300: #fda29b; + --color-error-400: #f97066; + --color-error-500: #f04438; + --color-error-600: #d92d20; + --color-error-700: #b42318; + --color-error-800: #912018; + --color-error-900: #7a271a; + --color-error-950: #55160c; + + --color-warning-25: #fffcf5; + --color-warning-50: #fffaeb; + --color-warning-100: #fef0c7; + --color-warning-200: #fedf89; + --color-warning-300: #fec84b; + --color-warning-400: #fdb022; + --color-warning-500: #f79009; + --color-warning-600: #dc6803; + --color-warning-700: #b54708; + --color-warning-800: #93370d; + --color-warning-900: #7a2e0e; + --color-warning-950: #4e1d09; + + --color-theme-pink-500: #ee46bc; + + --color-theme-purple-500: #7a5af8; + + --shadow-theme-md: 0px 4px 8px -2px rgba(16, 24, 40, 0.1), + 0px 2px 4px -2px rgba(16, 24, 40, 0.06); + --shadow-theme-lg: 0px 12px 16px -4px rgba(16, 24, 40, 0.08), + 0px 4px 6px -2px rgba(16, 24, 40, 0.03); + --shadow-theme-sm: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), + 0px 1px 2px 0px rgba(16, 24, 40, 0.06); + --shadow-theme-xs: 0px 1px 2px 0px rgba(16, 24, 40, 0.05); + --shadow-theme-xl: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), + 0px 8px 8px -4px rgba(16, 24, 40, 0.03); + --shadow-datepicker: -5px 0 0 #262d3c, 5px 0 0 #262d3c; + --shadow-focus-ring: 0px 0px 0px 4px rgba(70, 95, 255, 0.12); + --shadow-slider-navigation: 0px 1px 2px 0px rgba(16, 24, 40, 0.1), + 0px 1px 3px 0px rgba(16, 24, 40, 0.1); + --shadow-tooltip: 0px 4px 6px -2px rgba(16, 24, 40, 0.05), + -8px 0px 20px 8px rgba(16, 24, 40, 0.05); + + --drop-shadow-4xl: 0 35px 35px rgba(0, 0, 0, 0.25), + 0 45px 65px rgba(0, 0, 0, 0.15); + + --z-index-1: 1; + --z-index-9: 9; + --z-index-99: 99; + --z-index-999: 999; + --z-index-9999: 9999; + --z-index-99999: 99999; + --z-index-999999: 999999; +} + +/* + The default border color has changed to `currentColor` in Tailwind CSS v4, + so we've added these compatibility styles to make sure everything still + looks the same as it did with Tailwind CSS v3. + + If we ever want to remove these styles, we need to add an explicit border + color utility to any element that depends on these defaults. +*/ +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentColor); + } + button:not(:disabled), + [role="button"]:not(:disabled) { + cursor: pointer; + } +} + +@utility menu-item { + @apply relative flex items-center gap-3 px-3 py-2 font-medium rounded-lg text-theme-sm; +} + +@utility menu-item-active { + @apply bg-brand-50 text-brand-500 dark:bg-brand-500/[0.12] dark:text-brand-400; +} + +@utility menu-item-inactive { + @apply text-gray-700 hover:bg-gray-100 hover:text-gray-700 dark:text-gray-300 dark:hover:bg-white/5 dark:hover:text-gray-300; +} + +@utility menu-item-icon-active { + @apply fill-brand-500 dark:fill-brand-400; +} + +@utility menu-item-icon-inactive { + @apply fill-gray-500 group-hover:fill-gray-700 dark:fill-gray-400 dark:group-hover:fill-gray-300; +} + +@utility menu-item-arrow { + @apply absolute top-1/2 right-2.5 -translate-y-1/2; +} + +@utility menu-item-arrow-active { + @apply rotate-180 stroke-brand-500 dark:stroke-brand-400; +} + +@utility menu-item-arrow-inactive { + @apply stroke-gray-500 group-hover:stroke-gray-700 dark:stroke-gray-400 dark:group-hover:stroke-gray-300; +} + +@utility menu-dropdown-item { + @apply text-theme-sm relative flex items-center gap-3 rounded-lg px-3 py-2.5 font-medium; +} + +@utility menu-dropdown-item-active { + @apply bg-brand-50 text-brand-500 dark:bg-brand-500/[0.12] dark:text-brand-400; +} + +@utility menu-dropdown-item-inactive { + @apply text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5; +} + +@utility menu-dropdown-badge { + @apply text-brand-500 dark:text-brand-400 block rounded-full px-2.5 py-0.5 text-xs font-medium uppercase; +} + +@utility menu-dropdown-badge-active { + @apply bg-brand-100 dark:bg-brand-500/20; +} + +@utility menu-dropdown-badge-inactive { + @apply bg-brand-50 group-hover:bg-brand-100 dark:bg-brand-500/15 dark:group-hover:bg-brand-500/20; +} + +@utility no-scrollbar { + /* Chrome, Safari and Opera */ + &::-webkit-scrollbar { + display: none; + } + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ +} + +@utility custom-scrollbar { + &::-webkit-scrollbar { + @apply size-1.5; + } + + &::-webkit-scrollbar-track { + @apply rounded-full; + } + + &::-webkit-scrollbar-thumb { + @apply bg-gray-200 rounded-full; + } +} + +.dark .custom-scrollbar::-webkit-scrollbar-thumb { + background-color: #344054; +} + +@layer base { + body { + @apply relative text-base font-normal font-outfit z-1 bg-gray-50; + } +} + +@layer utilities { + /* For Remove Date Icon */ + input[type="date"]::-webkit-inner-spin-button, + input[type="time"]::-webkit-inner-spin-button, + input[type="date"]::-webkit-calendar-picker-indicator, + input[type="time"]::-webkit-calendar-picker-indicator { + display: none; + -webkit-appearance: none; + } +} + +.sidebar:hover { + width: 290px; +} +.sidebar:hover .logo { + display: block; +} +.sidebar:hover .logo-icon { + display: none; +} +.sidebar:hover .sidebar-header { + justify-content: space-between; +} +.sidebar:hover .menu-group-title { + display: block; +} +.sidebar:hover .menu-group-icon { + display: none; +} + +.sidebar:hover .menu-item-text { + display: inline; +} + +.sidebar:hover .menu-item-arrow { + display: block; +} + +.sidebar:hover .menu-dropdown { + display: flex; +} + +.tableCheckbox:checked ~ span span { + @apply opacity-100; +} +.tableCheckbox:checked ~ span { + @apply border-brand-500 bg-brand-500; +} + +/* third-party libraries CSS */ +.apexcharts-legend-text { + @apply text-gray-700! dark:text-gray-400!; +} + +.apexcharts-text { + @apply fill-gray-700! dark:fill-gray-400!; +} + +.apexcharts-tooltip.apexcharts-theme-light { + @apply shadow-theme-sm! gap-1 rounded-lg! border-gray-200! p-3 dark:border-gray-800! dark:bg-gray-900!; +} + +.apexcharts-tooltip-marker { + @apply mr-1.5! h-1.5! w-1.5!; +} +.apexcharts-legend-text { + @apply pl-5! text-gray-700! dark:text-gray-400!; +} +.apexcharts-tooltip-series-group { + @apply p-0!; +} +.apexcharts-tooltip-y-group { + @apply p-0!; +} +.apexcharts-tooltip-title { + @apply mb-0! border-b-0! bg-transparent! p-0! text-[10px]! leading-4! text-gray-800! dark:text-white/90!; +} +.apexcharts-tooltip-text { + @apply text-theme-xs! text-gray-700! dark:text-white/90!; +} +.apexcharts-tooltip-text-y-value { + @apply font-medium!; +} + +.apexcharts-gridline { + @apply stroke-gray-100! dark:stroke-gray-800!; +} +#chartTwo .apexcharts-datalabels-group { + @apply -translate-y-24!; +} +#chartTwo .apexcharts-datalabels-group .apexcharts-text { + @apply fill-gray-800! font-semibold! dark:fill-white/90!; +} + +#chartSixteen .apexcharts-legend { + @apply p-0! pl-6!; +} + +.jvm-container { + @apply bg-gray-50! dark:bg-gray-900!; +} +.jvm-region.jvm-element { + @apply hover:fill-brand-500! dark:hover:fill-brand-500! fill-gray-300! dark:fill-gray-700!; +} +.jvm-marker.jvm-element { + @apply stroke-gray-200! dark:stroke-gray-800!; +} + +.stocks-slider-outer .swiper-button-next:after, +.stocks-slider-outer .swiper-button-prev:after { + @apply hidden; +} + +.stocks-slider-outer .swiper-button-next, +.stocks-slider-outer .swiper-button-prev { + @apply static! mt-0 h-8 w-9 rounded-full border border-gray-200 text-gray-700! transition hover:bg-gray-100 dark:border-gray-800 dark:bg-gray-800 dark:text-gray-400!; +} + +.stocks-slider-outer .swiper-button-next.swiper-button-disabled, +.stocks-slider-outer .swiper-button-prev.swiper-button-disabled { + @apply bg-white opacity-100 dark:bg-gray-900; +} + +.stocks-slider-outer .swiper-button-next svg, +.stocks-slider-outer .swiper-button-prev svg { + @apply h-auto! w-auto!; +} + +.flatpickr-wrapper { + @apply w-full; +} +.flatpickr-calendar { + @apply dark:bg-gray-dark! dark:shadow-theme-xl! 2xsm:w-auto! mt-2 rounded-xl! p-5! text-gray-500! dark:text-gray-400!; +} + +.flatpickr-months .flatpickr-prev-month:hover svg, +.flatpickr-months .flatpickr-next-month:hover svg { + @apply stroke-brand-500; +} +.flatpickr-calendar.arrowTop:before, +.flatpickr-calendar.arrowTop:after { + @apply hidden; +} +.flatpickr-current-month .cur-month, +.flatpickr-current-month input.cur-year { + @apply h-auto! pt-0! text-lg! font-medium! text-gray-800! dark:text-white/90!; +} + +.flatpickr-prev-month, +.flatpickr-next-month { + @apply p-0!; +} + +.flatpickr-weekdays { + @apply h-auto mt-6 mb-4; +} + +.flatpickr-weekday { + @apply text-theme-sm! font-medium! text-gray-500! dark:text-gray-400!; +} + +.flatpickr-day { + @apply text-theme-sm! flex! items-center! font-medium! text-gray-800! dark:text-white/90! dark:hover:border-gray-300! dark:hover:bg-gray-900!; +} +.flatpickr-day.nextMonthDay, +.flatpickr-day.prevMonthDay { + @apply text-gray-400!; +} +.flatpickr-months .flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month { + @apply top-7! dark:fill-white! dark:text-white!; +} +.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month.flatpickr-prev-month { + @apply left-7!; +} +.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, +.flatpickr-months .flatpickr-next-month.flatpickr-next-month { + @apply right-7!; +} +span.flatpickr-weekday, +.flatpickr-months .flatpickr-month { + @apply dark:fill-white! dark:text-white!; +} +.flatpickr-day.inRange { + box-shadow: + -5px 0 0 #f9fafb, + 5px 0 0 #f9fafb !important; + @apply dark:shadow-datepicker!; +} +.flatpickr-day.inRange, +.flatpickr-day.prevMonthDay.inRange, +.flatpickr-day.nextMonthDay.inRange, +.flatpickr-day.today.inRange, +.flatpickr-day.prevMonthDay.today.inRange, +.flatpickr-day.nextMonthDay.today.inRange, +.flatpickr-day:hover, +.flatpickr-day.prevMonthDay:hover, +.flatpickr-day.nextMonthDay:hover, +.flatpickr-day:focus, +.flatpickr-day.prevMonthDay:focus, +.flatpickr-day.nextMonthDay:focus { + @apply border-gray-50! bg-gray-50! dark:border-0! dark:border-white/5! dark:bg-white/5!; +} +.flatpickr-day.selected, +.flatpickr-day.startRange, +.flatpickr-day.selected, +.flatpickr-day.endRange { + @apply text-white! dark:text-white!; +} +.flatpickr-day.selected, +.flatpickr-day.startRange, +.flatpickr-day.endRange, +.flatpickr-day.selected.inRange, +.flatpickr-day.startRange.inRange, +.flatpickr-day.endRange.inRange, +.flatpickr-day.selected:focus, +.flatpickr-day.startRange:focus, +.flatpickr-day.endRange:focus, +.flatpickr-day.selected:hover, +.flatpickr-day.startRange:hover, +.flatpickr-day.endRange:hover, +.flatpickr-day.selected.prevMonthDay, +.flatpickr-day.startRange.prevMonthDay, +.flatpickr-day.endRange.prevMonthDay, +.flatpickr-day.selected.nextMonthDay, +.flatpickr-day.startRange.nextMonthDay, +.flatpickr-day.endRange.nextMonthDay { + background: #465fff; + @apply border-brand-500! bg-brand-500! hover:border-brand-500! hover:bg-brand-500!; +} +.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)), +.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)), +.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) { + box-shadow: -10px 0 0 #465fff; +} + +.flatpickr-months .flatpickr-prev-month svg, +.flatpickr-months .flatpickr-next-month svg, +.flatpickr-months .flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month { + @apply hover:fill-none!; +} +.flatpickr-months .flatpickr-prev-month:hover svg, +.flatpickr-months .flatpickr-next-month:hover svg { + fill: none !important; +} + +.flatpickr-calendar.static { + @apply right-0; +} + +.fc .fc-view-harness { + @apply max-w-full overflow-x-auto custom-scrollbar; +} +.fc-dayGridMonth-view.fc-view.fc-daygrid { + @apply min-w-[718px]; +} +.fc .fc-scrollgrid-section > * { + border-right-width: 0; + border-bottom-width: 0; +} +.fc .fc-scrollgrid { + border-left-width: 0; +} +.fc .fc-toolbar.fc-header-toolbar { + @apply flex-col gap-4 px-6 pt-6 sm:flex-row; +} +.fc-button-group { + @apply gap-2; +} +.fc-button-group .fc-button { + @apply flex h-10 w-10 items-center justify-center rounded-lg! border border-gray-200 bg-transparent hover:border-gray-200 hover:bg-gray-50 focus:shadow-none active:border-gray-200! active:bg-transparent! active:shadow-none! dark:border-gray-800 dark:hover:border-gray-800 dark:hover:bg-gray-900 dark:active:border-gray-800!; +} + +.fc-button-group .fc-button.fc-prev-button:before { + @apply inline-block mt-1; + content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.0068 6L9.75684 12.25L16.0068 18.5' stroke='%23344054' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); +} +.fc-button-group .fc-button.fc-next-button:before { + @apply inline-block mt-1; + content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.50684 19L15.7568 12.75L9.50684 6.5' stroke='%23344054' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); +} +.dark .fc-button-group .fc-button.fc-prev-button:before { + content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.0068 6L9.75684 12.25L16.0068 18.5' stroke='%2398A2B3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); +} +.dark .fc-button-group .fc-button.fc-next-button:before { + content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.50684 19L15.7568 12.75L9.50684 6.5' stroke='%2398A2B3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); +} +.fc-button-group .fc-button .fc-icon { + @apply hidden; +} +.fc-addEventButton-button { + @apply bg-brand-500! hover:bg-brand-600! rounded-lg! border-0! px-4! py-2.5! text-sm! font-medium! focus:shadow-none!; +} +.fc-toolbar-title { + @apply text-lg! font-medium! text-gray-800 dark:text-white/90; +} +.fc-header-toolbar.fc-toolbar .fc-toolbar-chunk:last-child { + @apply rounded-lg bg-gray-100 p-0.5 dark:bg-gray-900; +} +.fc-header-toolbar.fc-toolbar .fc-toolbar-chunk:last-child .fc-button { + @apply h-auto! w-auto! rounded-md border-0! bg-transparent px-5! py-2! text-sm font-medium text-gray-500 hover:text-gray-700 focus:shadow-none! dark:text-gray-400; +} +.fc-header-toolbar.fc-toolbar + .fc-toolbar-chunk:last-child + .fc-button.fc-button-active { + @apply text-gray-900 bg-white dark:bg-gray-800 dark:text-white; +} +.fc-theme-standard th { + @apply border-x-0! border-t border-gray-200! bg-gray-50 text-left! dark:border-gray-800! dark:bg-gray-900; +} +.fc-theme-standard td, +.fc-theme-standard .fc-scrollgrid { + @apply border-gray-200! dark:border-gray-800!; +} +.fc .fc-col-header-cell-cushion { + @apply px-5! py-4! text-sm font-medium text-gray-400 uppercase; +} +.fc .fc-daygrid-day.fc-day-today { + @apply bg-transparent; +} +.fc .fc-daygrid-day { + @apply p-2; +} +.fc .fc-daygrid-day.fc-day-today .fc-scrollgrid-sync-inner { + @apply rounded-sm bg-gray-100 dark:bg-white/[0.03]; +} +.fc .fc-daygrid-day-number { + @apply p-3! text-sm font-medium text-gray-700 dark:text-gray-400; +} +.fc .fc-daygrid-day-top { + @apply flex-row!; +} +.fc .fc-day-other .fc-daygrid-day-top { + opacity: 1; +} +.fc .fc-day-other .fc-daygrid-day-top .fc-daygrid-day-number { + @apply text-gray-400 dark:text-white/30; +} +.event-fc-color { + @apply rounded-lg py-2.5 pr-3 pl-4; +} +.event-fc-color .fc-event-title { + @apply p-0 text-sm font-normal text-gray-700; +} +.fc-daygrid-event-dot { + @apply w-1 h-5 ml-0 mr-3 border-none rounded-sm; +} +.fc-event { + @apply focus:shadow-none; +} +.fc-daygrid-event.fc-event-start { + @apply ml-3!; +} +.event-fc-color.fc-bg-success { + @apply border-success-50 bg-success-50; +} +.event-fc-color.fc-bg-danger { + @apply border-error-50 bg-error-50; +} +.event-fc-color.fc-bg-primary { + @apply border-brand-50 bg-brand-50; +} +.event-fc-color.fc-bg-warning { + @apply border-orange-50 bg-orange-50; +} +.event-fc-color.fc-bg-success .fc-daygrid-event-dot { + @apply bg-success-500; +} +.event-fc-color.fc-bg-danger .fc-daygrid-event-dot { + @apply bg-error-500; +} +.event-fc-color.fc-bg-primary .fc-daygrid-event-dot { + @apply bg-brand-500; +} +.event-fc-color.fc-bg-warning .fc-daygrid-event-dot { + @apply bg-orange-500; +} +.fc-direction-ltr .fc-timegrid-slot-label-frame { + @apply px-3 py-1.5 text-left text-sm font-medium text-gray-500 dark:text-gray-400; +} +.fc .fc-timegrid-axis-cushion { + @apply text-sm font-medium text-gray-500 dark:text-gray-400; +} + +.input-date-icon::-webkit-inner-spin-button, +.input-date-icon::-webkit-calendar-picker-indicator { + opacity: 0; + -webkit-appearance: none; +} + +.swiper-button-prev svg, +.swiper-button-next svg { + @apply h-auto! w-auto!; +} + +.carouselTwo .swiper-button-next:after, +.carouselTwo .swiper-button-prev:after, +.carouselFour .swiper-button-next:after, +.carouselFour .swiper-button-prev:after { + @apply hidden; +} +.carouselTwo .swiper-button-next.swiper-button-disabled, +.carouselTwo .swiper-button-prev.swiper-button-disabled, +.carouselFour .swiper-button-next.swiper-button-disabled, +.carouselFour .swiper-button-prev.swiper-button-disabled { + @apply bg-white/60 opacity-100!; +} +.carouselTwo .swiper-button-next, +.carouselTwo .swiper-button-prev, +.carouselFour .swiper-button-next, +.carouselFour .swiper-button-prev { + @apply shadow-slider-navigation h-10 w-10 rounded-full border-[0.5px] border-white/10 bg-white/90 text-gray-700! backdrop-blur-[10px]; +} + +.carouselTwo .swiper-button-prev, +.carouselFour .swiper-button-prev { + @apply left-3! sm:left-4!; +} + +.carouselTwo .swiper-button-next, +.carouselFour .swiper-button-next { + @apply right-3! sm:right-4!; +} + +.carouselThree .swiper-pagination, +.carouselFour .swiper-pagination { + @apply shadow-slider-navigation bottom-3! left-1/2! inline-flex w-auto! -translate-x-1/2 items-center gap-1.5 rounded-[40px] border-[0.5px] border-white/10 bg-white/60 px-2 py-1.5 backdrop-blur-[10px] sm:bottom-5!; +} + +.carouselThree .swiper-pagination-bullet, +.carouselFour .swiper-pagination-bullet { + @apply shadow-theme-xs m-0! h-2.5 w-2.5 bg-white opacity-100 duration-200 ease-in-out; +} + +.carouselThree .swiper-pagination-bullet-active, +.carouselFour .swiper-pagination-bullet-active { + @apply w-6.5 rounded-xl; +} + +.form-check-input:checked ~ span { + @apply border-brand-500 dark:border-brand-500 border-[6px]; +} + +.taskCheckbox:checked ~ .box span { + @apply opacity-100; +} +.taskCheckbox:checked ~ p { + @apply text-gray-400 line-through; +} +.taskCheckbox:checked ~ .box { + @apply border-brand-500 bg-brand-500 dark:border-brand-500; +} + +.task { + transition: all 0.2s ease; /* Smooth transition for visual effects */ +} + +.task.is-dragging { + border-radius: 0.75rem; + box-shadow: + 0px 1px 3px 0px rgba(16, 24, 40, 0.1), + 0px 1px 2px 0px rgba(16, 24, 40, 0.06); + opacity: 0.8; + cursor: grabbing; /* Changes the cursor to indicate dragging */ +} diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/form-elements.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/form-elements.html new file mode 100644 index 0000000..44056f7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/form-elements.html @@ -0,0 +1,1573 @@ + + + + + + + + Form Elements | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + + +
+
+
+
+

+ Default Inputs +

+
+
+ +
+ + +
+ + +
+ + +
+ + +
+ +
+ + + + + + +
+
+ + +
+ +
+ + + + + + + + + + +
+
+ + +
+ + +
+ + + + + + +
+
+ + +
+ +
+ + + + + + +
+
+ + +
+ + +
+ + + + + + + + +
+
+
+
+ +
+
+

+ Select Inputs +

+
+
+ +
+ +
+ + + + + + +
+
+ + +
+ +
+ + +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+

+ Textarea input field +

+
+
+ +
+ + +
+ + +
+ + +
+ + +
+ + +

+ Please enter a message in the textarea. +

+
+
+
+ +
+
+

+ Input States +

+

+ Validation styles for error, success and disabled states + on form controls. +

+
+
+ +
+ +
+ + + + + + +
+ +

+ This is an error message. +

+
+ + +
+ +
+ + + + + + +
+ +

+ This is an success message. +

+
+ + +
+ + +
+
+
+
+ +
+
+
+

+ Input Group +

+
+
+ +
+ +
+ + + + + + +
+
+ + +
+ +
+
+ +
+ + + +
+
+ +
+
+ + +
+ +
+
+ +
+ + + +
+
+ +
+
+ + +
+ +
+ + http:// + + +
+
+ + +
+ +
+ + +
+
+
+
+ +
+
+

+ File Input +

+
+
+ +
+ + +
+
+
+ +
+
+

+ Checkboxes +

+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+

+ Radio Buttons +

+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+

+ Toggle switch input +

+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ + +
+
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+

+ Dropzone +

+
+
+
+
+
+
+ + + +
+
+ +

+ Drop File Here +

+ + Drag and drop your PNG, JPG, WebP, SVG images here or + browse + + + + Browse File + +
+
+
+
+
+
+ +
+
+ +
+ +
+ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images.html new file mode 100644 index 0000000..1946876 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images.html @@ -0,0 +1,110 @@ + + + + + + + Images | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Responsive image +

+
+
+ +
+
+ +
+
+

+ Image in 2 Grid +

+
+
+ +
+
+ +
+
+

+ Image in 3 Grid +

+
+
+ +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-01.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-01.svg new file mode 100644 index 0000000..7321fbf --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-01.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-02.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-02.svg new file mode 100644 index 0000000..14da422 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-02.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-03.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-03.svg new file mode 100644 index 0000000..8d29afa --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-03.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-04.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-04.svg new file mode 100644 index 0000000..837a4d4 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-04.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-05.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-05.svg new file mode 100644 index 0000000..7044f46 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-05.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-06.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-06.svg new file mode 100644 index 0000000..78c5d01 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-06.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-07.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-07.svg new file mode 100644 index 0000000..5abb368 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-07.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-08.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-08.svg new file mode 100644 index 0000000..71bc1e2 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-08.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-09.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-09.svg new file mode 100644 index 0000000..1330ba2 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-09.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-10.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-10.svg new file mode 100644 index 0000000..60308dd --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-10.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-11.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-11.svg new file mode 100644 index 0000000..b316bb4 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-11.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-12.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-12.svg new file mode 100644 index 0000000..8396a56 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-12.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-13.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-13.svg new file mode 100644 index 0000000..dd53f79 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-13.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-14.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-14.svg new file mode 100644 index 0000000..381d72d --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-14.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-15.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-15.svg new file mode 100644 index 0000000..dfde3dd --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/brand/brand-15.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-01.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-01.svg new file mode 100644 index 0000000..4c14b12 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-01.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-02.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-02.svg new file mode 100644 index 0000000..52f57c7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-02.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-03.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-03.svg new file mode 100644 index 0000000..e435fab --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-03.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-04.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-04.svg new file mode 100644 index 0000000..93b49b6 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-04.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-05.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-05.svg new file mode 100644 index 0000000..5aa26b5 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-05.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-06.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-06.svg new file mode 100644 index 0000000..730e2e6 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-06.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-07.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-07.svg new file mode 100644 index 0000000..ce770d4 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-07.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-08.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-08.svg new file mode 100644 index 0000000..c652b95 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/country/country-08.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/error/404-dark.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/error/404-dark.svg new file mode 100644 index 0000000..4d14ec9 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/error/404-dark.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/error/404.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/error/404.svg new file mode 100644 index 0000000..ff8b8a2 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/error/404.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/favicon.ico b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/favicon.ico new file mode 100644 index 0000000..cf3128a Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/favicon.ico differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-01.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-01.png new file mode 100644 index 0000000..b00223b Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-01.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-02.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-02.png new file mode 100644 index 0000000..e1e9fb2 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-02.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-03.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-03.png new file mode 100644 index 0000000..9fe184a Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-03.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-04.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-04.png new file mode 100644 index 0000000..0020a65 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-04.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-05.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-05.png new file mode 100644 index 0000000..9ee8797 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-05.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-06.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-06.png new file mode 100644 index 0000000..d7e3668 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/grid-image/image-06.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-image-dark.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-image-dark.svg new file mode 100644 index 0000000..ff2d6df --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-image-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-image.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-image.svg new file mode 100644 index 0000000..0303d63 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-image.svg @@ -0,0 +1,3 @@ + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-pdf-dark.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-pdf-dark.svg new file mode 100644 index 0000000..8fc5a47 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-pdf-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-pdf.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-pdf.svg new file mode 100644 index 0000000..a525a26 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-pdf.svg @@ -0,0 +1,3 @@ + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-video-dark.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-video-dark.svg new file mode 100644 index 0000000..9415c3d --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-video-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-video.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-video.svg new file mode 100644 index 0000000..49732ca --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/icons/file-video.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/auth-logo.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/auth-logo.svg new file mode 100644 index 0000000..eb11cc7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/auth-logo.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo-dark.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo-dark.svg new file mode 100644 index 0000000..4b94dac --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo-dark.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo-icon.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo-icon.svg new file mode 100644 index 0000000..11d52ca --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo-icon.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo.svg new file mode 100644 index 0000000..758dedd --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/logo/logo.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-01.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-01.jpg new file mode 100644 index 0000000..7ffb1e6 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-01.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-02.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-02.jpg new file mode 100644 index 0000000..db30a9a Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-02.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-03.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-03.jpg new file mode 100644 index 0000000..95fd8d4 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-03.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-04.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-04.jpg new file mode 100644 index 0000000..131a9f5 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-04.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-05.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-05.jpg new file mode 100644 index 0000000..1ad17a9 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/product/product-05.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/shape/grid-01.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/shape/grid-01.svg new file mode 100644 index 0000000..6490367 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/shape/grid-01.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/owner.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/owner.jpg new file mode 100644 index 0000000..55985fe Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/owner.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-01.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-01.jpg new file mode 100644 index 0000000..4877840 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-01.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-02.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-02.jpg new file mode 100644 index 0000000..fe64d3e Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-02.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-03.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-03.jpg new file mode 100644 index 0000000..7a8647a Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-03.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-04.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-04.jpg new file mode 100644 index 0000000..0522414 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-04.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-05.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-05.jpg new file mode 100644 index 0000000..c0b7ddb Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-05.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-06.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-06.jpg new file mode 100644 index 0000000..d80d37e Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-06.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-07.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-07.jpg new file mode 100644 index 0000000..7e8f58d Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-07.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-08.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-08.jpg new file mode 100644 index 0000000..86d14ef Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-08.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-09.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-09.jpg new file mode 100644 index 0000000..35942ed Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-09.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-10.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-10.jpg new file mode 100644 index 0000000..e330208 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-10.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-11.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-11.jpg new file mode 100644 index 0000000..7aa2dd9 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-11.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-12.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-12.jpg new file mode 100644 index 0000000..2b9065c Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-12.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-13.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-13.jpg new file mode 100644 index 0000000..7657777 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-13.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-14.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-14.jpg new file mode 100644 index 0000000..28ef7a9 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-14.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-15.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-15.jpg new file mode 100644 index 0000000..e39fb30 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-15.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-16.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-16.jpg new file mode 100644 index 0000000..f23e96c Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-16.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-17.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-17.jpg new file mode 100644 index 0000000..4effac3 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-17.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-18.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-18.jpg new file mode 100644 index 0000000..4660835 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-18.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-19.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-19.jpg new file mode 100644 index 0000000..b8d2ae9 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-19.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-20.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-20.jpg new file mode 100644 index 0000000..6acae07 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-20.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-21.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-21.jpg new file mode 100644 index 0000000..d86084c Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-21.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-22.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-22.jpg new file mode 100644 index 0000000..9cf7e13 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-22.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-23.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-23.jpg new file mode 100644 index 0000000..b79ffec Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-23.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-24.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-24.jpg new file mode 100644 index 0000000..ee09128 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-24.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-25.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-25.jpg new file mode 100644 index 0000000..e930892 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-25.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-26.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-26.jpg new file mode 100644 index 0000000..c4934b4 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-26.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-27.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-27.jpg new file mode 100644 index 0000000..2a08ebe Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-27.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-28.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-28.jpg new file mode 100644 index 0000000..82cf2d1 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-28.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-29.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-29.jpg new file mode 100644 index 0000000..1a1fa49 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-29.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-30.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-30.jpg new file mode 100644 index 0000000..512e8dd Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-30.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-31.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-31.jpg new file mode 100644 index 0000000..0144b84 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-31.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-32.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-32.jpg new file mode 100644 index 0000000..712e336 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-32.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-33.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-33.jpg new file mode 100644 index 0000000..1f7796b Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-33.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-34.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-34.jpg new file mode 100644 index 0000000..40202f6 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-34.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-35.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-35.jpg new file mode 100644 index 0000000..b78921a Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-35.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-36.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-36.jpg new file mode 100644 index 0000000..a023f2f Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-36.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-37.jpg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-37.jpg new file mode 100644 index 0000000..6d3186e Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/user/user-37.jpg differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/video-thumb/thumb-16.png b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/video-thumb/thumb-16.png new file mode 100644 index 0000000..1f12017 Binary files /dev/null and b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/video-thumb/thumb-16.png differ diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/video-thumb/youtube-icon-84.svg b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/video-thumb/youtube-icon-84.svg new file mode 100644 index 0000000..5a9478a --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/images/video-thumb/youtube-icon-84.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/index.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/index.html new file mode 100644 index 0000000..cb076d7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/index.html @@ -0,0 +1,88 @@ + + + + + + + + eCommerce Dashboard | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/calendar-init.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/calendar-init.js new file mode 100644 index 0000000..47d080f --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/calendar-init.js @@ -0,0 +1,315 @@ +import { Calendar } from "@fullcalendar/core"; +import dayGridPlugin from "@fullcalendar/daygrid"; +import listPlugin from "@fullcalendar/list"; +import timeGridPlugin from "@fullcalendar/timegrid"; +import interactionPlugin from "@fullcalendar/interaction"; + +/*========Calender Js=========*/ +/*==========================*/ + +document.addEventListener("DOMContentLoaded", function () { + const calendarWrapper = document.querySelector("#calendar"); + + if (calendarWrapper) { + /*=================*/ + // Calender Date variable + /*=================*/ + const newDate = new Date(); + const getDynamicMonth = () => { + const month = newDate.getMonth() + 1; + return month < 10 ? `0${month}` : `${month}`; + }; + + /*=================*/ + // Calender Modal Elements + /*=================*/ + const getModalTitleEl = document.querySelector("#event-title"); + const getModalStartDateEl = document.querySelector("#event-start-date"); + const getModalEndDateEl = document.querySelector("#event-end-date"); + const getModalAddBtnEl = document.querySelector(".btn-add-event"); + const getModalUpdateBtnEl = document.querySelector(".btn-update-event"); + const calendarsEvents = { + Danger: "danger", + Success: "success", + Primary: "primary", + Warning: "warning", + }; + + /*=====================*/ + // Calendar Elements and options + /*=====================*/ + const calendarEl = document.querySelector("#calendar"); + + const calendarHeaderToolbar = { + left: "prev,next addEventButton", + center: "title", + right: "dayGridMonth,timeGridWeek,timeGridDay", + }; + + const calendarEventsList = [ + { + id: 1, + title: "Event Conf.", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-01`, + extendedProps: { calendar: "Danger" }, + }, + { + id: 2, + title: "Seminar #4", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-07`, + end: `${newDate.getFullYear()}-${getDynamicMonth()}-10`, + extendedProps: { calendar: "Success" }, + }, + { + groupId: "999", + id: 3, + title: "Meeting #5", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-09T16:00:00`, + extendedProps: { calendar: "Primary" }, + }, + { + groupId: "999", + id: 4, + title: "Submission #1", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-16T16:00:00`, + extendedProps: { calendar: "Warning" }, + }, + { + id: 5, + title: "Seminar #6", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-11`, + end: `${newDate.getFullYear()}-${getDynamicMonth()}-13`, + extendedProps: { calendar: "Danger" }, + }, + { + id: 6, + title: "Meeting 3", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-12T10:30:00`, + end: `${newDate.getFullYear()}-${getDynamicMonth()}-12T12:30:00`, + extendedProps: { calendar: "Success" }, + }, + { + id: 7, + title: "Meetup #", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-12T12:00:00`, + extendedProps: { calendar: "Primary" }, + }, + { + id: 8, + title: "Submission", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-12T14:30:00`, + extendedProps: { calendar: "Warning" }, + }, + { + id: 9, + title: "Attend event", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-13T07:00:00`, + extendedProps: { calendar: "Success" }, + }, + { + id: 10, + title: "Project submission #2", + start: `${newDate.getFullYear()}-${getDynamicMonth()}-28`, + extendedProps: { calendar: "Primary" }, + }, + ]; + + /*=====================*/ + // Modal Functions + /*=====================*/ + const openModal = () => { + document.getElementById("eventModal").style.display = "flex"; + }; + + const closeModal = () => { + document.getElementById("eventModal").style.display = "none"; + resetModalFields(); + }; + + // Close modal when clicking outside of it + window.onclick = function (event) { + const modal = document.getElementById("eventModal"); + if (event.target === modal) { + closeModal(); + } + }; + + /*=====================*/ + // Calendar Select fn. + /*=====================*/ + const calendarSelect = (info) => { + resetModalFields(); + + getModalAddBtnEl.style.display = "flex"; + getModalUpdateBtnEl.style.display = "none"; + openModal(); + getModalStartDateEl.value = info.startStr; + getModalEndDateEl.value = info.endStr || info.startStr; + getModalTitleEl.value = ""; + }; + + /*=====================*/ + // Calendar AddEvent fn. + /*=====================*/ + const calendarAddEvent = () => { + const currentDate = new Date(); + const dd = String(currentDate.getDate()).padStart(2, "0"); + const mm = String(currentDate.getMonth() + 1).padStart(2, "0"); + const yyyy = currentDate.getFullYear(); + const combineDate = `${yyyy}-${mm}-${dd}T00:00:00`; + + getModalAddBtnEl.style.display = "flex"; + getModalUpdateBtnEl.style.display = "none"; + openModal(); + getModalStartDateEl.value = combineDate; + }; + + /*=====================*/ + // Calender Event Function + /*=====================*/ + const calendarEventClick = (info) => { + const eventObj = info.event; + + if (eventObj.url) { + window.open(eventObj.url); + info.jsEvent.preventDefault(); + } else { + const getModalEventId = eventObj._def.publicId; + const getModalEventLevel = eventObj._def.extendedProps.calendar; + const getModalCheckedRadioBtnEl = document.querySelector( + `input[value="${getModalEventLevel}"]`, + ); + + getModalTitleEl.value = eventObj.title; + getModalStartDateEl.value = eventObj.startStr.slice(0, 10); + getModalEndDateEl.value = eventObj.endStr + ? eventObj.endStr.slice(0, 10) + : ""; + if (getModalCheckedRadioBtnEl) { + getModalCheckedRadioBtnEl.checked = true; + } + getModalUpdateBtnEl.dataset.fcEventPublicId = getModalEventId; + getModalAddBtnEl.style.display = "none"; + getModalUpdateBtnEl.style.display = "block"; + openModal(); + } + }; + + /*=====================*/ + // Active Calender + /*=====================*/ + const calendar = new Calendar(calendarEl, { + plugins: [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin], + selectable: true, + initialView: "dayGridMonth", + initialDate: `${newDate.getFullYear()}-${getDynamicMonth()}-07`, + headerToolbar: calendarHeaderToolbar, + events: calendarEventsList, + select: calendarSelect, + eventClick: calendarEventClick, + dateClick: calendarAddEvent, + customButtons: { + addEventButton: { + text: "Add Event +", + click: calendarAddEvent, + }, + }, + eventClassNames({ event: calendarEvent }) { + const getColorValue = + calendarsEvents[calendarEvent._def.extendedProps.calendar]; + return [`event-fc-color`, `fc-bg-${getColorValue}`]; + }, + }); + + /*=====================*/ + // Update Calender Event + /*=====================*/ + getModalUpdateBtnEl.addEventListener("click", () => { + const getPublicID = getModalUpdateBtnEl.dataset.fcEventPublicId; + const getTitleUpdatedValue = getModalTitleEl.value; + const setModalStartDateValue = getModalStartDateEl.value; + const setModalEndDateValue = getModalEndDateEl.value; + const getEvent = calendar.getEventById(getPublicID); + const getModalUpdatedCheckedRadioBtnEl = document.querySelector( + 'input[name="event-level"]:checked', + ); + + const getModalUpdatedCheckedRadioBtnValue = + getModalUpdatedCheckedRadioBtnEl + ? getModalUpdatedCheckedRadioBtnEl.value + : ""; + + getEvent.setProp("title", getTitleUpdatedValue); + getEvent.setDates(setModalStartDateValue, setModalEndDateValue); + getEvent.setExtendedProp("calendar", getModalUpdatedCheckedRadioBtnValue); + closeModal(); + }); + + /*=====================*/ + // Add Calender Event + /*=====================*/ + getModalAddBtnEl.addEventListener("click", () => { + const getModalCheckedRadioBtnEl = document.querySelector( + 'input[name="event-level"]:checked', + ); + + const getTitleValue = getModalTitleEl.value; + const setModalStartDateValue = getModalStartDateEl.value; + const setModalEndDateValue = getModalEndDateEl.value; + const getModalCheckedRadioBtnValue = getModalCheckedRadioBtnEl + ? getModalCheckedRadioBtnEl.value + : ""; + + calendar.addEvent({ + id: Date.now(), // Use unique ID based on timestamp + title: getTitleValue, + start: setModalStartDateValue, + end: setModalEndDateValue, + allDay: true, + extendedProps: { calendar: getModalCheckedRadioBtnValue }, + }); + closeModal(); + }); + + /*=====================*/ + // Calendar Init + /*=====================*/ + calendar.render(); + + // Reset modal fields when hidden + document.getElementById("eventModal").addEventListener("click", (event) => { + if (event.target.classList.contains("modal-close-btn")) { + closeModal(); + } + }); + + function resetModalFields() { + getModalTitleEl.value = ""; + getModalStartDateEl.value = ""; + getModalEndDateEl.value = ""; + const getModalIfCheckedRadioBtnEl = document.querySelector( + 'input[name="event-level"]:checked', + ); + if (getModalIfCheckedRadioBtnEl) { + getModalIfCheckedRadioBtnEl.checked = false; + } + } + + document + .getElementById("eventModal") + .addEventListener("hidden.bs.modal", () => { + resetModalFields(); + }); + + // Close modal when clicking on close button or outside modal + document.querySelectorAll(".modal-close-btn").forEach((btn) => { + btn.addEventListener("click", closeModal); + }); + + window.addEventListener("click", (event) => { + if (event.target === document.getElementById("eventModal")) { + closeModal(); + } + }); + } +}); diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-01.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-01.js new file mode 100644 index 0000000..4d75cca --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-01.js @@ -0,0 +1,106 @@ +import ApexCharts from "apexcharts"; + +// ===== chartOne +const chart01 = () => { + const chartOneOptions = { + series: [ + { + name: "Sales", + data: [168, 385, 201, 298, 187, 195, 291, 110, 215, 390, 280, 112], + }, + ], + colors: ["#465fff"], + chart: { + fontFamily: "Outfit, sans-serif", + type: "bar", + height: 180, + toolbar: { + show: false, + }, + }, + plotOptions: { + bar: { + horizontal: false, + columnWidth: "39%", + borderRadius: 5, + borderRadiusApplication: "end", + }, + }, + dataLabels: { + enabled: false, + }, + stroke: { + show: true, + width: 4, + colors: ["transparent"], + }, + xaxis: { + categories: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ], + axisBorder: { + show: false, + }, + axisTicks: { + show: false, + }, + }, + legend: { + show: true, + position: "top", + horizontalAlign: "left", + fontFamily: "Outfit", + + markers: { + radius: 99, + }, + }, + yaxis: { + title: false, + }, + grid: { + yaxis: { + lines: { + show: true, + }, + }, + }, + fill: { + opacity: 1, + }, + + tooltip: { + x: { + show: false, + }, + y: { + formatter: function (val) { + return val; + }, + }, + }, + }; + + const chartSelector = document.querySelectorAll("#chartOne"); + + if (chartSelector.length) { + const chartFour = new ApexCharts( + document.querySelector("#chartOne"), + chartOneOptions, + ); + chartFour.render(); + } +}; + +export default chart01; diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-02.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-02.js new file mode 100644 index 0000000..4791ede --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-02.js @@ -0,0 +1,65 @@ +import ApexCharts from "apexcharts"; + +// ===== chartTwo +const chart02 = () => { + const chartTwoOptions = { + series: [75.55], + colors: ["#465FFF"], + chart: { + fontFamily: "Outfit, sans-serif", + type: "radialBar", + height: 330, + sparkline: { + enabled: true, + }, + }, + plotOptions: { + radialBar: { + startAngle: -90, + endAngle: 90, + hollow: { + size: "80%", + }, + track: { + background: "#E4E7EC", + strokeWidth: "100%", + margin: 5, // margin is in pixels + }, + dataLabels: { + name: { + show: false, + }, + value: { + fontSize: "36px", + fontWeight: "600", + offsetY: 60, + color: "#1D2939", + formatter: function (val) { + return val + "%"; + }, + }, + }, + }, + }, + fill: { + type: "solid", + colors: ["#465FFF"], + }, + stroke: { + lineCap: "round", + }, + labels: ["Progress"], + }; + + const chartSelector = document.querySelectorAll("#chartTwo"); + + if (chartSelector.length) { + const chartFour = new ApexCharts( + document.querySelector("#chartTwo"), + chartTwoOptions, + ); + chartFour.render(); + } +}; + +export default chart02; diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-03.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-03.js new file mode 100644 index 0000000..232ca12 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/charts/chart-03.js @@ -0,0 +1,113 @@ +import ApexCharts from "apexcharts"; + +// ===== chartThree +const chart03 = () => { + const chartThreeOptions = { + series: [ + { + name: "Sales", + data: [180, 190, 170, 160, 175, 165, 170, 205, 230, 210, 240, 235], + }, + { + name: "Revenue", + data: [40, 30, 50, 40, 55, 40, 70, 100, 110, 120, 150, 140], + }, + ], + legend: { + show: false, + position: "top", + horizontalAlign: "left", + }, + colors: ["#465FFF", "#9CB9FF"], + chart: { + fontFamily: "Outfit, sans-serif", + height: 310, + type: "area", + toolbar: { + show: false, + }, + }, + fill: { + gradient: { + enabled: true, + opacityFrom: 0.55, + opacityTo: 0, + }, + }, + stroke: { + curve: "straight", + width: ["2", "2"], + }, + + markers: { + size: 0, + }, + labels: { + show: false, + position: "top", + }, + grid: { + xaxis: { + lines: { + show: false, + }, + }, + yaxis: { + lines: { + show: true, + }, + }, + }, + dataLabels: { + enabled: false, + }, + tooltip: { + x: { + format: "dd MMM yyyy", + }, + }, + xaxis: { + type: "category", + categories: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ], + axisBorder: { + show: false, + }, + axisTicks: { + show: false, + }, + tooltip: false, + }, + yaxis: { + title: { + style: { + fontSize: "0px", + }, + }, + }, + }; + + const chartSelector = document.querySelectorAll("#chartThree"); + + if (chartSelector.length) { + const chartThree = new ApexCharts( + document.querySelector("#chartThree"), + chartThreeOptions, + ); + chartThree.render(); + } +}; + +export default chart03; diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/image-resize.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/image-resize.js new file mode 100644 index 0000000..baa82c2 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/image-resize.js @@ -0,0 +1,302 @@ +/* + * @author https://twitter.com/blurspline / https://github.com/zz85 + * See post @ http://www.lab4games.net/zz85/blog/2014/11/15/resizing-moving-snapping-windows-with-js-css/ + */ + +if (document.querySelectorAll("#pane").length) { + ("use strict"); + + // Minimum resizable area + var minWidth = 60; + var minHeight = 40; + + // Thresholds + var FULLSCREEN_MARGINS = -10; + var MARGINS = 4; + + // End of what's configurable. + var clicked = null; + var onRightEdge, onBottomEdge, onLeftEdge, onTopEdge; + + var rightScreenEdge, bottomScreenEdge; + + var preSnapped; + + var b, x, y; + + var redraw = false; + + var pane = document.getElementById("pane"); + var ghostpane = document.getElementById("ghostpane"); + + function setBounds(element, x, y, w, h) { + element.style.left = x + "px"; + element.style.top = y + "px"; + element.style.width = w + "px"; + element.style.height = h + "px"; + } + + function hintHide() { + setBounds(ghostpane, b.left, b.top, b.width, b.height); + ghostpane.style.opacity = 0; + + // var b = ghostpane.getBoundingClientRect(); + // ghostpane.style.top = b.top + b.height / 2; + // ghostpane.style.left = b.left + b.width / 2; + // ghostpane.style.width = 0; + // ghostpane.style.height = 0; + } + + // Mouse events + pane.addEventListener("mousedown", onMouseDown); + document.addEventListener("mousemove", onMove); + document.addEventListener("mouseup", onUp); + + // Touch events + pane.addEventListener("touchstart", onTouchDown); + document.addEventListener("touchmove", onTouchMove); + document.addEventListener("touchend", onTouchEnd); + + function onTouchDown(e) { + onDown(e.touches[0]); + e.preventDefault(); + } + + function onTouchMove(e) { + onMove(e.touches[0]); + } + + function onTouchEnd(e) { + if (e.touches.length == 0) onUp(e.changedTouches[0]); + } + + function onMouseDown(e) { + onDown(e); + e.preventDefault(); + } + + function onDown(e) { + calc(e); + + var isResizing = onRightEdge || onBottomEdge || onTopEdge || onLeftEdge; + + clicked = { + x: x, + y: y, + cx: e.clientX, + cy: e.clientY, + w: b.width, + h: b.height, + isResizing: isResizing, + isMoving: !isResizing && canMove(), + onTopEdge: onTopEdge, + onLeftEdge: onLeftEdge, + onRightEdge: onRightEdge, + onBottomEdge: onBottomEdge, + }; + } + + function canMove() { + return x > 0 && x < b.width && y > 0 && y < b.height && y < 30; + } + + function calc(e) { + b = pane.getBoundingClientRect(); + x = e.clientX - b.left; + y = e.clientY - b.top; + + onTopEdge = y < MARGINS; + onLeftEdge = x < MARGINS; + onRightEdge = x >= b.width - MARGINS; + onBottomEdge = y >= b.height - MARGINS; + + rightScreenEdge = window.innerWidth - MARGINS; + bottomScreenEdge = window.innerHeight - MARGINS; + } + + var e; + + function onMove(ee) { + calc(ee); + + e = ee; + + redraw = true; + } + + function animate() { + requestAnimationFrame(animate); + + if (!redraw) return; + + redraw = false; + + if (clicked && clicked.isResizing) { + if (clicked.onRightEdge) pane.style.width = Math.max(x, minWidth) + "px"; + if (clicked.onBottomEdge) + pane.style.height = Math.max(y, minHeight) + "px"; + + if (clicked.onLeftEdge) { + var currentWidth = Math.max( + clicked.cx - e.clientX + clicked.w, + minWidth, + ); + if (currentWidth > minWidth) { + pane.style.width = currentWidth + "px"; + pane.style.left = e.clientX + "px"; + } + } + + if (clicked.onTopEdge) { + var currentHeight = Math.max( + clicked.cy - e.clientY + clicked.h, + minHeight, + ); + if (currentHeight > minHeight) { + pane.style.height = currentHeight + "px"; + pane.style.top = e.clientY + "px"; + } + } + + hintHide(); + + return; + } + + if (clicked && clicked.isMoving) { + if ( + b.top < FULLSCREEN_MARGINS || + b.left < FULLSCREEN_MARGINS || + b.right > window.innerWidth - FULLSCREEN_MARGINS || + b.bottom > window.innerHeight - FULLSCREEN_MARGINS + ) { + // hintFull(); + setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight); + ghostpane.style.opacity = 0.2; + } else if (b.top < MARGINS) { + // hintTop(); + setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight / 2); + ghostpane.style.opacity = 0.2; + } else if (b.left < MARGINS) { + // hintLeft(); + setBounds(ghostpane, 0, 0, window.innerWidth / 2, window.innerHeight); + ghostpane.style.opacity = 0.2; + } else if (b.right > rightScreenEdge) { + // hintRight(); + setBounds( + ghostpane, + window.innerWidth / 2, + 0, + window.innerWidth / 2, + window.innerHeight, + ); + ghostpane.style.opacity = 0.2; + } else if (b.bottom > bottomScreenEdge) { + // hintBottom(); + setBounds( + ghostpane, + 0, + window.innerHeight / 2, + window.innerWidth, + window.innerWidth / 2, + ); + ghostpane.style.opacity = 0.2; + } else { + hintHide(); + } + + if (preSnapped) { + setBounds( + pane, + e.clientX - preSnapped.width / 2, + e.clientY - Math.min(clicked.y, preSnapped.height), + preSnapped.width, + preSnapped.height, + ); + return; + } + + // moving + pane.style.top = e.clientY - clicked.y + "px"; + pane.style.left = e.clientX - clicked.x + "px"; + + return; + } + + // This code executes when mouse moves without clicking + + // style cursor + if ((onRightEdge && onBottomEdge) || (onLeftEdge && onTopEdge)) { + pane.style.cursor = "nwse-resize"; + } else if ((onRightEdge && onTopEdge) || (onBottomEdge && onLeftEdge)) { + pane.style.cursor = "nesw-resize"; + } else if (onRightEdge || onLeftEdge) { + pane.style.cursor = "ew-resize"; + } else if (onBottomEdge || onTopEdge) { + pane.style.cursor = "ns-resize"; + } else if (canMove()) { + pane.style.cursor = "move"; + } else { + pane.style.cursor = "default"; + } + } + + animate(); + + function onUp(e) { + calc(e); + + if (clicked && clicked.isMoving) { + // Snap + var snapped = { + width: b.width, + height: b.height, + }; + + if ( + b.top < FULLSCREEN_MARGINS || + b.left < FULLSCREEN_MARGINS || + b.right > window.innerWidth - FULLSCREEN_MARGINS || + b.bottom > window.innerHeight - FULLSCREEN_MARGINS + ) { + // hintFull(); + setBounds(pane, 0, 0, window.innerWidth, window.innerHeight); + preSnapped = snapped; + } else if (b.top < MARGINS) { + // hintTop(); + setBounds(pane, 0, 0, window.innerWidth, window.innerHeight / 2); + preSnapped = snapped; + } else if (b.left < MARGINS) { + // hintLeft(); + setBounds(pane, 0, 0, window.innerWidth / 2, window.innerHeight); + preSnapped = snapped; + } else if (b.right > rightScreenEdge) { + // hintRight(); + setBounds( + pane, + window.innerWidth / 2, + 0, + window.innerWidth / 2, + window.innerHeight, + ); + preSnapped = snapped; + } else if (b.bottom > bottomScreenEdge) { + // hintBottom(); + setBounds( + pane, + 0, + window.innerHeight / 2, + window.innerWidth, + window.innerWidth / 2, + ); + preSnapped = snapped; + } else { + preSnapped = null; + } + + hintHide(); + } + + clicked = null; + } +} diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/map-01.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/map-01.js new file mode 100644 index 0000000..1f9b2d2 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/components/map-01.js @@ -0,0 +1,63 @@ +import jsVectorMap from "jsvectormap"; +import "jsvectormap/dist/maps/world"; + +const map01 = () => { + const mapSelectorOne = document.querySelectorAll("#mapOne"); + + if (mapSelectorOne.length) { + const mapOne = new jsVectorMap({ + selector: "#mapOne", + map: "world", + zoomButtons: false, + + regionStyle: { + initial: { + fontFamily: "Outfit", + fill: "#D9D9D9", + }, + hover: { + fillOpacity: 1, + fill: "#465fff", + }, + }, + markers: [ + { + name: "Egypt", + coords: [26.8206, 30.8025], + }, + { + name: "United Kingdom", + coords: [55.3781, 3.436], + }, + { + name: "United States", + coords: [37.0902, -95.7129], + }, + ], + + markerStyle: { + initial: { + strokeWidth: 1, + fill: "#465fff", + fillOpacity: 1, + r: 4, + }, + hover: { + fill: "#465fff", + fillOpacity: 1, + }, + selected: {}, + selectedHover: {}, + }, + + onRegionTooltipShow: function (tooltip, code) { + if (code === "EG") { + tooltip.selector.innerHTML = + tooltip.text() + " (Hello Russia)"; + } + }, + }); + } +}; + +export default map01; diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/index.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/index.js new file mode 100644 index 0000000..245c6c3 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/js/index.js @@ -0,0 +1,118 @@ +import "jsvectormap/dist/jsvectormap.min.css"; +import "flatpickr/dist/flatpickr.min.css"; +import "dropzone/dist/dropzone.css"; +import "../css/style.css"; + +import Alpine from "alpinejs"; +import persist from "@alpinejs/persist"; +import flatpickr from "flatpickr"; +import Dropzone from "dropzone"; + +import chart01 from "./components/charts/chart-01"; +import chart02 from "./components/charts/chart-02"; +import chart03 from "./components/charts/chart-03"; +import map01 from "./components/map-01"; +import "./components/calendar-init.js"; +import "./components/image-resize"; + +Alpine.plugin(persist); +window.Alpine = Alpine; +Alpine.start(); + +// Init flatpickr +flatpickr(".datepicker", { + mode: "range", + static: true, + monthSelectorType: "static", + dateFormat: "M j, Y", + defaultDate: [new Date().setDate(new Date().getDate() - 6), new Date()], + prevArrow: + '', + nextArrow: + '', + onReady: (selectedDates, dateStr, instance) => { + // eslint-disable-next-line no-param-reassign + instance.element.value = dateStr.replace("to", "-"); + const customClass = instance.element.getAttribute("data-class"); + instance.calendarContainer.classList.add(customClass); + }, + onChange: (selectedDates, dateStr, instance) => { + // eslint-disable-next-line no-param-reassign + instance.element.value = dateStr.replace("to", "-"); + }, +}); + +// Init Dropzone +const dropzoneArea = document.querySelectorAll("#demo-upload"); + +if (dropzoneArea.length) { + let myDropzone = new Dropzone("#demo-upload", { url: "/file/post" }); +} + +// Document Loaded +document.addEventListener("DOMContentLoaded", () => { + chart01(); + chart02(); + chart03(); + map01(); +}); + +// Get the current year +const year = document.getElementById("year"); +if (year) { + year.textContent = new Date().getFullYear(); +} + +// For Copy// +document.addEventListener("DOMContentLoaded", () => { + const copyInput = document.getElementById("copy-input"); + if (copyInput) { + // Select the copy button and input field + const copyButton = document.getElementById("copy-button"); + const copyText = document.getElementById("copy-text"); + const websiteInput = document.getElementById("website-input"); + + // Event listener for the copy button + copyButton.addEventListener("click", () => { + // Copy the input value to the clipboard + navigator.clipboard.writeText(websiteInput.value).then(() => { + // Change the text to "Copied" + copyText.textContent = "Copied"; + + // Reset the text back to "Copy" after 2 seconds + setTimeout(() => { + copyText.textContent = "Copy"; + }, 2000); + }); + }); + } +}); + +document.addEventListener("DOMContentLoaded", function () { + const searchInput = document.getElementById("search-input"); + const searchButton = document.getElementById("search-button"); + + // Function to focus the search input + function focusSearchInput() { + searchInput.focus(); + } + + // Add click event listener to the search button + searchButton.addEventListener("click", focusSearchInput); + + // Add keyboard event listener for Cmd+K (Mac) or Ctrl+K (Windows/Linux) + document.addEventListener("keydown", function (event) { + if ((event.metaKey || event.ctrlKey) && event.key === "k") { + event.preventDefault(); // Prevent the default browser behavior + focusSearchInput(); + } + }); + + // Add keyboard event listener for "/" key + document.addEventListener("keydown", function (event) { + if (event.key === "/" && document.activeElement !== searchInput) { + event.preventDefault(); // Prevent the "/" character from being typed + focusSearchInput(); + } + }); +}); diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/line-chart.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/line-chart.html new file mode 100644 index 0000000..b8fd6d5 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/line-chart.html @@ -0,0 +1,82 @@ + + + + + + + + Line Chart | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+
+
+

+ Line Chart 1 +

+
+
+ +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-error.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-error.html new file mode 100644 index 0000000..bc77c7c --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-error.html @@ -0,0 +1,76 @@ +
+
+
+ + + +
+ +
+

+ Error Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+ + + Learn more + +
+
+
+ +
+
+
+ + + +
+ +
+

+ Error Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-info.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-info.html new file mode 100644 index 0000000..615e190 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-info.html @@ -0,0 +1,76 @@ +
+
+
+ + + +
+ +
+

+ Success Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+ + + Learn more + +
+
+
+ +
+
+
+ + + +
+ +
+

+ Success Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-success.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-success.html new file mode 100644 index 0000000..3620017 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-success.html @@ -0,0 +1,76 @@ +
+
+
+ + + +
+ +
+

+ Success Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+ + + Learn more + +
+
+
+ +
+
+
+ + + +
+ +
+

+ Success Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-warning.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-warning.html new file mode 100644 index 0000000..9c05fe9 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/alert/alert-warning.html @@ -0,0 +1,76 @@ +
+
+
+ + + +
+ +
+

+ Warning Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+ + + Learn more + +
+
+
+ +
+
+
+ + + +
+ +
+

+ Warning Message +

+ +

+ You can insert a description for the message here.The text relates to + the action that has been performed. +

+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-01.html new file mode 100644 index 0000000..d03930b --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-01.html @@ -0,0 +1,49 @@ +
+
+ user +
+ +
+ user +
+ +
+ user +
+ +
+ user +
+ +
+ user +
+ +
+ user +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-02.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-02.html new file mode 100644 index 0000000..d7f7157 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-02.html @@ -0,0 +1,73 @@ +
+
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-03.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-03.html new file mode 100644 index 0000000..e50853a --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-03.html @@ -0,0 +1,73 @@ +
+
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-04.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-04.html new file mode 100644 index 0000000..5a9aefd --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/avatar/avatar-04.html @@ -0,0 +1,73 @@ +
+
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+ +
+ user + + +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-01.html new file mode 100644 index 0000000..d430860 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-01.html @@ -0,0 +1,50 @@ +
+ + + Primary + + + + + Success + + + + + Error + + + + + Warning + + + + + Info + + + + + Light + + + + + Dark + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-02.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-02.html new file mode 100644 index 0000000..05cc42c --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-02.html @@ -0,0 +1,50 @@ +
+ + + Primary + + + + + Success + + + + + Error + + + + + Warning + + + + + Info + + + + + Light + + + + + Dark + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-03.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-03.html new file mode 100644 index 0000000..fa91630 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-03.html @@ -0,0 +1,161 @@ +
+ + + + + + + Primary + + + + + + + + Success + + + + + + + + + Error + + + + + + + + + Warning + + + + + + + + + Info + + + + + + + + + Light + + + + + + + + + Dark + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-04.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-04.html new file mode 100644 index 0000000..f6a27e7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-04.html @@ -0,0 +1,162 @@ +
+ + + + + + + Primary + + + + + + + + + Success + + + + + + + + + Error + + + + + + + + + Warning + + + + + + + + + Info + + + + + + + + + Light + + + + + + + + + Dark + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-05.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-05.html new file mode 100644 index 0000000..cf7ea40 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-05.html @@ -0,0 +1,162 @@ +
+ + + Primary + + + + + + + + + Success + + + + + + + + + Error + + + + + + + + + Warning + + + + + + + + + Info + + + + + + + + + Light + + + + + + + + + Dark + + + + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-06.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-06.html new file mode 100644 index 0000000..da158fa --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/badge/badge-06.html @@ -0,0 +1,162 @@ +
+ + + Primary + + + + + + + + + Success + + + + + + + + + Error + + + + + + + + + Warning + + + + + + + + + Info + + + + + + + + + Light + + + + + + + + + Dark + + + + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/breadcrumb.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/breadcrumb.html new file mode 100644 index 0000000..a3614ec --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/breadcrumb.html @@ -0,0 +1,39 @@ +
+

+ + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-01.html new file mode 100644 index 0000000..81840cb --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-01.html @@ -0,0 +1,13 @@ +
+ + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-02.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-02.html new file mode 100644 index 0000000..fa7ef9d --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-02.html @@ -0,0 +1,44 @@ +
+ + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-03.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-03.html new file mode 100644 index 0000000..c637277 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-03.html @@ -0,0 +1,44 @@ +
+ + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-04.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-04.html new file mode 100644 index 0000000..3f90a57 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-04.html @@ -0,0 +1,13 @@ +
+ + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-05.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-05.html new file mode 100644 index 0000000..b1ed7e7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-05.html @@ -0,0 +1,43 @@ +
+ + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-06.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-06.html new file mode 100644 index 0000000..77750bf --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/buttons/button-06.html @@ -0,0 +1,45 @@ +
+ + + +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/calendar-event-modal.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/calendar-event-modal.html new file mode 100644 index 0000000..61e089b --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/calendar-event-modal.html @@ -0,0 +1,283 @@ + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-01.html new file mode 100644 index 0000000..61c0a95 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-01.html @@ -0,0 +1,57 @@ +
+
+

+ Monthly Sales +

+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-02.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-02.html new file mode 100644 index 0000000..c4b9739 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-02.html @@ -0,0 +1,157 @@ +
+
+
+
+

+ Monthly Target +

+

+ Target you’ve set for each month +

+
+
+ +
+ + +
+
+
+
+
+ +10% +
+

+ You earn $3287 today, it's higher than last month. Keep up your good work! +

+
+ +
+
+

+ Target +

+

+ $20K + + + +

+
+ +
+ +
+

+ Revenue +

+

+ $20K + + + +

+
+ +
+ +
+

+ Today +

+

+ $20K + + + +

+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-03.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-03.html new file mode 100644 index 0000000..21ae6fd --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/chart/chart-03.html @@ -0,0 +1,74 @@ +
+
+
+

+ Statistics +

+

+ Target you’ve set for each month +

+
+ +
+
+ + + +
+ +
+ +
+ + + +
+
+
+
+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/common-grid-shape.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/common-grid-shape.html new file mode 100644 index 0000000..8338591 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/common-grid-shape.html @@ -0,0 +1,8 @@ +
+ grid +
+
+ grid +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/common-social-links.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/common-social-links.html new file mode 100644 index 0000000..d39cab5 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/common-social-links.html @@ -0,0 +1,81 @@ +

+ Follow Us On +

+ + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/datepicker.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/datepicker.html new file mode 100644 index 0000000..57f85f9 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/datepicker.html @@ -0,0 +1,26 @@ +
+ +
+ + + +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-01.html new file mode 100644 index 0000000..8aafee0 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-01.html @@ -0,0 +1,13 @@ +
+
+ Cover +
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-02.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-02.html new file mode 100644 index 0000000..114182b --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-02.html @@ -0,0 +1,17 @@ +
+
+ image grid +
+ +
+ image grid +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-03.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-03.html new file mode 100644 index 0000000..56f448f --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/grid-image/image-03.html @@ -0,0 +1,25 @@ +
+
+ image grid +
+ +
+ image grid +
+ +
+ image grid +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/header.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/header.html new file mode 100644 index 0000000..28e50ee --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/header.html @@ -0,0 +1,758 @@ +
+
+
+ + + + + + Logo + + + + + + + + +
+ + +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/map-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/map-01.html new file mode 100644 index 0000000..fcbf68c --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/map-01.html @@ -0,0 +1,125 @@ +
+
+
+

+ Customers Demographic +

+

+ Number of customer based on country +

+
+ +
+ +
+ + +
+
+
+
+
+
+ +
+
+
+
+ usa +
+
+

+ USA +

+ + 2,379 Customers + +
+
+ +
+
+
+
+

+ 79% +

+
+
+ +
+
+
+ france +
+
+

+ France +

+ + 589 Customers + +
+
+ +
+
+
+
+

+ 23% +

+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/media-card.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/media-card.html new file mode 100644 index 0000000..ed28212 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/media-card.html @@ -0,0 +1,372 @@ +
+
+
+

+ All Media +

+ +
+
+ + + +
+ + +
+
+
+
+
+ +
+
+
+ + + +
+ +
+

+ Image +

+ + 17% Used + +
+
+ +
+ + 245 files + + + 26.40 GB + +
+
+ + +
+
+
+ + + +
+ +
+

+ Videos +

+ + 22% Used + +
+
+ +
+ + 245 files + + + 26.40 GB + +
+
+ + +
+
+
+ + + +
+ +
+

+ Audio +

+ + 24% Used + +
+
+ +
+ + 245 files + + + 26.40 GB + +
+
+ + +
+
+
+ + + +
+ +
+

+ Apps +

+ + 46% Used + +
+
+ +
+ + 245 files + + + 26.40 GB + +
+
+ + +
+
+
+ + + +
+ +
+

+ Docs +

+ + 18% Used + +
+
+ +
+ + 245 files + + + 26.40 GB + +
+
+ + +
+
+
+ + + +
+ +
+

+ Downloads +

+ + 16% Used + +
+
+ +
+ + 245 files + + + 26.40 GB + +
+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/metric-group/metric-group-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/metric-group/metric-group-01.html new file mode 100644 index 0000000..7a5b1ce --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/metric-group/metric-group-01.html @@ -0,0 +1,119 @@ +
+ +
+
+ + + +
+ +
+
+ Customers +

+ 3,782 +

+
+ + + + + + + 11.01% + +
+
+ + + +
+
+ + + +
+ +
+
+ Orders +

+ 5,359 +

+
+ + + + + + + 9.05% + +
+
+ +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/overlay.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/overlay.html new file mode 100644 index 0000000..5f31dc0 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/overlay.html @@ -0,0 +1,5 @@ +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/preloader.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/preloader.html new file mode 100644 index 0000000..a21b05d --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/preloader.html @@ -0,0 +1,9 @@ +
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/profile/profile-address-modal.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/profile/profile-address-modal.html new file mode 100644 index 0000000..4395eb9 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/profile/profile-address-modal.html @@ -0,0 +1,115 @@ +
+ +
+ + + +
+

+ Edit Address +

+

+ Update your details to keep your profile up-to-date. +

+
+
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ + +
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/profile/profile-info-modal.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/profile/profile-info-modal.html new file mode 100644 index 0000000..ce20c52 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/profile/profile-info-modal.html @@ -0,0 +1,196 @@ +
+ +
+ + +
+

+ Edit Personal Information +

+

+ Update your details to keep your profile up-to-date. +

+
+
+
+
+
+ Social Links +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+
+ Personal Information +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+
+ + +
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/sidebar.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/sidebar.html new file mode 100644 index 0000000..aee8a11 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/sidebar.html @@ -0,0 +1,779 @@ + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/table/table-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/table/table-01.html new file mode 100644 index 0000000..70374bf --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/table/table-01.html @@ -0,0 +1,341 @@ +
+
+
+

+ Recent Orders +

+
+ +
+ + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ Products +

+
+
+
+

+ Category +

+
+
+
+

+ Price +

+
+
+
+

+ Status +

+
+
+
+
+
+ Product +
+
+

+ Macbook pro 13” +

+ + 2 Variants + +
+
+
+
+
+

+ Laptop +

+
+
+
+

+ $2399.00 +

+
+
+
+

+ Delivered +

+
+
+
+
+
+ Product +
+
+

+ Apple Watch Ultra +

+ + 1 Variants + +
+
+
+
+
+

+ Watch +

+
+
+
+

+ $879.00 +

+
+
+
+

+ Pending +

+
+
+
+
+
+ Product +
+
+

+ iPhone 15 Pro Max +

+ + 2 Variants + +
+
+
+
+
+

+ SmartPhone +

+
+
+
+

+ $1869.00 +

+
+
+
+

+ Delivered +

+
+
+
+
+
+ Product +
+
+

+ iPad Pro 3rd Gen +

+ + 2 Variants + +
+
+
+
+
+

+ Electronics +

+
+
+
+

+ $1699.00 +

+
+
+
+

+ Canceled +

+
+
+
+
+
+ Product +
+
+

+ Airpods Pro 2nd Gen +

+ + 1 Variants + +
+
+
+
+
+

+ Accessories +

+
+
+
+

+ $240.00 +

+
+
+
+

+ Delivered +

+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/table/table-06.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/table/table-06.html new file mode 100644 index 0000000..ea5eaea --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/table/table-06.html @@ -0,0 +1,381 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ User +

+
+
+
+

+ Project Name +

+
+
+
+

+ Team +

+
+
+
+

+ Status +

+
+
+
+

+ Budget +

+
+
+
+
+
+ brand +
+ +
+ + Lindsey Curtis + + + Web Designer + +
+
+
+
+
+

+ Agency Website +

+
+
+
+
+
+ user +
+
+ user +
+
+ user +
+
+
+
+
+

+ Active +

+
+
+
+

3.9K

+
+
+
+
+
+ brand +
+ +
+ + Kaiya George + + + Project Manager + +
+
+
+
+
+

+ Technology +

+
+
+
+
+
+ user +
+
+ user +
+
+
+
+
+

+ Pending +

+
+
+
+

+ 24.9K +

+
+
+
+
+
+ brand +
+ +
+ + Zain Geidt + + + Content Writer + +
+
+
+
+
+

+ Blog Writing +

+
+
+
+
+
+ user +
+
+
+
+
+

+ Active +

+
+
+
+

+ 12.7K +

+
+
+
+
+
+ brand +
+ +
+ + Abram Schleifer + + + Digital Marketer + +
+
+
+
+
+

+ Social Media +

+
+
+
+
+
+ user +
+
+ user +
+
+ user +
+
+
+
+
+

+ Cancel +

+
+
+
+

2.8K

+
+
+
+
+
+ brand +
+ +
+ + Carla George + + + Front-end Developer + +
+
+
+
+
+

+ Website +

+
+
+
+
+
+ user +
+
+ user +
+
+ user +
+
+
+
+
+

+ Active +

+
+
+
+

4,5K

+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/top-card-group.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/top-card-group.html new file mode 100644 index 0000000..84d0886 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/top-card-group.html @@ -0,0 +1,251 @@ +
+ +
+
+

+ Top Channels +

+ +
+ +
+ + +
+
+
+ +
+
+ Source + Visitors +
+ +
+ + Google + + + 4.7K + +
+ +
+ + Facebook + + + 3.4K + +
+ +
+ + Threads + + + 2.9K + +
+ +
+ + Google + + + 1.5K + +
+
+ + + Channels Report + + + + +
+ + +
+
+

+ Top Pages +

+ +
+ +
+ + +
+
+
+ +
+
+ Source + Pageview +
+ +
+ + tailadmin.com + + + 4.7K + +
+ +
+ + preview.tailadmin.com + + + 3.4K + +
+ +
+ + docs.tailadmin.com + + + 2.9K + +
+ +
+ + tailadmin.com/componetns + + + 1.5K + +
+
+ + + Channels Report + + + + +
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/upcoming-schedule.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/upcoming-schedule.html new file mode 100644 index 0000000..e54c8e3 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/upcoming-schedule.html @@ -0,0 +1,210 @@ +
+
+

+ Upcoming Schedule +

+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+
+ + + +
+
+ + Wed, 11 jan + + + 09:20 AM + +
+
+
+ + Business Analytics Press + + + Exploring the Future of Data-Driven +6 more + +
+
+ +
+
+
+ + + +
+
+ + Fri, 15 feb + + + 10:35 AM + +
+
+
+ + Business Sprint + + + Techniques from Business Sprint +2 more + +
+
+ +
+
+
+ + + +
+
+ + Thu, 18 mar + + + 1:15 AM + +
+
+
+ + Customer Review Meeting + + + Insights from the Customer Review Meeting +8 more + +
+
+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-01.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-01.html new file mode 100644 index 0000000..9a833bb --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-01.html @@ -0,0 +1,11 @@ +
+ +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-02.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-02.html new file mode 100644 index 0000000..e3ae147 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-02.html @@ -0,0 +1,11 @@ +
+ +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-03.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-03.html new file mode 100644 index 0000000..90aa837 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-03.html @@ -0,0 +1,11 @@ +
+ +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-04.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-04.html new file mode 100644 index 0000000..08009c7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/video/video-04.html @@ -0,0 +1,11 @@ +
+ +
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/watchlist.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/watchlist.html new file mode 100644 index 0000000..437acf9 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/partials/watchlist.html @@ -0,0 +1,592 @@ +
+
+

+ My Watchlist +

+ +
+ +
+ + +
+
+
+ +
+
+ +
+
+
+ brand +
+ +
+

+ AAPL +

+ + Apple, Inc + +
+
+ +
+
+

+ $4,008.65 +

+
+ + + + + + + 11.01% + +
+
+ + +
+
+
+ brand +
+ +
+

+ SPOT +

+ + Spotify.com + +
+
+ +
+
+

+ $11,689.00 +

+
+ + + + + + + 9.48% + +
+
+ + +
+
+
+ brand +
+ +
+

+ ABNB +

+ + Airbnb, Inc + +
+
+ +
+
+

+ $32,227.00 +

+
+ + + + + + + 0.29% + +
+
+ + +
+
+
+ brand +
+ +
+

+ ENVT +

+ + Envato, Inc + +
+
+ +
+
+

+ $13,895.00 +

+
+ + + + + + + 3.79% + +
+
+ + +
+
+
+ brand +
+ +
+

+ QIWI +

+ + qiwi.com, Inc + +
+
+ +
+
+

+ $4,008.65 +

+
+ + + + + + + 4.52% + +
+
+ + +
+
+
+ brand +
+ +
+

+ AAPL +

+ + Apple, Inc + +
+
+ +
+
+

+ $4,008.65 +

+
+ + + + + + + 11.01% + +
+
+ + +
+
+
+ brand +
+ +
+

+ SPOT +

+ + Spotify.com + +
+
+ +
+
+

+ $11,689.00 +

+
+ + + + + + + 9.48% + +
+
+ + +
+
+
+ brand +
+ +
+

+ ABNB +

+ + Airbnb, Inc + +
+
+ +
+
+

+ $32,227.00 +

+
+ + + + + + + 0.29% + +
+
+ + +
+
+
+ brand +
+ +
+

+ ENVT +

+ + Envato, Inc + +
+
+ +
+
+

+ $13,895.00 +

+
+ + + + + + + 3.79% + +
+
+ + +
+
+
+ brand +
+ +
+

+ QIWI +

+ + qiwi.com, Inc + +
+
+ +
+
+

+ $4,008.65 +

+
+ + + + + + + 4.52% + +
+
+
+
+
diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/profile.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/profile.html new file mode 100644 index 0000000..d7bbf00 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/profile.html @@ -0,0 +1,407 @@ + + + + + + + Profile | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ + +
+

+ Profile +

+ +
+
+
+
+ user +
+
+

+ Musharof Chowdhury +

+
+

+ Team Manager +

+ +

+ Arizona, United States +

+
+
+
+ + + + + + + +
+
+ + +
+
+ +
+
+
+

+ Personal Information +

+ +
+
+

+ First Name +

+

+ Musharof +

+
+ +
+

+ Last Name +

+

+ Chowdhury +

+
+ +
+

+ Email address +

+

+ randomuser@pimjo.com +

+
+ +
+

+ Phone +

+

+ +09 363 398 46 +

+
+ +
+

+ Bio +

+

+ Team Manager +

+
+
+
+ + +
+
+
+
+
+

+ Address +

+ +
+
+

+ Country +

+

+ United States +

+
+ +
+

+ City/State +

+

+ Arizona, United States +

+
+ +
+

+ Postal Code +

+

+ ERT 2489 +

+
+ +
+

+ TAX ID +

+

+ AS4568384 +

+
+
+
+ + +
+
+
+
+
+ +
+ +
+ + + + + + + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/sidebar.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/sidebar.html new file mode 100644 index 0000000..e2e6bc8 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/sidebar.html @@ -0,0 +1,1394 @@ + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/signin.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/signin.html new file mode 100644 index 0000000..947c8fd --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/signin.html @@ -0,0 +1,329 @@ + + + + + + + Sign In| TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+
+ +
+ +
+
+
+

+ Sign In +

+

+ Enter your email and password to sign in! +

+
+
+
+ + +
+
+
+
+
+
+ Or +
+
+
+
+ +
+ + +
+ +
+ +
+ + + + + + + + + +
+
+ +
+
+ +
+ Forgot password? +
+ +
+ +
+
+
+
+

+ Don't have an account? + Sign Up +

+
+
+
+
+
+ + + + +
+
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/signup.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/signup.html new file mode 100644 index 0000000..a842680 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/signup.html @@ -0,0 +1,364 @@ + + + + + + + Sign Up| TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+
+ +
+ +
+
+

+ Sign Up +

+

+ Enter your email and password to sign up! +

+
+
+
+ + +
+
+
+
+
+
+ Or +
+
+
+
+
+ +
+ + +
+ +
+ + +
+
+ +
+ + +
+ +
+ +
+ + + + + + + + + +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+

+ Already have an account? + Sign In +

+
+
+
+
+ + + +
+
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/videos.html b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/videos.html new file mode 100644 index 0000000..79b01c2 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/src/videos.html @@ -0,0 +1,127 @@ + + + + + + + Videos | TailAdmin - Tailwind CSS Admin Dashboard Template + + + + + + + +
+ + + + + +
+ + + + + + + + + +
+
+ +
+ +
+ +
+
+
+
+

+ Video Ratio 16:9 +

+
+
+ +
+
+
+
+

+ Video Ratio 4:3 +

+
+
+ +
+
+
+
+
+
+

+ Video Ratio 4:3 +

+
+
+ +
+
+
+
+

+ Video Ratio 1:1 +

+
+
+ +
+
+
+
+
+
+ +
+ +
+ + + diff --git a/Web/themes/tailadmin-free-tailwind-dashboard-template-main/webpack.config.js b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/webpack.config.js new file mode 100644 index 0000000..b69eeb7 --- /dev/null +++ b/Web/themes/tailadmin-free-tailwind-dashboard-template-main/webpack.config.js @@ -0,0 +1,114 @@ +const path = require("path"); +const glob = require("glob"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); + +const INCLUDE_PATTERN = + /\s*(?:<\/include>)?/gis; + +const processNestedHtml = (content, loaderContext, dir = null) => + !INCLUDE_PATTERN.test(content) + ? content + : content.replace(INCLUDE_PATTERN, (m, src) => { + const filePath = path.resolve(dir || loaderContext.context, src); + loaderContext.dependency(filePath); + return processNestedHtml( + loaderContext.fs.readFileSync(filePath, "utf8"), + loaderContext, + path.dirname(filePath), + ); + }); + +// HTML generation +const paths = []; +const generateHTMLPlugins = () => + glob.sync("./src/*.html").map((dir) => { + const filename = path.basename(dir); + + if (filename !== "404.html") { + paths.push(filename); + } + + return new HtmlWebpackPlugin({ + filename, + template: `./src/${filename}`, + favicon: `./src/images/favicon.ico`, + inject: "body", + }); + }); + +module.exports = { + mode: "development", + entry: "./src/js/index.js", + devServer: { + static: { + directory: path.join(__dirname, "./build"), + }, + compress: true, + port: 3000, + hot: true, + }, + module: { + rules: [ + { + test: /\.m?js$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + presets: ["@babel/preset-env"], + }, + }, + }, + { + test: /\.css$/i, + use: [ + MiniCssExtractPlugin.loader, + "css-loader", + { + loader: "postcss-loader", + options: { + postcssOptions: { + plugins: [ + require("autoprefixer")({ + overrideBrowserslist: ["last 2 versions"], + }), + ], + }, + }, + }, + ], + }, + { + test: /\.(png|svg|jpg|jpeg|gif)$/i, + type: "asset/resource", + }, + { + test: /\.(woff|woff2|eot|ttf|otf)$/i, + type: "asset/resource", + }, + { + test: /\.html$/, + loader: "html-loader", + options: { + preprocessor: processNestedHtml, + }, + }, + ], + }, + plugins: [ + ...generateHTMLPlugins(), + new MiniCssExtractPlugin({ + filename: "style.css", + chunkFilename: "style.css", + }), + ], + output: { + filename: "bundle.js", + path: path.resolve(__dirname, "build"), + clean: true, + assetModuleFilename: "[path][name][ext]", + }, + target: "web", // fix for "browserslist" error message + stats: "errors-only", // suppress irrelevant log messages +};