diff --git a/.cursor/rules/abcd.mdc b/.cursor/rules/abcd.mdc new file mode 100644 index 00000000..067401fa --- /dev/null +++ b/.cursor/rules/abcd.mdc @@ -0,0 +1,10 @@ +--- +description: best practicese css5 feaure andpopove +globs: *.css +alwaysApply: false +--- + +# Your rule content + +- use grid whenever posibble +- \ No newline at end of file diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 30dae994..dbbf0041 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -21,18 +21,12 @@ echo "Running pre-commit checks for branch: $BRANCH_NAME" echo "$BRANCH_NAME" | grep -Eq '^(feature|bugfix|hotfix|task)/[A-Za-z]+-[0-9]+' if [ $? -ne 0 ]; then echo "Error: Branch name '$BRANCH_NAME' is invalid." - echo "Use a valid branch naming convention, e.g., feature|bugfix|hotfix|task/XYZ-123." +<<<<<<< HEAD + echo "Use a valid branch naming convention, e.g., feature|bugfix|hotfix|task/XYZ-123-description." exit 1 fi - -npm run lint -if [ $? -ne 0 ]; then - echo "Lint failed. Commit aborted." - exit 1 -fi - -npm run build -if [ $? -ne 0 ]; then - echo "Build failed. Commit aborted." - exit 1 +======= + echo "Use a valid branch naming convention, e.g., feature|bugfix|hotfix|task/XYZ-123." + exit 1 fi +>>>>>>> main diff --git a/.github/workflows/issue-template-number.yml b/.github/workflows/issue-template-number.yml index 8e199efc..7139d49e 100644 --- a/.github/workflows/issue-template-number.yml +++ b/.github/workflows/issue-template-number.yml @@ -2,7 +2,7 @@ name: "Auto Replace X in Issue Title" on: issues: - types: [opened,labeled] + types: [opened] permissions: issues: write @@ -17,11 +17,8 @@ jobs: ISSUE_NUMBER=${{ github.event.issue.number }} OLD_TITLE="${{ github.event.issue.title }}" - # Pad the issue number to 4 digits (e.g., 1 -> 0001) - PADDED_NUM=$(printf "%04d" "$ISSUE_NUMBER") - - # Replace '000X' with the padded issue number in the title - NEW_TITLE=$(echo "$OLD_TITLE" | sed "s/000X/$PADDED_NUM/g") + # Replace 'X' with the actual issue number in the title + NEW_TITLE=$(echo "$OLD_TITLE" | sed "s/X/$ISSUE_NUMBER/g") # Update issue title using GitHub API gh issue edit "$ISSUE_NUMBER" --title "$NEW_TITLE" --repo "${{ github.repository }}" diff --git a/.prettierrc.cjs b/.prettierrc.cjs index edd12ec3..084f3b81 100755 --- a/.prettierrc.cjs +++ b/.prettierrc.cjs @@ -10,19 +10,13 @@ module.exports = { endOfLine: "lf", trailingComma: "none", htmlWhitespaceSensitivity: "css", - plugins: ["prettier-plugin-astro"], + plugins: ["prettier-plugin-astro", "prettier-plugin-tailwindcss" /* Must come last */], overrides: [ { files: "*.astro", options: { parser: "astro" } - }, - { - files: "*.json", - options: { - printWidth: 10000 - } } ] }; diff --git a/.vscode/dictionaries/project-words.txt b/.vscode/dictionaries/project-words.txt index becaf77f..b16ee2fb 100755 --- a/.vscode/dictionaries/project-words.txt +++ b/.vscode/dictionaries/project-words.txt @@ -15,17 +15,16 @@ bincount Chaitra clsx cmdk +Colour +colours controlslist datetime Deepavali dhaga -Dhaivat -dogri Dussehra ensurepip fontsource frontmatter -Gandhar getbuffer GSTIN heroicons @@ -40,26 +39,16 @@ jsonify Jyeshtha Kartika kmeans -letterpad linalg lucide -LXXX -Madhyam Magha -maithili Margashirsha -matra matras -moonsign -Nakshtra nameform -Nishad nodownload -odia Organja orgenja paksha -Pancham panchang parixan Pausha @@ -67,13 +56,10 @@ Peina Phalguna prerender Reddy -Rishabh roboto Rushi -samay sanyukat shadcn -Shadja Shravana signup sitemapindex @@ -82,7 +68,6 @@ sportrop streamlit sunsign sunsigns -swar tailwindcss threadzip Threazip @@ -93,17 +78,13 @@ vaul venv Verdana Vijayadashami -vyanjan waitlist -webring werkzeug अक्टूबर अगस्त अप्रैल आश्विन आषाढ़ -उल्लू -ओखली कन्या कर्क कार्तिक @@ -120,11 +101,8 @@ werkzeug मार्गशीर्ष मार्च मिथुन -वर्णमाला वृश्चिक वृषभ वैशाख -शून्य श्रावण सितम्बर -हिन्दी diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 8d45fee4..244fc69b 100755 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,19 @@ { - "recommendations": ["astro-build.astro-vscode", "streetsidesoftware.code-spell-checker", "alefragnani.project-manager", "esbenp.prettier-vscode", "oderwat.indent-rainbow", "davidanson.vscode-markdownlint", "mkxml.vscode-filesize", "christian-kohler.path-intellisense", "dbaeumer.vscode-eslint", "johnpapa.vscode-peacock", "aaron-bond.better-comments", "Heron.firefox-devtools-theme", "GitHub.github-vscode-theme", "xkeshav.css-color-collector", "pucelle.vscode-css-navigation"] + "recommendations": [ + "astro-build.astro-vscode", + "streetsidesoftware.code-spell-checker", + "alefragnani.project-manager", + "esbenp.prettier-vscode", + "oderwat.indent-rainbow", + "davidanson.vscode-markdownlint", + "mkxml.vscode-filesize", + "christian-kohler.path-intellisense", + "dbaeumer.vscode-eslint", + "johnpapa.vscode-peacock", + "aaron-bond.better-comments", + "Heron.firefox-devtools-theme", + "GitHub.github-vscode-theme", + "xkeshav.css-color-collector", + "pucelle.vscode-css-navigation" + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 78992725..9d8f6dd5 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,16 +8,6 @@ The format is based on Keep a Changelog and this project adheres to Semantic Ver Created Repo from template -## [2.0.0] - 2025-06-28 - -- Added Multiple Pages on Varnmala,Map,Glossary -- Navigation and Redesign the repo - -## [2.1.0] - 2025-07-01 - -- fix minor bugs -- Added About Page - ### [Unreleased] Here we write upgrading notes for brands. It's a team effort to make them as straightforward as possible. diff --git a/abcd.code-workspace b/abcd.code-workspace index 53bea016..44b2d167 100644 --- a/abcd.code-workspace +++ b/abcd.code-workspace @@ -11,18 +11,14 @@ "source.fixAll": "always", "source.organizeImports": "explicit" }, - "editor.defaultFormatter": "astro-build.astro-vscode" + "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[html]": { "editor.defaultFormatter": "vscode.html-language-features" }, - "[jsonc]": { + "[json][jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" }, - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode", - "prettier.printWidth": 10000 - }, "[markdown]": { "diffEditor.ignoreTrimWhitespace": false }, @@ -178,8 +174,7 @@ "titleBar.activeBackground": "#6a3b98", "titleBar.activeForeground": "#e7e7e7", "titleBar.inactiveBackground": "#6a3b9899", - "titleBar.inactiveForeground": "#e7e7e799", - "tab.activeBorder": "#844cba" + "titleBar.inactiveForeground": "#e7e7e799" }, "files.exclude": { "**/.git": false, @@ -196,6 +191,7 @@ "files.readonlyInclude": { ".githooks/**": true }, + "typescript.preferences.preferGoToSourceDefinition": true, "[xml]": { "editor.defaultFormatter": "redhat.vscode-xml" } diff --git a/astro.config.mjs b/astro.config.mjs index d1edae8e..dfa97f31 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,5 +1,6 @@ import mdx from "@astrojs/mdx"; -import sitemap from "@astrojs/sitemap"; +import react from "@astrojs/react"; +import tailwind from "@astrojs/tailwind"; import { defineConfig } from "astro/config"; // https://astro.build/config @@ -18,7 +19,16 @@ export default defineConfig({ experimental: { svg: true }, - integrations: [sitemap(), mdx()], + integrations: [ + mdx(), + react({ + experimentalReactChildren: true + }), + tailwind({ + applyBaseStyles: false, + nesting: true + }) + ], style: { global: true // Ensure global styles are applied }, diff --git a/components.json b/components.json new file mode 100644 index 00000000..1ef1e1db --- /dev/null +++ b/components.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "@/assets/styles/globals.css", + "baseColor": "zinc", + "cssVariables": false, + "prefix": "" + }, + "aliases": { + "components": "components", + "utils": "utils" + } +} diff --git a/package-lock.json b/package-lock.json index 417c504d..69e9d55f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,38 +1,52 @@ { "name": "@recursivezero/abcd", - "version": "2.0.0", + "version": "1.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@recursivezero/abcd", - "version": "2.0.0", + "version": "1.0.1", "license": "MIT", "dependencies": { "@astrojs/check": "0.9.4", "@astrojs/mdx": "4.0.3", "@astrojs/node": "9.1.2", - "@astrojs/sitemap": "3.4.1", + "@astrojs/react": "4.1.2", + "@astrojs/tailwind": "5.1.4", "@fontsource/roboto": "5.1.0", + "@radix-ui/react-slot": "1.1.1", "astro": "5.4.1", "class-variance-authority": "0.7.0", "clsx": "2.1.0", - "dotenv": "16.4.5", - "dotenv-expand": "11.0.6", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "lucide-react": "0.469.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "shadcn": "1.0.0", + "tailwind": "4.0.0", "tailwind-merge": "2.2.0", + "tailwindcss": "3.4.17", "typescript": "5.6.2", - "zod": "3.25.67" + "zod": "3.24.1" }, "devDependencies": { + "@tailwindcss/aspect-ratio": "0.4.2", + "@tailwindcss/typography": "0.5.10", "@types/node": "22.10.2", + "@types/react": "19.0.0", "@typescript-eslint/eslint-plugin": "6.13.2", "@typescript-eslint/parser": "6.13.2", "autoprefixer": "10.4.16", "eslint": "8.55.0", "eslint-plugin-import": "2.29.0", "eslint-plugin-jsx-a11y": "6.8.0", + "postcss": "8.4.32", + "postcss-import": "16.1.0", "prettier": "3.1.0", "prettier-plugin-astro": "0.14.1", + "prettier-plugin-tailwindcss": "0.6.8", "shx": "0.3.4" }, "funding": { @@ -40,6 +54,29 @@ "url": "https://github.com/xkeshav" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@astrojs/check": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.4.tgz", @@ -58,9 +95,9 @@ } }, "node_modules/@astrojs/compiler": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.12.2.tgz", - "integrity": "sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==" + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.10.4.tgz", + "integrity": "sha512-86B3QGagP99MvSNwuJGiYSBHnh8nLvm2Q1IFI15wIUJJsPeQTO3eb2uwBmrqRsXykeR/mBzH8XCgz5AAt1BJrQ==" }, "node_modules/@astrojs/internal-helpers": { "version": "0.6.0", @@ -183,14 +220,100 @@ "node": "^18.17.1 || ^20.3.0 || >=22.0.0" } }, - "node_modules/@astrojs/sitemap": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.4.1.tgz", - "integrity": "sha512-VjZvr1e4FH6NHyyHXOiQgLiw94LnCVY4v06wN/D0gZKchTMkg71GrAHJz81/huafcmavtLkIv26HnpfDq6/h/Q==", + "node_modules/@astrojs/react": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@astrojs/react/-/react-4.1.2.tgz", + "integrity": "sha512-Slw8Bho50w1+rYnSnDl5PDAUikSOEItx5DEJU5OgmarTirBr1audIb2DgC8faAGcGkq5WhuUVsSiq/TmSORlwA==", + "dependencies": { + "@vitejs/plugin-react": "^4.3.4", + "ultrahtml": "^1.5.3", + "vite": "^6.0.5" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + }, + "peerDependencies": { + "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", + "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", + "react": "^17.0.2 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@astrojs/tailwind": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.4.tgz", + "integrity": "sha512-EJ3uoTZZr0RYwTrVS2HgYN0+VbXvg7h87AtwpD5OzqS3GyMwRmzfOwHfORTxoWGQRrY9k/Fi+Awk60kwpvRL5Q==", + "dependencies": { + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "postcss-load-config": "^4.0.2" + }, + "peerDependencies": { + "astro": "^3.0.0 || ^4.0.0 || ^5.0.0", + "tailwindcss": "^3.0.24" + } + }, + "node_modules/@astrojs/tailwind/node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "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.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/@astrojs/tailwind/node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "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": { - "sitemap": "^8.0.0", - "stream-replace-string": "^2.0.0", - "zod": "^3.24.2" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/@astrojs/telemetry": { @@ -218,28 +341,180 @@ "yaml": "^2.5.0" } }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "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==", + "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/@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==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "dependencies": { + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@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-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "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==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "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==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "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==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "dependencies": { + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.7.tgz", - "integrity": "sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "dependencies": { - "@babel/types": "^7.27.7" + "@babel/types": "^7.26.9" }, "bin": { "parser": "bin/babel-parser.js" @@ -248,21 +523,82 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.7.tgz", - "integrity": "sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -317,18 +653,18 @@ "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==" }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", "cpu": [ "ppc64" ], @@ -341,9 +677,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", "cpu": [ "arm" ], @@ -356,9 +692,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", "cpu": [ "arm64" ], @@ -371,9 +707,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", "cpu": [ "x64" ], @@ -386,9 +722,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", "cpu": [ "arm64" ], @@ -401,9 +737,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", "cpu": [ "x64" ], @@ -416,9 +752,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", "cpu": [ "arm64" ], @@ -431,9 +767,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", "cpu": [ "x64" ], @@ -446,9 +782,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", "cpu": [ "arm" ], @@ -461,9 +797,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", "cpu": [ "arm64" ], @@ -476,9 +812,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", "cpu": [ "ia32" ], @@ -491,9 +827,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", "cpu": [ "loong64" ], @@ -506,9 +842,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", "cpu": [ "mips64el" ], @@ -521,9 +857,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", "cpu": [ "ppc64" ], @@ -536,9 +872,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", "cpu": [ "riscv64" ], @@ -551,9 +887,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", "cpu": [ "s390x" ], @@ -566,9 +902,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", "cpu": [ "x64" ], @@ -581,9 +917,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", "cpu": [ "arm64" ], @@ -596,9 +932,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", "cpu": [ "x64" ], @@ -611,9 +947,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", "cpu": [ "arm64" ], @@ -626,9 +962,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", "cpu": [ "x64" ], @@ -641,9 +977,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", "cpu": [ "x64" ], @@ -656,9 +992,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", "cpu": [ "arm64" ], @@ -671,9 +1007,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", "cpu": [ "ia32" ], @@ -686,9 +1022,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", "cpu": [ "x64" ], @@ -701,9 +1037,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz", + "integrity": "sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.4.3" @@ -750,6 +1086,33 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { "version": "8.55.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", @@ -1141,56 +1504,167 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.3.tgz", - "integrity": "sha512-AiR5uKpFxP3PjO4R19kQGIMwxyRyPuXmKEEy301V1C0+1rVjS94EZQXf1QKZYN8Q0YM+estSPhmx5JwNftv6nw==" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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==", + "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==", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "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": ">= 8" + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "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/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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==", + "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/@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==", + "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==", + "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==", + "engines": { + "node": ">=6.0.0" + } + }, + "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==" + }, + "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==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "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==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { @@ -1218,10 +1692,50 @@ "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==" }, + "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==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", - "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -1245,9 +1759,9 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.1.tgz", - "integrity": "sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", "cpu": [ "arm" ], @@ -1257,9 +1771,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.1.tgz", - "integrity": "sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", "cpu": [ "arm64" ], @@ -1269,9 +1783,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.1.tgz", - "integrity": "sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", "cpu": [ "arm64" ], @@ -1281,9 +1795,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.1.tgz", - "integrity": "sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", "cpu": [ "x64" ], @@ -1293,9 +1807,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.1.tgz", - "integrity": "sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", "cpu": [ "arm64" ], @@ -1305,9 +1819,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.1.tgz", - "integrity": "sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", "cpu": [ "x64" ], @@ -1317,9 +1831,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.1.tgz", - "integrity": "sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", "cpu": [ "arm" ], @@ -1329,9 +1843,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.1.tgz", - "integrity": "sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", "cpu": [ "arm" ], @@ -1341,9 +1855,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.1.tgz", - "integrity": "sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", "cpu": [ "arm64" ], @@ -1353,9 +1867,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.1.tgz", - "integrity": "sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", "cpu": [ "arm64" ], @@ -1365,9 +1879,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.1.tgz", - "integrity": "sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", "cpu": [ "loong64" ], @@ -1377,9 +1891,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.1.tgz", - "integrity": "sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", "cpu": [ "ppc64" ], @@ -1389,21 +1903,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.1.tgz", - "integrity": "sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.1.tgz", - "integrity": "sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", "cpu": [ "riscv64" ], @@ -1413,9 +1915,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.1.tgz", - "integrity": "sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", "cpu": [ "s390x" ], @@ -1425,9 +1927,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.1.tgz", - "integrity": "sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", "cpu": [ "x64" ], @@ -1437,9 +1939,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.1.tgz", - "integrity": "sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", "cpu": [ "x64" ], @@ -1449,9 +1951,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.1.tgz", - "integrity": "sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", "cpu": [ "arm64" ], @@ -1461,9 +1963,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.1.tgz", - "integrity": "sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", "cpu": [ "ia32" ], @@ -1473,9 +1975,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.1.tgz", - "integrity": "sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", "cpu": [ "x64" ], @@ -1546,6 +2048,75 @@ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==" }, + "node_modules/@tailwindcss/aspect-ratio": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz", + "integrity": "sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==", + "dev": true, + "peerDependencies": { + "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", @@ -1560,9 +2131,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -1622,22 +2193,32 @@ "version": "22.10.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, "dependencies": { "undici-types": "~6.20.0" } }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "node_modules/@types/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.0.tgz", + "integrity": "sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==", "dependencies": { - "@types/node": "*" + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "peer": true, + "peerDependencies": { + "@types/react": "^19.0.0" } }, "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/unist": { @@ -1839,13 +2420,31 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, "node_modules/@volar/kit": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.15.tgz", - "integrity": "sha512-y6PX5AFnvVqAWJ8JgstZ1MkSMn0zlOa+qZqZ5TS9SrPmRtQ0TzwRzNJCZnN5zwAro/SsYxecHx03aGH/7evJ/A==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.12.tgz", + "integrity": "sha512-f9JE8oy9C2rBcCWxUYKUF23hOXz4mwgVXFjk7nHhxzplaoVjEOsKpBm8NI2nBH7Cwu8DRxDwBsbIxMl/8wlLxw==", "dependencies": { - "@volar/language-service": "2.4.15", - "@volar/typescript": "2.4.15", + "@volar/language-service": "2.4.12", + "@volar/typescript": "2.4.12", "typesafe-path": "^0.2.2", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" @@ -1855,21 +2454,21 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", - "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.12.tgz", + "integrity": "sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==", "dependencies": { - "@volar/source-map": "2.4.15" + "@volar/source-map": "2.4.12" } }, "node_modules/@volar/language-server": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.15.tgz", - "integrity": "sha512-aSzvL3lgQ+RPU3uWA9wW85sfZ0tb+oKplfnOwG/c1iRMuVEJRofmcnjyN0JEOKbBR7GuPSbeUdLAI0AIL+TFew==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.12.tgz", + "integrity": "sha512-KC0YqTXCZMaImMWyAKC+dLB2BXjfz80kqesJkV6oXxJsGEQPfmdqug299idwtrT6FVSmZ7q5UrPfvgKwA0S3JA==", "dependencies": { - "@volar/language-core": "2.4.15", - "@volar/language-service": "2.4.15", - "@volar/typescript": "2.4.15", + "@volar/language-core": "2.4.12", + "@volar/language-service": "2.4.12", + "@volar/typescript": "2.4.12", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", @@ -1879,27 +2478,27 @@ } }, "node_modules/@volar/language-service": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.15.tgz", - "integrity": "sha512-o7ctGyQNQAZqT15xHamE0fTzPZHeDnHWz0m/KJekSPc2W4AHiEbJ2RNDLzEK4e0EjrpdeEe3FB9KQvOvjq+I6Q==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.12.tgz", + "integrity": "sha512-nifOPGYYPnCmxja6/ML/Gl2EgFkUdw4gLbYqbh8FjqX3gSpXSZl/0ebqORjKo1KW56YWHWRZd1jFutEtCiRYhA==", "dependencies": { - "@volar/language-core": "2.4.15", + "@volar/language-core": "2.4.12", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/source-map": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", - "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==" + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.12.tgz", + "integrity": "sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==" }, "node_modules/@volar/typescript": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", - "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.12.tgz", + "integrity": "sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==", "dependencies": { - "@volar/language-core": "2.4.15", + "@volar/language-core": "2.4.12", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1921,10 +2520,22 @@ "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==" }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "bin": { "acorn": "bin/acorn" }, @@ -1956,6 +2567,21 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/amqplib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz", + "integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==", + "dependencies": { + "bitsyntax": "~0.0.4", + "bluebird": "^3.4.6", + "buffer-more-ints": "0.0.2", + "readable-stream": "1.x >=1.1.9", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=0.8 <=9" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -2001,6 +2627,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -2024,6 +2655,14 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha512-z5BqVjscbjmJBybKlICogJR2jCr2q/Ixu7Pvui5D4y97i7FLsJlvEG9XOR/KJRlkxxZz7UaaS2TMwQh1dRJ2dA==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -2046,7 +2685,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -2058,20 +2696,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==" + }, "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -2099,18 +2740,17 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", + "es-abstract": "^1.23.2", "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2155,11 +2795,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -2176,6 +2835,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha512-6i37w/+EhlWlGUJff3T/Q8u1RGmP5wgbiwYnOnbOqvtrPxT63/sYFyP9RcpxtxGymtfA075IvmOnL7ycNOWl3w==" + }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", @@ -2307,19 +2971,127 @@ "node": ">=6" } }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } + "node_modules/astro/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==" }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "node_modules/astro/node_modules/unstorage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.15.0.tgz", + "integrity": "sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.3", + "h3": "^1.15.0", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.6", + "ofetch": "^1.4.1", + "ufo": "^1.5.4" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/async-retry": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz", + "integrity": "sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==", + "dependencies": { + "retry": "0.12.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -2357,7 +3129,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -2385,6 +3156,20 @@ "node": ">= 0.4" } }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -2397,14 +3182,135 @@ "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 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base-64": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bitsyntax": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz", + "integrity": "sha512-Pav3HSZXD2NLQOWfJldY3bpJLt8+HS2nUo5Z1bLLmHg2vCE/cM1qfEvNjlYo7GgYQPneNr715Bh42i01ZHZPvw==", + "dependencies": { + "buffer-more-ints": "0.0.2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", + "dependencies": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "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==" + }, + "node_modules/body-parser/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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/body-parser/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==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/boxen": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", @@ -2427,9 +3333,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -2448,10 +3354,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", - "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", - "dev": true, + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "funding": [ { "type": "opencollective", @@ -2467,10 +3372,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001726", - "electron-to-chromium": "^1.5.173", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2479,11 +3384,28 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-more-ints": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz", + "integrity": "sha512-PDgX2QJgUc5+Jb2xAoBFP5MxhtVUmZHR33ak+m/SDxRdCrbnX1BggRIaxiW7ImwfmO4iJeCQKN18ToSXWGjYkA==" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -2501,7 +3423,6 @@ "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" @@ -2514,7 +3435,6 @@ "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" @@ -2546,11 +3466,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001726", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz", - "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==", - "dev": true, + "version": "1.0.30001703", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz", + "integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==", "funding": [ { "type": "opencollective", @@ -2806,17 +3733,127 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commands-events": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/commands-events/-/commands-events-1.0.4.tgz", + "integrity": "sha512-HdP/+1Anoc7z+6L2h7nd4Imz54+LW+BjMGt30riBZrZ3ZeP/8el93wD8Jj8ltAaqVslqNgjX6qlhSBJwuDSmpg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@babel/runtime": "7.2.0", + "formats": "1.0.0", + "uuidv4": "2.0.0" + } + }, + "node_modules/commands-events/node_modules/@babel/runtime": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz", + "integrity": "sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/commands-events/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "node_modules/commands-events/node_modules/uuidv4": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-2.0.0.tgz", + "integrity": "sha512-sAUlwUVepcVk6bwnaW/oi6LCwMdueako5QQzRr90ioAVVcms6p1mV0PaSxK8gyAC4CRvKddsk217uUpZUbKd2Q==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "sha-1": "0.1.1", + "uuid": "3.3.2" + } + }, "node_modules/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" }, + "node_modules/comparejs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/comparejs/-/comparejs-1.0.0.tgz", + "integrity": "sha512-Ue/Zd9aOucHzHXwaCe4yeHR7jypp7TKrIBZ5yls35nPNiVXlW14npmNVKM1ZaLlQTKZ6/4ewA//gYKHHIwCpOw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "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==", + "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==" + }, "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/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "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==" + }, "node_modules/cookie": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", @@ -2830,11 +3867,39 @@ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "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==" + }, + "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==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "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", @@ -2845,13 +3910,24 @@ } }, "node_modules/crossws": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", - "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.4.tgz", + "integrity": "sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==", "dependencies": { "uncrypto": "^0.1.3" } }, + "node_modules/crypto2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto2/-/crypto2-2.0.0.tgz", + "integrity": "sha512-jdXdAgdILldLOF53md25FiQ6ybj2kUFTiRjs7msKTUoZrzgT/M1FPX5dYGJjbbwFls+RJIiZxNTC02DE/8y0ZQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "babel-runtime": "6.26.0", + "node-rsa": "0.4.2", + "util.promisify": "1.0.0" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -2863,6 +3939,11 @@ "node": ">=4" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -2873,7 +3954,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -2890,7 +3970,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -2907,7 +3986,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -2920,10 +3998,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/datasette": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/datasette/-/datasette-1.0.1.tgz", + "integrity": "sha512-aJdlCBToEJUP4M57r67r4V6tltwGKa3qetnjpBtXYIlqbX9tM9jsoDMxb4xd9AGjpp3282oHRmqI5Z8TVAU0Mg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "comparejs": "1.0.0", + "eventemitter2": "5.0.1", + "lodash": "4.17.5" + } + }, + "node_modules/datasette/node_modules/lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dependencies": { "ms": "^2.1.3" }, @@ -2937,9 +4031,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", - "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", "dependencies": { "character-entities": "^2.0.0" }, @@ -2958,7 +4052,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -2975,7 +4068,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -3010,14 +4102,23 @@ } }, "node_modules/destr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", - "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "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==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "optional": true, "engines": { "node": ">=8" @@ -3051,6 +4152,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, "node_modules/diff": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", @@ -3089,9 +4195,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "engines": { "node": ">=12" }, @@ -3100,11 +4206,11 @@ } }, "node_modules/dotenv-expand": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", - "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dependencies": { - "dotenv": "^16.4.4" + "dotenv": "^16.4.5" }, "engines": { "node": ">=12" @@ -3113,6 +4219,15 @@ "url": "https://dotenvx.com" } }, + "node_modules/draht": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/draht/-/draht-1.0.1.tgz", + "integrity": "sha512-yNNHL864dniNmIE9ZKD++mKypiAUAvVZtyV0QrbXH/ak3ebzFqo5xsmRBRqV8pZVhImOSBiyq500Wcmrf44zAg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "eventemitter2": "5.0.1" + } + }, "node_modules/dset": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", @@ -3125,7 +4240,6 @@ "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", @@ -3135,16 +4249,28 @@ "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==" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "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==" }, "node_modules/electron-to-chromium": { - "version": "1.5.178", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.178.tgz", - "integrity": "sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA==", - "dev": true + "version": "1.5.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", + "integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==" }, "node_modules/emmet": { "version": "2.4.11", @@ -3164,8 +4290,7 @@ "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 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/emoji-regex-xs": { "version": "1.0.0", @@ -3181,9 +4306,9 @@ } }, "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, @@ -3192,27 +4317,26 @@ } }, "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", - "dev": true, + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.4", + "call-bound": "^1.0.3", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", + "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -3224,24 +4348,21 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", - "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", + "is-weakref": "^1.1.0", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", + "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -3250,7 +4371,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -3259,11 +4380,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, "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" } @@ -3272,7 +4397,6 @@ "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" } @@ -3305,15 +4429,14 @@ } }, "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==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" }, "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" }, @@ -3325,7 +4448,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -3352,7 +4474,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -3396,9 +4517,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -3407,31 +4528,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.5", - "@esbuild/android-arm": "0.25.5", - "@esbuild/android-arm64": "0.25.5", - "@esbuild/android-x64": "0.25.5", - "@esbuild/darwin-arm64": "0.25.5", - "@esbuild/darwin-x64": "0.25.5", - "@esbuild/freebsd-arm64": "0.25.5", - "@esbuild/freebsd-x64": "0.25.5", - "@esbuild/linux-arm": "0.25.5", - "@esbuild/linux-arm64": "0.25.5", - "@esbuild/linux-ia32": "0.25.5", - "@esbuild/linux-loong64": "0.25.5", - "@esbuild/linux-mips64el": "0.25.5", - "@esbuild/linux-ppc64": "0.25.5", - "@esbuild/linux-riscv64": "0.25.5", - "@esbuild/linux-s390x": "0.25.5", - "@esbuild/linux-x64": "0.25.5", - "@esbuild/netbsd-arm64": "0.25.5", - "@esbuild/netbsd-x64": "0.25.5", - "@esbuild/openbsd-arm64": "0.25.5", - "@esbuild/openbsd-x64": "0.25.5", - "@esbuild/sunos-x64": "0.25.5", - "@esbuild/win32-arm64": "0.25.5", - "@esbuild/win32-ia32": "0.25.5", - "@esbuild/win32-x64": "0.25.5" + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, "node_modules/escalade": { @@ -3536,9 +4657,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -3720,6 +4841,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -3883,11 +5031,164 @@ "node": ">= 0.6" } }, + "node_modules/eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==" + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, + "node_modules/express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dependencies": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "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==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "node_modules/express/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==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "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==" + }, + "node_modules/express/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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/express/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -3927,8 +5228,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -3960,9 +5260,9 @@ } }, "node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -3995,6 +5295,68 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.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==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/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==", + "engines": { + "node": ">= 0.8" + } + }, + "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==" + }, + "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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4031,6 +5393,109 @@ "pkg-dir": "^4.2.0" } }, + "node_modules/flaschenpost": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/flaschenpost/-/flaschenpost-1.1.3.tgz", + "integrity": "sha512-1VAYPvDsVBGFJyUrOa/6clnJwZYC3qVq9nJLcypy6lvaaNbo1wOQiH8HQ+4Fw/k51pVG7JHzSf5epb8lmIW86g==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@babel/runtime": "7.2.0", + "app-root-path": "2.1.0", + "babel-runtime": "6.26.0", + "chalk": "2.4.1", + "find-root": "1.1.0", + "lodash": "4.17.11", + "moment": "2.22.2", + "processenv": "1.1.0", + "split2": "3.0.0", + "stack-trace": "0.0.10", + "stringify-object": "3.3.0", + "untildify": "3.0.3", + "util.promisify": "1.0.0", + "varname": "2.0.3" + }, + "bin": { + "flaschenpost-normalize": "dist/bin/flaschenpost-normalize.js", + "flaschenpost-uncork": "dist/bin/flaschenpost-uncork.js" + } + }, + "node_modules/flaschenpost/node_modules/@babel/runtime": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz", + "integrity": "sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/flaschenpost/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flaschenpost/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flaschenpost/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/flaschenpost/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/flaschenpost/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/flaschenpost/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/flaschenpost/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "node_modules/flaschenpost/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -4063,7 +5528,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, "dependencies": { "is-callable": "^1.2.7" }, @@ -4074,11 +5538,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/formats/-/formats-1.0.0.tgz", + "integrity": "sha512-For0Y8egwEK96JgJo4NONErPhtl7H2QzeB2NYGmzeGeJ8a1JZqPgLYOtM3oJRCYhmgsdDFd6KGRYyfe37XY4Yg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "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": "*" }, @@ -4088,11 +5580,11 @@ } }, "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, "node_modules/fs.realpath": { @@ -4118,7 +5610,6 @@ "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" } @@ -4127,7 +5618,6 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4147,11 +5637,18 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "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==", + "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", @@ -4175,7 +5672,6 @@ "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", @@ -4195,11 +5691,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, "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" @@ -4212,7 +5712,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -4255,7 +5754,6 @@ "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" }, @@ -4264,37 +5762,17 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -4330,7 +5808,6 @@ "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" }, @@ -4350,18 +5827,18 @@ "dev": true }, "node_modules/h3": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.3.tgz", - "integrity": "sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.1.tgz", + "integrity": "sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==", "dependencies": { "cookie-es": "^1.2.2", - "crossws": "^0.3.4", + "crossws": "^0.3.3", "defu": "^6.1.4", - "destr": "^2.0.5", + "destr": "^2.0.3", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.0", "radix3": "^1.1.2", - "ufo": "^1.6.1", + "ufo": "^1.5.4", "uncrypto": "^0.1.3" } }, @@ -4369,7 +5846,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -4390,7 +5866,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -4402,7 +5877,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, "dependencies": { "dunder-proto": "^1.0.0" }, @@ -4417,7 +5891,6 @@ "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" }, @@ -4429,7 +5902,6 @@ "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" }, @@ -4440,11 +5912,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hase": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hase/-/hase-2.0.0.tgz", + "integrity": "sha512-L83pBR/oZvQQNjv4kw9aUpTqBxERPiY7B42jsmkt1VDeUaRVhYkEIKzkCqrppjtxHe2EZqzZJzuhMXsWsxYIsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@babel/runtime": "7.1.2", + "amqplib": "0.5.2" + } + }, + "node_modules/hase/node_modules/@babel/runtime": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", + "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/hase/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, "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" }, @@ -4696,9 +6190,9 @@ } }, "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==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-errors": { "version": "2.0.0", @@ -4715,12 +6209,15 @@ "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==", + "node_modules/iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, "node_modules/ignore": { @@ -4791,7 +6288,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -4810,6 +6306,14 @@ "node": ">= 0.10" } }, + "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==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/iron-webcrypto": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", @@ -4844,7 +6348,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4867,7 +6370,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -4886,7 +6388,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, "dependencies": { "has-bigints": "^1.0.2" }, @@ -4897,11 +6398,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -4917,7 +6428,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -4929,7 +6439,6 @@ "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" }, @@ -4944,7 +6453,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -4961,7 +6469,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -5008,7 +6515,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -5031,7 +6537,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", @@ -5086,19 +6591,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -5118,7 +6610,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -5130,6 +6621,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -5154,7 +6653,6 @@ "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", @@ -5168,11 +6666,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -5184,7 +6689,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -5199,7 +6703,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -5215,7 +6718,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -5232,7 +6734,6 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, "dependencies": { "which-typed-array": "^1.1.16" }, @@ -5247,7 +6748,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -5259,7 +6759,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -5274,7 +6773,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -5303,14 +6801,12 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/iterator.prototype": { "version": "1.1.5", @@ -5329,6 +6825,33 @@ "node": ">= 0.4" } }, + "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==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "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==", + "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==" + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -5340,17 +6863,36 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "node_modules/json-lines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-lines/-/json-lines-1.0.0.tgz", + "integrity": "sha512-ytuLZb4RBQb3bTRsG/QBenyIo5oHLpjeCVph3s2NnoAsZE9K6h+uR+OWpEOWV1UeHdX63tYctGppBpGAc+JNMA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "timer2": "1.0.0" + } + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -5359,15 +6901,14 @@ "dev": true }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonc-parser": { @@ -5375,6 +6916,35 @@ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" }, + "node_modules/jsonwebtoken": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz", + "integrity": "sha512-IqEycp0znWHNA11TpYi77bVgyBO/pGESDh7Ajhas+u0ttkGkKYIIAjniL4Bw5+oVejVF+SYkaI7XKfwCCyeTuA==", + "dependencies": { + "jws": "^3.2.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -5390,6 +6960,25 @@ "node": ">=4.0" } }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -5438,6 +7027,45 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/limes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/limes/-/limes-2.0.0.tgz", + "integrity": "sha512-evWD0pnTgPX7QueaSoJl5JBUL30T1ZVzo34ke97tIKmeagqhBTYK/JkKL0vtG3MpNApw8ZY9TlbybfwEz9knBA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@babel/runtime": "7.3.4", + "jsonwebtoken": "8.5.0" + } + }, + "node_modules/limes/node_modules/@babel/runtime": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/limes/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "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==" + }, "node_modules/load-yaml-file": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", @@ -5472,6 +7100,14 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/load-yaml-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5488,9 +7124,45 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -5498,6 +7170,11 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -5507,10 +7184,43 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "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==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.469.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.469.0.tgz", + "integrity": "sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/lusca": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/lusca/-/lusca-1.6.1.tgz", + "integrity": "sha512-+JzvUMH/rsE/4XfHdDOl70bip0beRcHSviYATQM0vtls59uVtdn1JMu4iD7ZShBpAmFG8EnaA+PrYG9sECMIOQ==", + "dependencies": { + "tsscmp": "^1.0.5" + }, + "engines": { + "node": ">=0.8.x" + } }, "node_modules/magic-string": { "version": "0.30.17", @@ -5554,7 +7264,6 @@ "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" } @@ -5855,6 +7564,19 @@ "url": "https://opencollective.com/unified" } }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5863,6 +7585,14 @@ "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==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", @@ -6045,9 +7775,9 @@ } }, "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", - "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", "funding": [ { "type": "GitHub Sponsors", @@ -6070,10 +7800,11 @@ } }, "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", - "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", + "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", "dependencies": { + "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", @@ -6183,9 +7914,9 @@ } }, "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", - "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", + "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", "funding": [ { "type": "GitHub Sponsors", @@ -6400,9 +8131,9 @@ ] }, "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", - "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", "funding": [ { "type": "GitHub Sponsors", @@ -6414,6 +8145,7 @@ } ], "dependencies": { + "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", @@ -6568,20 +8300,28 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "bin": { + "mime": "cli.js" + } + }, "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "^1.54.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -6608,47 +8348,128 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, - "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==" - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, + "node_modules/moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha512-LRvkBHaJGnrcWvqsElsOhHCzj8mU39wLx5pQ0pc6s153GynCTsPdGdqsVNKAQD9sKnWj11iF7TZx9fpLwdD3fw==", "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "*" } }, - "node_modules/natural-compare": { - "version": "1.4.0", + "node_modules/morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "dependencies": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/morgan/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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "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==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", + "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", + "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/natural-compare": { + "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/neotraverse": { "version": "0.6.18", "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", @@ -6669,21 +8490,41 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/nocache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", + "integrity": "sha512-YdKcy2x0dDwOh+8BEuHvA+mnOKAhmMQDgKBOCUGaLpewdmsRYguYZSom3yA+/OrE61O/q+NMQANnun65xpI1Hw==" + }, "node_modules/node-fetch-native": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz", "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==" }, "node_modules/node-mock-http": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.1.tgz", - "integrity": "sha512-0gJJgENizp4ghds/Ywu2FCmcRsgBTmRQzYPZm61wy+Em2sBarSka0OhQS5huLBg6od1zkNpnWMCZloQDFVvOMQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.0.tgz", + "integrity": "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==" }, "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 + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + }, + "node_modules/node-rsa": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-0.4.2.tgz", + "integrity": "sha512-Bvso6Zi9LY4otIZefYrscsUpo2mUpiAVIEmSZV2q41sP8tHZoert3Yu6zv4f/RXJqMNZQKCtnhDugIuCma23YA==", + "dependencies": { + "asn1": "0.2.3" + } + }, + "node_modules/node-statsd": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.1.1.tgz", + "integrity": "sha512-QDf6R8VXF56QVe1boek8an/Rb3rSNaxoFWb7Elpsv2m1+Noua1yy0F1FpKpK5VluF8oymWM4w764A4KsYL4pDg==", + "engines": { + "node": ">=0.1.97" + } }, "node_modules/normalize-path": { "version": "3.0.0", @@ -6697,16 +8538,30 @@ "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/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, "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" }, @@ -6718,7 +8573,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -6727,7 +8581,6 @@ "version": "4.1.7", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6744,15 +8597,14 @@ } }, "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6776,6 +8628,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object.groupby": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", @@ -6829,6 +8701,14 @@ "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==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -6869,7 +8749,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -6972,6 +8851,11 @@ "node": ">=6" } }, + "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==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7025,16 +8909,30 @@ } }, "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dependencies": { - "entities": "^6.0.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?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==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/partof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/partof/-/partof-1.0.0.tgz", + "integrity": "sha512-+TXdhKCySpJDynCxgAPoGVyAkiK3QPusQ63/BdU5t68QcYzyU6zkP/T7F3gkMQBVUYqdWEADKa6Kx5zg8QIKrg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -7061,7 +8959,6 @@ "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" } @@ -7069,8 +8966,32 @@ "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 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "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==", + "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==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/path-type": { "version": "4.0.0", @@ -7098,11 +9019,19 @@ } }, "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "engines": { - "node": ">=6" + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" } }, "node_modules/pkg-dir": { @@ -7168,15 +9097,14 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -7192,19 +9120,136 @@ } ], "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.0.tgz", + "integrity": "sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "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 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/preferred-pm": { "version": "4.1.1", @@ -7257,52 +9302,158 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.8.tgz", + "integrity": "sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==", + "dev": true, "engines": { - "node": ">=6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "node": ">=14.21.3" }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prompts/node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig-melody": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig-melody": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/processenv": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/processenv/-/processenv-1.1.0.tgz", + "integrity": "sha512-SymqIsn8GjEUy8nG7HiyEjgbfk1xFosRIakUX1NHLpriq3vVpKniGrr9RdMWCaGYWByIovbRt2f/WvmP/IOApQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "babel-runtime": "6.26.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "engines": { "node": ">=6" } }, "node_modules/property-information": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7335,6 +9486,115 @@ "node": ">= 0.6" } }, + "node_modules/raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dependencies": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/raw-body/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/raw-body/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -7423,7 +9683,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7441,6 +9700,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==" + }, "node_modules/regex": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz", @@ -7467,7 +9731,6 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7600,9 +9863,9 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -7668,7 +9931,6 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -7750,6 +10012,14 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -7776,11 +10046,11 @@ } }, "node_modules/rollup": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.1.tgz", - "integrity": "sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", "dependencies": { - "@types/estree": "1.0.8" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -7790,26 +10060,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.44.1", - "@rollup/rollup-android-arm64": "4.44.1", - "@rollup/rollup-darwin-arm64": "4.44.1", - "@rollup/rollup-darwin-x64": "4.44.1", - "@rollup/rollup-freebsd-arm64": "4.44.1", - "@rollup/rollup-freebsd-x64": "4.44.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.44.1", - "@rollup/rollup-linux-arm-musleabihf": "4.44.1", - "@rollup/rollup-linux-arm64-gnu": "4.44.1", - "@rollup/rollup-linux-arm64-musl": "4.44.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.44.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.1", - "@rollup/rollup-linux-riscv64-gnu": "4.44.1", - "@rollup/rollup-linux-riscv64-musl": "4.44.1", - "@rollup/rollup-linux-s390x-gnu": "4.44.1", - "@rollup/rollup-linux-x64-gnu": "4.44.1", - "@rollup/rollup-linux-x64-musl": "4.44.1", - "@rollup/rollup-win32-arm64-msvc": "4.44.1", - "@rollup/rollup-win32-ia32-msvc": "4.44.1", - "@rollup/rollup-win32-x64-msvc": "4.44.1", + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", "fsevents": "~2.3.2" } }, @@ -7845,7 +10114,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -7860,11 +10128,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==" + }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -7880,7 +10152,6 @@ "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", @@ -7893,6 +10164,11 @@ "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==" + }, "node_modules/sass-formatter": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", @@ -7902,15 +10178,18 @@ "suf-log": "^2.5.3" } }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "bin": { "semver": "bin/semver.js" }, @@ -7919,17 +10198,18 @@ } }, "node_modules/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.1.0.tgz", + "integrity": "sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==", "dependencies": { "debug": "^4.3.5", + "destroy": "^1.2.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", - "fresh": "^2.0.0", + "fresh": "^0.5.2", "http-errors": "^2.0.0", - "mime-types": "^3.0.1", + "mime-types": "^2.1.35", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", @@ -7939,6 +10219,120 @@ "node": ">= 18" } }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "node_modules/serve-static/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==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/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==", + "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-static/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-static/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/server-destroy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", @@ -7948,7 +10342,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7965,7 +10358,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7980,7 +10372,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -7995,6 +10386,16 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/sha-1": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sha-1/-/sha-1-0.1.1.tgz", + "integrity": "sha512-dexizf3hB7d4Jq6Cd0d/NYQiqgEqIfZIpuMfwPfvSb6h06DZKmHyUe55jYwpHC12R42wpqXO6ouhiBpRzIcD/g==" + }, + "node_modules/shadcn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shadcn/-/shadcn-1.0.0.tgz", + "integrity": "sha512-kCxBIBiPS83WxrWkOQHamWpr9XlLtOtOlJM6QX90h9A5xZCBMhxu4ibcNT2ZnzZLdexkYbQrnijfPKdOsZxOpA==" + }, "node_modules/sharp": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", @@ -8038,7 +10439,6 @@ "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" }, @@ -8050,7 +10450,6 @@ "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" } @@ -8107,7 +10506,6 @@ "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", @@ -8126,7 +10524,6 @@ "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" @@ -8142,7 +10539,6 @@ "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", @@ -8160,7 +10556,6 @@ "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", @@ -8175,6 +10570,17 @@ "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==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -8189,29 +10595,6 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, - "node_modules/sitemap": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-8.0.0.tgz", - "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -8222,9 +10605,9 @@ } }, "node_modules/smol-toml": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.0.tgz", - "integrity": "sha512-IMxaDA/58wBvkvX77ykQ6e9r6fjs8xbxpz8bMCyVQ/fEFWbA5uJrnaVwDuhLrrANGdd7apRyTPDBvI893Bxu9g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz", + "integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==", "engines": { "node": ">= 18" }, @@ -8257,36 +10640,88 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/split2": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.0.0.tgz", + "integrity": "sha512-Cp7G+nUfKJyHCrAI8kze3Q00PFGEG1pMgrAlTFlDbn+GW24evSZHJuMl+iUJx1w/NTRDeBiTgvwnf6YOt94FMw==", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/split2/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==", + "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/split2/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==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { "node": ">= 0.8" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, + "node_modules/stethoskop": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stethoskop/-/stethoskop-1.0.0.tgz", + "integrity": "sha512-4JnZ+UmTs9SFfDjSHFlD/EoXcb1bfwntkt4h1ipNGrpxtRzmHTxOmdquCJvIrVu608Um7a09cGX0ZSOSllWJNQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" + "node-statsd": "0.1.1" } }, - "node_modules/stream-replace-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", - "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==" + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, "node_modules/string-width": { "version": "7.2.0", @@ -8304,6 +10739,25 @@ "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==", + "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/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==" + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", @@ -8338,7 +10792,6 @@ "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -8359,7 +10812,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -8377,7 +10829,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8403,6 +10854,19 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -8414,6 +10878,18 @@ "node": ">=8" } }, + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -8435,21 +10911,83 @@ } }, "node_modules/style-to-js": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", - "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", + "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", "dependencies": { - "style-to-object": "1.0.9" + "style-to-object": "1.0.8" } }, "node_modules/style-to-object": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", - "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", "dependencies": { "inline-style-parser": "0.2.4" } }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/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==", + "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/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/suf-log": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", @@ -8475,7 +11013,6 @@ "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" }, @@ -8483,6 +11020,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tailwind/-/tailwind-4.0.0.tgz", + "integrity": "sha512-LlUNoD/5maFG1h5kQ6/hXfFPdcnYw+1Z7z+kUD/W/E71CUMwcnrskxiBM8c3G8wmPsD1VvCuqGYMHviI8+yrmg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@babel/runtime": "7.3.4", + "ajv": "6.10.0", + "app-root-path": "2.1.0", + "async-retry": "1.2.3", + "body-parser": "1.18.3", + "commands-events": "1.0.4", + "compression": "1.7.3", + "content-type": "1.0.4", + "cors": "2.8.5", + "crypto2": "2.0.0", + "datasette": "1.0.1", + "draht": "1.0.1", + "express": "4.16.4 ", + "flaschenpost": "1.1.3", + "hase": "2.0.0", + "json-lines": "1.0.0", + "limes": "2.0.0", + "lodash": "4.17.11", + "lusca": "1.6.1", + "morgan": "1.9.1", + "nocache": "2.0.0", + "partof": "1.0.0", + "processenv": "1.1.0", + "stethoskop": "1.0.0", + "timer2": "1.0.0", + "uuidv4": "3.0.1", + "ws": "6.2.0" + } + }, "node_modules/tailwind-merge": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.2.0.tgz", @@ -8495,23 +11067,224 @@ "url": "https://github.com/sponsors/dcastil" } }, + "node_modules/tailwind/node_modules/@babel/runtime": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/tailwind/node_modules/ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/tailwind/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" + }, + "node_modules/tailwind/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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/tailwindcss/node_modules/chokidar/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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss/node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "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/tailwindcss/node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/timer2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/timer2/-/timer2-1.0.0.tgz", + "integrity": "sha512-UOZql+P2ET0da+B7V3/RImN3IhC5ghb+9cpecfUhmYGIm0z73dDr3A781nBLnFYmRzeT1AmoT4w9Lgr8n7n7xg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, "node_modules/tinyexec": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", "dependencies": { - "fdir": "^6.4.4", + "fdir": "^6.4.3", "picomatch": "^4.0.2" }, "engines": { @@ -8570,10 +11343,15 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "node_modules/tsconfck": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", - "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.5.tgz", + "integrity": "sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==", "bin": { "tsconfck": "bin/tsconfck.js" }, @@ -8601,12 +11379,32 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/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==", "optional": true }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -8620,9 +11418,9 @@ } }, "node_modules/type-fest": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz", + "integrity": "sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==", "engines": { "node": ">=16" }, @@ -8630,11 +11428,22 @@ "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==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -8648,7 +11457,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -8667,7 +11475,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -8688,7 +11495,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -8722,28 +11528,27 @@ } }, "node_modules/typescript-auto-import-cache": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.6.tgz", - "integrity": "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.5.tgz", + "integrity": "sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==", "dependencies": { "semver": "^7.3.8" } }, "node_modules/ufo": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==" }, "node_modules/ultrahtml": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", - "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==" }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -8765,7 +11570,8 @@ "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true }, "node_modules/unified": { "version": "11.0.5", @@ -8911,102 +11717,26 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", - "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.2", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" - }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/untildify": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", + "engines": { + "node": ">=4" } }, "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", @@ -9036,11 +11766,66 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.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==" + }, + "node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "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==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/uuidv4": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-3.0.1.tgz", + "integrity": "sha512-PPzksdWRl2a5C9hrs3OOYrArTeyoR0ftJ3jtOy+BnVHkT2UlrrzPNt9nTdiGuxmQItHM/AcTXahwZZC57Njojg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "uuid": "3.3.2" + } + }, + "node_modules/varname": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/varname/-/varname-2.0.3.tgz", + "integrity": "sha512-+DofT9mJAUALhnr9ipZ5Z2icwaEZ7DAajOZT4ffXy3MQqnXtG3b7atItLQEJCkfcJTOf9WcsywneOEibD4eqJg==", + "engines": { + "node": ">=0.10" + } + }, + "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==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", @@ -9081,16 +11866,13 @@ } }, "node_modules/vite": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.1.tgz", + "integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==", "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" + "rollup": "^4.30.1" }, "bin": { "vite": "bin/vite.js" @@ -9153,16 +11935,43 @@ } } }, + "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==", + "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/vitefu": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.7.tgz", - "integrity": "sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz", + "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==", "workspaces": [ "tests/deps/*", "tests/projects/*" ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { "vite": { @@ -9300,25 +12109,25 @@ } }, "node_modules/vscode-css-languageservice": { - "version": "6.3.7", - "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.7.tgz", - "integrity": "sha512-5TmXHKllPzfkPhW4UE9sODV3E0bIOJPOk+EERKllf2SmAczjfTmYeq5txco+N3jpF8KIZ6loj/JptpHBQuVQRA==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.2.tgz", + "integrity": "sha512-GEpPxrUTAeXWdZWHev1OJU9lz2Q2/PPBxQ2TIRmLGvQiH3WZbqaNoute0n0ewxlgtjzTW3AKZT+NHySk5Rf4Eg==", "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", - "vscode-uri": "^3.1.0" + "vscode-uri": "^3.0.8" } }, "node_modules/vscode-html-languageservice": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.5.1.tgz", - "integrity": "sha512-/ZdEtsZ3OiFSyL00kmmu7crFV9KwWR+MgpzjsxO60DQH7sIfHZM892C/E4iDd11EKocr+NYuvOA4Y7uc3QzLEA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", - "vscode-uri": "^3.1.0" + "vscode-uri": "^3.0.8" } }, "node_modules/vscode-json-languageservice": { @@ -9402,7 +12211,6 @@ "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" }, @@ -9417,7 +12225,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -9436,7 +12243,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -9463,7 +12269,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -9500,7 +12305,6 @@ "version": "1.1.19", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -9556,6 +12360,55 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "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==", + "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-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==" + }, + "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==", + "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/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", @@ -9587,6 +12440,14 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "node_modules/ws": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.0.tgz", + "integrity": "sha512-deZYUNlt2O4buFCa3t5bKLf8A7FPP/TVjwOeVNpw818Ma5nk4MLXls2eoEGS39o8119QIYxTrTDoPQ5B/gTD6w==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, "node_modules/xxhash-wasm": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", @@ -9600,15 +12461,20 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14.6" + "node": ">= 14" } }, "node_modules/yaml-language-server": { @@ -9654,6 +12520,11 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "node_modules/yaml-language-server/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/yaml-language-server/node_modules/prettier": { "version": "2.8.7", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", @@ -9759,9 +12630,9 @@ } }, "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.0.tgz", + "integrity": "sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==", "engines": { "node": ">=12.20" }, @@ -9770,9 +12641,9 @@ } }, "node_modules/yocto-spinner": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.3.tgz", - "integrity": "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.1.tgz", + "integrity": "sha512-lHHxjh0bXaLgdJy3cNnVb/F9myx3CkhrvSOEVTkaUgNMXnYFa2xYPVhtGnqhh3jErY2gParBOHallCbc7NrlZQ==", "dependencies": { "yoctocolors": "^2.1.1" }, @@ -9795,17 +12666,17 @@ } }, "node_modules/zod": { - "version": "3.25.67", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz", - "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zod-to-json-schema": { - "version": "3.24.6", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", - "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.3.tgz", + "integrity": "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==", "peerDependencies": { "zod": "^3.24.1" } diff --git a/package.json b/package.json index 5e81a91b..e52fee2f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@recursivezero/abcd", - "version": "2.1.0", + "version": "1.0.1", "description": "A website for our kids trial phase of abcdkbd.com", "homepage": "https://parixan.xyz", "displayName": "abcd", @@ -40,30 +40,6 @@ { "name": "Vamil Porwal", "email": "vamililporwal@gmail.com" - }, - { - "name": "Ayush Tyagi", - "email": "aytyagi.btech2023@iujaipur.edu.in" - }, - { - "name": "Azmat Raza", - "email": "12613120az@gmail.com" - }, - { - "name": "Chhavi Sharma", - "email": "sharmachhavi519@gmail.com" - }, - { - "name": "Prakash Raj", - "email": "1046prt@gmail.com" - }, - { - "name": "Rupesh", - "email": "rupesh010903@gmail.com" - }, - { - "name": "Suresh Chelani", - "email": "sureshc.btech2022@iujaipur.edu.in" } ], "keywords": [ @@ -86,27 +62,41 @@ "@astrojs/check": "0.9.4", "@astrojs/mdx": "4.0.3", "@astrojs/node": "9.1.2", - "@astrojs/sitemap": "3.4.1", + "@astrojs/react": "4.1.2", + "@astrojs/tailwind": "5.1.4", "@fontsource/roboto": "5.1.0", + "@radix-ui/react-slot": "1.1.1", "astro": "5.4.1", "class-variance-authority": "0.7.0", "clsx": "2.1.0", - "dotenv": "16.4.5", - "dotenv-expand": "11.0.6", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "lucide-react": "0.469.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "shadcn": "1.0.0", + "tailwind": "4.0.0", "tailwind-merge": "2.2.0", + "tailwindcss": "3.4.17", "typescript": "5.6.2", - "zod": "3.25.67" + "zod": "3.24.1" }, "devDependencies": { + "@tailwindcss/aspect-ratio": "0.4.2", + "@tailwindcss/typography": "0.5.10", "@types/node": "22.10.2", + "@types/react": "19.0.0", "@typescript-eslint/eslint-plugin": "6.13.2", "@typescript-eslint/parser": "6.13.2", "autoprefixer": "10.4.16", "eslint": "8.55.0", "eslint-plugin-import": "2.29.0", "eslint-plugin-jsx-a11y": "6.8.0", + "postcss": "8.4.32", + "postcss-import": "16.1.0", "prettier": "3.1.0", "prettier-plugin-astro": "0.14.1", + "prettier-plugin-tailwindcss": "0.6.8", "shx": "0.3.4" } -} \ No newline at end of file +} diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 00000000..5bd91bad --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,8 @@ +module.exports = { + plugins: { + "postcss-import": {}, + "tailwindcss/nesting": {}, + tailwindcss: {}, + autoprefixer: {} + } +}; diff --git a/public/assets/icons/favicon.svg b/public/assets/icons/favicon.svg deleted file mode 100644 index 45385540..00000000 --- a/public/assets/icons/favicon.svg +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/icons/logo.svg b/public/assets/icons/logo.svg deleted file mode 100644 index f47eee37..00000000 --- a/public/assets/icons/logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - AB - - CD - - \ No newline at end of file diff --git a/public/assets/icons/parixan/android-chrome-192x192.png b/public/assets/icons/parixan/android-chrome-192x192.png deleted file mode 100644 index ead60ec9..00000000 Binary files a/public/assets/icons/parixan/android-chrome-192x192.png and /dev/null differ diff --git a/public/assets/icons/parixan/android-chrome-512x512.png b/public/assets/icons/parixan/android-chrome-512x512.png deleted file mode 100644 index ba74bec8..00000000 Binary files a/public/assets/icons/parixan/android-chrome-512x512.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-114x114.png b/public/assets/icons/parixan/apple-touch-icon-114x114.png deleted file mode 100644 index aa62a7d0..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-114x114.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-120x120.png b/public/assets/icons/parixan/apple-touch-icon-120x120.png deleted file mode 100644 index 230617ca..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-120x120.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-144x144.png b/public/assets/icons/parixan/apple-touch-icon-144x144.png deleted file mode 100644 index 1777faff..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-144x144.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-152x152.png b/public/assets/icons/parixan/apple-touch-icon-152x152.png deleted file mode 100644 index 1d476a31..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-152x152.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-180x180.png b/public/assets/icons/parixan/apple-touch-icon-180x180.png deleted file mode 100644 index 71b57ace..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-180x180.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-192x192.png b/public/assets/icons/parixan/apple-touch-icon-192x192.png deleted file mode 100644 index ead60ec9..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-192x192.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-57x57.png b/public/assets/icons/parixan/apple-touch-icon-57x57.png deleted file mode 100644 index 9d04a2b5..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-57x57.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-72x72.png b/public/assets/icons/parixan/apple-touch-icon-72x72.png deleted file mode 100644 index f9beabef..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-72x72.png and /dev/null differ diff --git a/public/assets/icons/parixan/apple-touch-icon-76x76.png b/public/assets/icons/parixan/apple-touch-icon-76x76.png deleted file mode 100644 index 4d96220a..00000000 Binary files a/public/assets/icons/parixan/apple-touch-icon-76x76.png and /dev/null differ diff --git a/public/assets/icons/parixan/favicon-128x128.png b/public/assets/icons/parixan/favicon-128x128.png deleted file mode 100644 index d7f06db5..00000000 Binary files a/public/assets/icons/parixan/favicon-128x128.png and /dev/null differ diff --git a/public/assets/icons/parixan/favicon-16x16.png b/public/assets/icons/parixan/favicon-16x16.png deleted file mode 100644 index d3988a26..00000000 Binary files a/public/assets/icons/parixan/favicon-16x16.png and /dev/null differ diff --git a/public/assets/icons/parixan/favicon-196x196.png b/public/assets/icons/parixan/favicon-196x196.png deleted file mode 100644 index dde31a49..00000000 Binary files a/public/assets/icons/parixan/favicon-196x196.png and /dev/null differ diff --git a/public/assets/icons/parixan/favicon-32x32.png b/public/assets/icons/parixan/favicon-32x32.png deleted file mode 100644 index e2eb4a9d..00000000 Binary files a/public/assets/icons/parixan/favicon-32x32.png and /dev/null differ diff --git a/public/assets/icons/parixan/favicon-96x96.png b/public/assets/icons/parixan/favicon-96x96.png deleted file mode 100644 index 8d6d67df..00000000 Binary files a/public/assets/icons/parixan/favicon-96x96.png and /dev/null differ diff --git a/public/assets/icons/parixan/favicon.ico b/public/assets/icons/parixan/favicon.ico deleted file mode 100644 index 303c31bc..00000000 Binary files a/public/assets/icons/parixan/favicon.ico and /dev/null differ diff --git a/public/assets/images/128x128.png b/public/assets/images/128x128.png deleted file mode 100644 index 71e1bb8d..00000000 Binary files a/public/assets/images/128x128.png and /dev/null differ diff --git a/public/assets/images/144x144.png b/public/assets/images/144x144.png deleted file mode 100644 index 557899fb..00000000 Binary files a/public/assets/images/144x144.png and /dev/null differ diff --git a/public/assets/images/192x192.png b/public/assets/images/192x192.png index cb3ddf98..029b7b0f 100644 Binary files a/public/assets/images/192x192.png and b/public/assets/images/192x192.png differ diff --git a/public/assets/images/400x400.png b/public/assets/images/400x400.png deleted file mode 100644 index 62ff441b..00000000 Binary files a/public/assets/images/400x400.png and /dev/null differ diff --git a/public/assets/images/48x48.png b/public/assets/images/48x48.png deleted file mode 100644 index c4d41dc4..00000000 Binary files a/public/assets/images/48x48.png and /dev/null differ diff --git a/public/assets/images/512x512.png b/public/assets/images/512x512.png index 0cee7e33..4e94a129 100644 Binary files a/public/assets/images/512x512.png and b/public/assets/images/512x512.png differ diff --git a/public/assets/images/72x72.png b/public/assets/images/72x72.png deleted file mode 100644 index 1c41cef2..00000000 Binary files a/public/assets/images/72x72.png and /dev/null differ diff --git a/public/assets/images/ABCD.png b/public/assets/images/ABCD.png deleted file mode 100644 index e2aabde3..00000000 Binary files a/public/assets/images/ABCD.png and /dev/null differ diff --git a/public/assets/images/alphabets/general/apple.jpg b/public/assets/images/alphabets/general/apple.jpg new file mode 100644 index 00000000..d9c3f955 Binary files /dev/null and b/public/assets/images/alphabets/general/apple.jpg differ diff --git a/public/assets/images/android-chrome-192x192.png b/public/assets/images/android-chrome-192x192.png deleted file mode 100644 index 69c66192..00000000 Binary files a/public/assets/images/android-chrome-192x192.png and /dev/null differ diff --git a/public/assets/images/android-chrome-512x512.png b/public/assets/images/android-chrome-512x512.png deleted file mode 100644 index 7449fa49..00000000 Binary files a/public/assets/images/android-chrome-512x512.png and /dev/null differ diff --git a/public/assets/images/apple-touch-icon.png b/public/assets/images/apple-touch-icon.png index d8d1279e..9a319941 100644 Binary files a/public/assets/images/apple-touch-icon.png and b/public/assets/images/apple-touch-icon.png differ diff --git a/public/assets/images/favicon-16x16.png b/public/assets/images/favicon-16x16.png index 5b61ae66..b89ae7c7 100644 Binary files a/public/assets/images/favicon-16x16.png and b/public/assets/images/favicon-16x16.png differ diff --git a/public/assets/images/favicon-32x32.png b/public/assets/images/favicon-32x32.png index 7334a644..c13a4191 100644 Binary files a/public/assets/images/favicon-32x32.png and b/public/assets/images/favicon-32x32.png differ diff --git a/public/assets/images/favicon.ico b/public/assets/images/favicon.ico index 743302ef..7e10105d 100644 Binary files a/public/assets/images/favicon.ico and b/public/assets/images/favicon.ico differ diff --git a/public/assets/images/parixan/128x128.png b/public/assets/images/parixan/128x128.png deleted file mode 100644 index aa313804..00000000 Binary files a/public/assets/images/parixan/128x128.png and /dev/null differ diff --git a/public/assets/images/parixan/144x144.png b/public/assets/images/parixan/144x144.png deleted file mode 100644 index 76bef516..00000000 Binary files a/public/assets/images/parixan/144x144.png and /dev/null differ diff --git a/public/assets/images/parixan/192x192.png b/public/assets/images/parixan/192x192.png deleted file mode 100644 index db6ac398..00000000 Binary files a/public/assets/images/parixan/192x192.png and /dev/null differ diff --git a/public/assets/images/parixan/512x512.png b/public/assets/images/parixan/512x512.png deleted file mode 100644 index 30f9aa15..00000000 Binary files a/public/assets/images/parixan/512x512.png and /dev/null differ diff --git a/public/assets/images/parixan/parixan-black.svg b/public/assets/images/parixan/parixan-black.svg deleted file mode 100644 index 9d8eaf06..00000000 --- a/public/assets/images/parixan/parixan-black.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/public/assets/images/parixan/parixan-white.svg b/public/assets/images/parixan/parixan-white.svg deleted file mode 100644 index d29dc6e8..00000000 --- a/public/assets/images/parixan/parixan-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/assets/images/site.webmanifest b/public/assets/images/site.webmanifest index 7396478a..0b08af12 100644 --- a/public/assets/images/site.webmanifest +++ b/public/assets/images/site.webmanifest @@ -1,17 +1,9 @@ { - "name": "ABCDKBD", - "short_name": "abcd", + "name": "", + "short_name": "", "icons": [ - { - "src": "/assets/images/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/assets/images/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } + { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } ], "theme_color": "#ffffff", "background_color": "#ffffff", diff --git a/public/assets/media/images/color-picker.png b/public/assets/media/images/color-picker.png new file mode 100644 index 00000000..fc7c1c0a Binary files /dev/null and b/public/assets/media/images/color-picker.png differ diff --git a/public/assets/media/images/main-page.png b/public/assets/media/images/main-page.png new file mode 100644 index 00000000..3100ddf9 Binary files /dev/null and b/public/assets/media/images/main-page.png differ diff --git a/public/assets/media/images/panel.png b/public/assets/media/images/panel.png new file mode 100644 index 00000000..fe201749 Binary files /dev/null and b/public/assets/media/images/panel.png differ diff --git a/public/assets/media/images/reader.png b/public/assets/media/images/reader.png new file mode 100644 index 00000000..57bc0b9b Binary files /dev/null and b/public/assets/media/images/reader.png differ diff --git a/public/assets/media/images/typing.png b/public/assets/media/images/typing.png new file mode 100644 index 00000000..87e19a5b Binary files /dev/null and b/public/assets/media/images/typing.png differ diff --git a/public/data/zodiacim/1.jpeg b/public/data/zodiacim/1.jpeg deleted file mode 100644 index 59b6acc0..00000000 Binary files a/public/data/zodiacim/1.jpeg and /dev/null differ diff --git a/public/data/zodiacim/10.jpeg b/public/data/zodiacim/10.jpeg deleted file mode 100644 index 05c39100..00000000 Binary files a/public/data/zodiacim/10.jpeg and /dev/null differ diff --git a/public/data/zodiacim/11.jpeg b/public/data/zodiacim/11.jpeg deleted file mode 100644 index 3f1e2e40..00000000 Binary files a/public/data/zodiacim/11.jpeg and /dev/null differ diff --git a/public/data/zodiacim/12.jpeg b/public/data/zodiacim/12.jpeg deleted file mode 100644 index 7085d645..00000000 Binary files a/public/data/zodiacim/12.jpeg and /dev/null differ diff --git a/public/data/zodiacim/2.jpeg b/public/data/zodiacim/2.jpeg deleted file mode 100644 index a793cd42..00000000 Binary files a/public/data/zodiacim/2.jpeg and /dev/null differ diff --git a/public/data/zodiacim/3.jpeg b/public/data/zodiacim/3.jpeg deleted file mode 100644 index d226dbff..00000000 Binary files a/public/data/zodiacim/3.jpeg and /dev/null differ diff --git a/public/data/zodiacim/4.jpeg b/public/data/zodiacim/4.jpeg deleted file mode 100644 index e4ce6f56..00000000 Binary files a/public/data/zodiacim/4.jpeg and /dev/null differ diff --git a/public/data/zodiacim/5.jpeg b/public/data/zodiacim/5.jpeg deleted file mode 100644 index 93247304..00000000 Binary files a/public/data/zodiacim/5.jpeg and /dev/null differ diff --git a/public/data/zodiacim/6.jpeg b/public/data/zodiacim/6.jpeg deleted file mode 100644 index 0fd7d3b3..00000000 Binary files a/public/data/zodiacim/6.jpeg and /dev/null differ diff --git a/public/data/zodiacim/7.jpeg b/public/data/zodiacim/7.jpeg deleted file mode 100644 index 9bbf39e3..00000000 Binary files a/public/data/zodiacim/7.jpeg and /dev/null differ diff --git a/public/data/zodiacim/8.jpeg b/public/data/zodiacim/8.jpeg deleted file mode 100644 index 6ac06f93..00000000 Binary files a/public/data/zodiacim/8.jpeg and /dev/null differ diff --git a/public/data/zodiacim/9.jpeg b/public/data/zodiacim/9.jpeg deleted file mode 100644 index 4b5e5b69..00000000 Binary files a/public/data/zodiacim/9.jpeg and /dev/null differ diff --git a/public/data/zodiacs.json b/public/data/zodiacs.json deleted file mode 100644 index 79f14e5f..00000000 --- a/public/data/zodiacs.json +++ /dev/null @@ -1,230 +0,0 @@ -[ - { - "name": { - "english": "Mesha (Aries)", - "hindi": "मेष (मेष राशि)" - }, - "dates": { - "english": "April 14 - May 14", - "hindi": "14 अप्रैल - 14 मई" - }, - "image": "1.jpeg", - "description": { - "english": "Mesha is the first sign of the Indian zodiac, represented by the Ram. People born under this sign are known for their leadership qualities, courage, and enthusiasm.", - "hindi": "मेष भारतीय राशि चक्र का पहला चिन्ह है, जिसे मेढ़े द्वारा दर्शाया जाता है। इस राशि के लोग नेतृत्व गुणों, साहस और उत्साह के लिए जाने जाते हैं।" - }, - "points": { - "english": ["Corresponding Letters:A, L, E, C", "Ruled by Mars (Mangal) - planet of energy and action", "Fire sign - passionate and dynamic personality", "Natural leaders with competitive spirit", "Impulsive decision makers but quick learners", "Best suited for careers in military, sports or entrepreneurship", "Health concerns: Headaches, high blood pressure", "Compatible with Leo and Sagittarius"], - "hindi": ["संबंधित अक्षर: अ, ल, ई, च", "मंगल ग्रह द्वारा शासित - ऊर्जा और कार्य का ग्रह", "अग्नि तत्व - उत्साही और गतिशील व्यक्तित्व", "प्राकृतिक नेता प्रवृत्ति के साथ प्रतिस्पर्धी स्वभाव", "आवेगी निर्णय लेने वाले परंतु तीव्र सीखने की क्षमता", "सेना, खेल या उद्यमिता में करियर के लिए उपयुक्त", "स्वास्थ्य संबंधी चिंताएँ: सिरदर्द, उच्च रक्तचाप", "सिंह और धनु राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Vrishabha (Taurus)", - "hindi": "वृषभ (वृषभ राशि)" - }, - "dates": { - "english": "May 15 - June 14", - "hindi": "15 मई - 14 जून" - }, - "image": "2.jpeg", - "description": { - "english": "Vrishabha is represented by the Bull. Individuals born under this sign are typically reliable, patient, and practical, with a strong connection to material comforts.", - "hindi": "वृषभ को बैल द्वारा दर्शाया जाता है। इस राशि के जातक आमतौर पर विश्वसनीय, धैर्यवान और व्यावहारिक होते हैं, जो भौतिक सुखों से गहरा जुड़ाव रखते हैं।" - }, - "points": { - "english": ["Corresponding Letters: B,V,U,W", "Ruled by Venus (Shukra) - planet of love and beauty", "Earth sign - grounded and stable personality", "Extremely patient but can be stubborn", "Have great appreciation for arts and luxury", "Excel in banking, real estate and agriculture", "Health concerns: Throat and thyroid issues", "Compatible with Virgo and Capricorn"], - "hindi": ["संबंधित अक्षर: ब, व, उ, ऊ", "शुक्र ग्रह द्वारा शासित - प्रेम और सौंदर्य का ग्रह", "पृथ्वी तत्व - स्थिर और व्यावहारिक व्यक्तित्व", "अत्यधिक धैर्यवान परंतु जिद्दी स्वभाव", "कला और विलासिता के प्रति गहरी रुचि", "बैंकिंग, रियल एस्टेट और कृषि में उत्कृष्ट", "स्वास्थ्य संबंधी चिंताएँ: गले और थायरॉयड समस्याएँ", "कन्या और मकर राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Mithuna (Gemini)", - "hindi": "मिथुन (मिथुन राशि)" - }, - "dates": { - "english": "June 15 - July 14", - "hindi": "15 जून - 14 जुलाई" - }, - "image": "3.jpeg", - "description": { - "english": "Mithuna is symbolized by the Twins. Those born under this sign are often adaptable, communicative, and intellectually curious, with a dual nature.", - "hindi": "मिथुन को जुड़वां बच्चों द्वारा दर्शाया जाता है। इस राशि के लोग अक्सर अनुकूलनीय, संवादशील और बौद्धिक रूप से जिज्ञासु होते हैं, जिनमें द्वैध स्वभाव होता है।" - }, - "points": { - "english": ["Corresponding Letters: K,Ch,Gh", "Ruled by Mercury (Budh) - planet of communication", "Air sign - intellectual and social personality", "Quick learners with excellent communication skills", "Can be inconsistent due to dual nature", "Best suited for journalism, teaching and IT fields", "Health concerns: Nervous system and lung issues", "Compatible with Libra and Aquarius"], - "hindi": ["संबंधित अक्षर: क, छ, घ", "बुध ग्रह द्वारा शासित - संचार का ग्रह", "वायु तत्व - बौद्धिक और सामाजिक व्यक्तित्व", "तीव्र सीखने की क्षमता और उत्कृष्ट संचार कौशल", "द्वैध स्वभाव के कारण अस्थिर हो सकते हैं", "पत्रकारिता, शिक्षण और आईटी क्षेत्रों के लिए उपयुक्त", "स्वास्थ्य संबंधी चिंताएँ: तंत्रिका तंत्र और फेफड़ों की समस्याएँ", "तुला और कुंभ राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Karka (Cancer)", - "hindi": "कर्क (कर्क राशि)" - }, - "dates": { - "english": "July 15 - August 14", - "hindi": "15 जुलाई - 14 अगस्त" - }, - "image": "4.jpeg", - "description": { - "english": "Karka is represented by the Crab. People of this sign are typically emotional, intuitive, and nurturing, with strong connections to home and family.", - "hindi": "कर्क को केकड़े द्वारा दर्शाया जाता है। इस राशि के लोग आमतौर पर भावुक, अंतर्ज्ञानी और पोषण करने वाले होते हैं, जो घर और परिवार से मजबूत जुड़ाव रखते हैं।" - }, - "points": { - "english": ["Corresponding Letters: D,H", "Ruled by Moon (Chandra) - planet of emotions", "Water sign - sensitive and caring personality", "Highly intuitive with strong memory", "Can be moody and overly sensitive", "Excel in nursing, psychology and culinary arts", "Health concerns: Digestive issues and anxiety", "Compatible with Scorpio and Pisces"], - "hindi": ["संबंधित अक्षर: ड, ह", "चंद्रमा द्वारा शासित - भावनाओं का ग्रह", "जल तत्व - संवेदनशील और देखभाल करने वाला व्यक्तित्व", "अत्यधिक अंतर्ज्ञानी और तीव्र स्मरण शक्ति", "मूड स्विंग्स और अतिसंवेदनशील हो सकते हैं", "नर्सिंग, मनोविज्ञान और पाक कला में उत्कृष्ट", "स्वास्थ्य संबंधी चिंताएँ: पाचन समस्याएँ और चिंता", "वृश्चिक और मीन राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Simha (Leo)", - "hindi": "सिंह (सिंह राशि)" - }, - "dates": { - "english": "August 15 - September 15", - "hindi": "15 अगस्त - 15 सितंबर" - }, - "image": "5.jpeg", - "description": { - "english": "Simha is symbolized by the Lion. Individuals born under this sign are often confident, generous, and natural leaders who enjoy being in the spotlight.", - "hindi": "सिंह को शेर द्वारा दर्शाया जाता है। इस राशि के जातक अक्सर आत्मविश्वासी, उदार और प्राकृतिक नेता होते हैं जो स्पॉटलाइट में रहना पसंद करते हैं।" - }, - "points": { - "english": ["Corresponding Letters: M,T", "Ruled by Sun (Surya) - planet of vitality", "Fire sign - charismatic and bold personality", "Natural performers with leadership qualities", "Can be arrogant and attention-seeking", "Best suited for politics, entertainment and management", "Health concerns: Heart and back problems", "Compatible with Aries and Sagittarius"], - "hindi": ["संबंधित अक्षर: म, ट", "सूर्य द्वारा शासित - जीवन शक्ति का ग्रह", "अग्नि तत्व - करिश्माई और साहसी व्यक्तित्व", "नेतृत्व गुणों के साथ प्राकृतिक प्रदर्शनकर्ता", "अहंकारी और ध्यान आकर्षित करने वाले हो सकते हैं", "राजनीति, मनोरंजन और प्रबंधन के लिए उपयुक्त", "स्वास्थ्य संबंधी चिंताएँ: हृदय और पीठ की समस्याएँ", "मेष और धनु राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Kanya (Virgo)", - "hindi": "कन्या (कन्या राशि)" - }, - "dates": { - "english": "September 16 - October 15", - "hindi": "16 सितंबर - 15 अक्टूबर" - }, - "image": "6.jpeg", - "description": { - "english": "Kanya is represented by the Virgin. Those born under this sign are typically analytical, practical, and detail-oriented, with a strong sense of service.", - "hindi": "कन्या को कुंवारी द्वारा दर्शाया जाता है। इस राशि के लोग आमतौर पर विश्लेषणात्मक, व्यावहारिक और विस्तार-उन्मुख होते हैं, जिनमें सेवा की प्रबल भावना होती है।" - }, - "points": { - "english": ["Corresponding Letters: P,Th,N", "Ruled by Mercury (Budh) - planet of intellect", "Earth sign - methodical and organized personality", "Perfectionists with strong analytical skills", "Can be overly critical and worrisome", "Excel in healthcare, research and accounting", "Health concerns: Digestive and nervous disorders", "Compatible with Taurus and Capricorn"], - "hindi": ["संबंधित अक्षर: प, ठ, ण", "बुध ग्रह द्वारा शासित - बुद्धि का ग्रह", "पृथ्वी तत्व - व्यवस्थित और संगठित व्यक्तित्व", "मजबूत विश्लेषणात्मक कौशल के साथ पूर्णतावादी", "अत्यधिक आलोचनात्मक और चिंतित हो सकते हैं", "स्वास्थ्य सेवा, शोध और लेखा में उत्कृष्ट", "स्वास्थ्य संबंधी चिंताएँ: पाचन और तंत्रिका संबंधी विकार", "वृषभ और मकर राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Tula (Libra)", - "hindi": "तुला (तुला राशि)" - }, - "dates": { - "english": "October 16 - November 14", - "hindi": "16 अक्टूबर - 14 नवंबर" - }, - "image": "7.jpeg", - "description": { - "english": "Tula is symbolized by the Scales. People of this sign are often diplomatic, social, and fair-minded, with a strong sense of justice and balance.", - "hindi": "तुला को तराजू द्वारा दर्शाया जाता है। इस राशि के लोग अक्सर कूटनीतिक, सामाजिक और निष्पक्ष विचारों वाले होते हैं, जिनमें न्याय और संतुलन की प्रबल भावना होती है।" - }, - "points": { - "english": ["Corresponding Letters: R,T", "Ruled by Venus (Shukra) - planet of harmony", "Air sign - charming and balanced personality", "Natural peacemakers with good taste", "Can be indecisive and people-pleasers", "Best suited for law, diplomacy and arts", "Health concerns: Kidney and skin issues", "Compatible with Gemini and Aquarius"], - "hindi": ["संबंधित अक्षर: र, त", "शुक्र ग्रह द्वारा शासित - सामंजस्य का ग्रह", "वायु तत्व - आकर्षक और संतुलित व्यक्तित्व", "अच्छे स्वाद के साथ प्राकृतिक शांतिदूत", "अनिर्णायक और लोगों को खुश करने वाले हो सकते हैं", "कानून, कूटनीति और कला के लिए उपयुक्त", "स्वास्थ्य संबंधी चिंताएँ: गुर्दे और त्वचा की समस्याएँ", "मिथुन और कुंभ राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Vrishchika (Scorpio)", - "hindi": "वृश्चिक (वृश्चिक राशि)" - }, - "dates": { - "english": "November 15 - December 14", - "hindi": "15 नवंबर - 14 दिसंबर" - }, - "image": "8.jpeg", - "description": { - "english": "Vrishchika is represented by the Scorpion. Individuals born under this sign are typically passionate, resourceful, and determined, with strong intuitive abilities.", - "hindi": "वृश्चिक को बिच्छू द्वारा दर्शाया जाता है। इस राशि के जातक आमतौर पर भावुक, साधन संपन्न और दृढ़ निश्चयी होते हैं, जिनमें मजबूत अंतर्ज्ञानी क्षमताएं होती हैं।" - }, - "points": { - "english": ["Corresponding Letters: N,Y", "Ruled by Mars (Mangal) and Ketu - planets of intensity", "Water sign - mysterious and transformative personality", "Excellent researchers with strong willpower", "Can be secretive and vengeful", "Excel in investigation, medicine and occult sciences", "Health concerns: Reproductive system issues", "Compatible with Cancer and Pisces"], - "hindi": ["संबंधित अक्षर: N, Y", "मंगल और केतु द्वारा शासित - तीव्रता के ग्रह", "जल तत्व - रहस्यमय और परिवर्तनशील व्यक्तित्व", "मजबूत इच्छाशक्ति के साथ उत्कृष्ट शोधकर्ता", "गोपनीय और प्रतिशोधी हो सकते हैं", "जाँच, चिकित्सा और गूढ़ विद्याओं में उत्कृष्ट", "स्वास्थ्य संबंधी चिंताएँ: प्रजनन प्रणाली की समस्याएँ", "कर्क और मीन राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Dhanu (Sagittarius)", - "hindi": "धनु (धनु राशि)" - }, - "dates": { - "english": "December 15 - January 13", - "hindi": "15 दिसंबर - 13 जनवरी" - }, - "image": "9.jpeg", - "description": { - "english": "Dhanu is symbolized by the Archer. Those born under this sign are often optimistic, adventurous, and philosophical, with a love for freedom and exploration.", - "hindi": "धनु को धनुर्धर द्वारा दर्शाया जाता है। इस राशि के लोग अक्सर आशावादी, साहसी और दार्शनिक होते हैं, जिन्हें स्वतंत्रता और अन्वेषण का प्रेम होता है।" - }, - "points": { - "english": ["Corresponding Letters: Bh,Dh,Ph,Ddh", "Ruled by Jupiter (Guru) - planet of wisdom", "Fire sign - enthusiastic and freedom-loving personality", "Natural teachers with broad perspective", "Can be tactless and over-optimistic", "Best suited for teaching, travel and philosophy", "Health concerns: Liver and hip issues", "Compatible with Aries and Leo"], - "hindi": ["संबंधित अक्षर: भ, ध, फ, ढ", "गुरु ग्रह द्वारा शासित - ज्ञान का ग्रह", "अग्नि तत्व - उत्साही और स्वतंत्रता-प्रेमी व्यक्तित्व", "व्यापक दृष्टिकोण के साथ प्राकृतिक शिक्षक", "असभ्य और अति-आशावादी हो सकते हैं", "शिक्षण, यात्रा और दर्शन के लिए उपयुक्त", "स्वास्थ्य संबंधी चिंताएँ: यकृत और कूल्हे की समस्याएँ", "मेष और सिंह राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Makara (Capricorn)", - "hindi": "मकर (मकर राशि)" - }, - "dates": { - "english": "January 14 - February 11", - "hindi": "14 जनवरी - 11 फरवरी" - }, - "image": "10.jpeg", - "description": { - "english": "Makara is represented by the Crocodile or Sea-Goat. People of this sign are typically disciplined, ambitious, and practical, with strong organizational skills.", - "hindi": "मकर को मगरमच्छ या समुद्री बकरी द्वारा दर्शाया जाता है। इस राशि के लोग आमतौर पर अनुशासित, महत्वाकांक्षी और व्यावहारिक होते हैं, जिनमें मजबूत संगठनात्मक कौशल होते हैं।" - }, - "points": { - "english": ["Corresponding Letters: Kh.J", "Ruled by Saturn (Shani) - planet of discipline", "Earth sign - responsible and patient personality", "Excellent planners with long-term vision", "Can be pessimistic and workaholic", "Excel in administration, engineering and politics", "Health concerns: Bones and joints pain", "Compatible with Taurus and Virgo"], - "hindi": ["संबंधित अक्षर: ख, ज", "शनि ग्रह द्वारा शासित - अनुशासन का ग्रह", "पृथ्वी तत्व - जिम्मेदार और धैर्यवान व्यक्तित्व", "दीर्घकालिक दृष्टि के साथ उत्कृष्ट योजनाकार", "निराशावादी और कार्यरत हो सकते हैं", "प्रशासन, इंजीनियरिंग और राजनीति में उत्कृष्ट", "स्वास्थ्य संबंधी चिंताएँ: हड्डियों और जोड़ों का दर्द", "वृषभ और कन्या राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Kumbha (Aquarius)", - "hindi": "कुंभ (कुंभ राशि)" - }, - "dates": { - "english": "February 12 - March 12", - "hindi": "12 फरवरी - 12 मार्च" - }, - "image": "11.jpeg", - "description": { - "english": "Kumbha is symbolized by the Water Bearer. Individuals born under this sign are often innovative, humanitarian, and independent thinkers with progressive ideas.", - "hindi": "कुंभ को कलश वाहक द्वारा दर्शाया जाता है। इस राशि के जातक अक्सर नवप्रवर्तक, मानवतावादी और स्वतंत्र विचारक होते हैं जिनके पास प्रगतिशील विचार होते हैं।" - }, - "points": { - "english": ["Corresponding Letters: G, S, Sh, Ss", "Ruled by Saturn (Shani) and Rahu - planets of innovation", "Air sign - unconventional and intellectual personality", "Visionaries with unique perspectives", "Can be emotionally detached and stubborn", "Best suited for technology, science and social work", "Health concerns: Circulatory system issues", "Compatible with Gemini and Libra"], - "hindi": ["संबंधित अक्षर: ग, स, श, ष", "शनि और राहु द्वारा शासित - नवाचार के ग्रह", "वायु तत्व - अपरंपरागत और बौद्धिक व्यक्तित्व", "अनोखे दृष्टिकोण के साथ दूरदर्शी", "भावनात्मक रूप से अलग और जिद्दी हो सकते हैं", "प्रौद्योगिकी, विज्ञान और सामाजिक कार्य के लिए उपयुक्त", "स्वास्थ्य संबंधी चिंताएँ: परिसंचरण तंत्र की समस्याएँ", "मिथुन और तुला राशि के साथ अच्छी संगतता"] - } - }, - { - "name": { - "english": "Meena (Pisces)", - "hindi": "मीन (मीन राशि)" - }, - "dates": { - "english": "March 13 - April 13", - "hindi": "13 मार्च - 13 अप्रैल" - }, - "image": "12.jpeg", - "description": { - "english": "Meena is represented by the Fish. Those born under this sign are typically compassionate, artistic, and intuitive, with a strong connection to the spiritual realm.", - "hindi": "मीन को मछली द्वारा दर्शाया जाता है। इस राशि के लोग आमतौर पर दयालु, कलात्मक और अंतर्ज्ञानी होते हैं, जिनका आध्यात्मिक क्षेत्र से गहरा जुड़ाव होता है।" - }, - "points": { - "english": ["Corresponding Letters: D,Sh,Ss,Ksh", "Ruled by Jupiter (Guru) - planet of spirituality", "Water sign - sensitive and imaginative personality", "Natural healers with psychic abilities", "Can be escapist and overly trusting", "Excel in arts, spirituality and healing professions", "Health concerns: Feet and lymphatic system", "Compatible with Cancer and Scorpio"], - "hindi": ["संबंधित अक्षर: द, श, ष, क्ष", "गुरु ग्रह द्वारा शासित - आध्यात्मिकता का ग्रह", "जल तत्व - संवेदनशील और कल्पनाशील व्यक्तित्व", "मानसिक क्षमताओं के साथ प्राकृतिक चिकित्सक", "पलायनवादी और अति-विश्वासी हो सकते हैं", "कला, आध्यात्मिकता और उपचार व्यवसायों में उत्कृष्ट", "स्वास्थ्य संबंधी चिंताएँ: पैर और लसीका प्रणाली", "कर्क और वृश्चिक राशि के साथ अच्छी संगतता"] - } - } -] diff --git a/public/assets/fonts/Boisu-Stroke.otf b/public/fonts/Boisu-Stroke.otf similarity index 100% rename from public/assets/fonts/Boisu-Stroke.otf rename to public/fonts/Boisu-Stroke.otf diff --git a/public/assets/fonts/BungeeSpice-Regular.ttf b/public/fonts/BungeeSpice-Regular.ttf similarity index 100% rename from public/assets/fonts/BungeeSpice-Regular.ttf rename to public/fonts/BungeeSpice-Regular.ttf diff --git a/public/assets/fonts/Mudra_Mohta-Regular.ttf b/public/fonts/Mudra_Mohta-Regular.ttf similarity index 100% rename from public/assets/fonts/Mudra_Mohta-Regular.ttf rename to public/fonts/Mudra_Mohta-Regular.ttf diff --git a/public/assets/fonts/Mudra_Mohta-Regular.woff b/public/fonts/Mudra_Mohta-Regular.woff similarity index 100% rename from public/assets/fonts/Mudra_Mohta-Regular.woff rename to public/fonts/Mudra_Mohta-Regular.woff diff --git a/public/assets/fonts/Mudra_Mohta-Regular.woff2 b/public/fonts/Mudra_Mohta-Regular.woff2 similarity index 100% rename from public/assets/fonts/Mudra_Mohta-Regular.woff2 rename to public/fonts/Mudra_Mohta-Regular.woff2 diff --git a/public/assets/fonts/Roboto-Bold.ttf b/public/fonts/Roboto-Bold.ttf similarity index 100% rename from public/assets/fonts/Roboto-Bold.ttf rename to public/fonts/Roboto-Bold.ttf diff --git a/public/assets/fonts/atkinson-hyperlegible-regular-102-webfont.woff b/public/fonts/atkinson-hyperlegible-regular-102-webfont.woff similarity index 100% rename from public/assets/fonts/atkinson-hyperlegible-regular-102-webfont.woff rename to public/fonts/atkinson-hyperlegible-regular-102-webfont.woff diff --git a/public/assets/fonts/atkinson-hyperlegible-regular-102-webfont.woff2 b/public/fonts/atkinson-hyperlegible-regular-102-webfont.woff2 similarity index 100% rename from public/assets/fonts/atkinson-hyperlegible-regular-102-webfont.woff2 rename to public/fonts/atkinson-hyperlegible-regular-102-webfont.woff2 diff --git a/public/assets/fonts/open-sans-v15-latin-ext_latin-700.woff b/public/fonts/open-sans-v15-latin-ext_latin-700.woff similarity index 100% rename from public/assets/fonts/open-sans-v15-latin-ext_latin-700.woff rename to public/fonts/open-sans-v15-latin-ext_latin-700.woff diff --git a/public/assets/fonts/sportrop-webfont.woff b/public/fonts/sportrop-webfont.woff similarity index 100% rename from public/assets/fonts/sportrop-webfont.woff rename to public/fonts/sportrop-webfont.woff diff --git a/public/assets/fonts/sportrop-webfont.woff2 b/public/fonts/sportrop-webfont.woff2 similarity index 100% rename from public/assets/fonts/sportrop-webfont.woff2 rename to public/fonts/sportrop-webfont.woff2 diff --git a/public/humans.txt b/public/humans.txt deleted file mode 100644 index 8127e8dd..00000000 --- a/public/humans.txt +++ /dev/null @@ -1,7 +0,0 @@ -This Astro starter was built by Recursive Zero! - -GitHub: https://github.com/recursivezero -Twitter: https://twitter.com/recursivezero -Personal: https://recursivezero.com - -Checkout the https://humanstxt.org/ protocol to see how you should format your humans.txt file! \ No newline at end of file diff --git a/public/icons/arrow.svg b/public/icons/arrow.svg new file mode 100644 index 00000000..af0b5f14 --- /dev/null +++ b/public/icons/arrow.svg @@ -0,0 +1,13 @@ + + Arrow + + \ No newline at end of file diff --git a/public/assets/icons/confetti.svg b/public/icons/confetti.svg similarity index 100% rename from public/assets/icons/confetti.svg rename to public/icons/confetti.svg diff --git a/public/assets/icons/copy-icon.svg b/public/icons/copy-icon.svg similarity index 95% rename from public/assets/icons/copy-icon.svg rename to public/icons/copy-icon.svg index 67c8ebec..dfa84abc 100644 --- a/public/assets/icons/copy-icon.svg +++ b/public/icons/copy-icon.svg @@ -1,4 +1,4 @@ -

${zodiac.name[currentLang]}

-

${zodiac.dates[currentLang]}

- - `; - zodiacsGrid.appendChild(card); - }); - } - function openModal(i) { - const zodiac = zodiacs[i]; - document.getElementById("modalImage").src = `/data/zodiacim/${zodiac.image}`; - document.getElementById("modalTitle").textContent = zodiac.name[currentLang]; - document.getElementById("modalDescription").textContent = zodiac.description[currentLang]; - document.getElementById("modalPoints").innerHTML = zodiac.points[currentLang] - .map((pt) => `
  • ${pt}
  • `) - .join(""); - document.getElementById("zodiacModal").style.display = "block"; - } - function closeModal() { - document.getElementById("zodiacModal").style.display = "none"; - } - document.querySelector(".close")?.addEventListener("click", closeModal); - document.getElementById("zodiacModal")?.addEventListener("click", (e) => { - if (e.target.id === "zodiacModal") closeModal(); - }); - window.addEventListener("languagechange", () => { - currentLang = localStorage.getItem("language") || "english"; - renderCards(); - }); - zodiacsGrid.addEventListener("click", (e) => { - const btn = e.target.closest(".info-btn"); - if (btn) { - const idx = btn.getAttribute("data-index"); - openModal(Number(idx)); - } - }); - renderCards(); - }); - } -}); diff --git a/public/assets/json/cross.json b/public/json/cross.json similarity index 100% rename from public/assets/json/cross.json rename to public/json/cross.json diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest index 65817c06..94634c48 100755 --- a/public/manifest.webmanifest +++ b/public/manifest.webmanifest @@ -1,41 +1,27 @@ { - "background_color": "#1d1f21", - "category": "education", - "description": "A learning pad for ABCD keyboard layout enthusiasts.", - "display": "standalone", + "name": "APP Name", + "id": "App Name", + "short_name": "App Name", + "description": "A virtual front store for textile industry", "icons": [ { - "purpose": "maskable", - "sizes": "128x128", - "src": "/assets/images/parixan/128x128.png", - "type": "image/png" - }, - { - "purpose": "maskable", - "sizes": "144x144", - "src": "/assets/images/parixan/144x144.png", - "type": "image/png" + "src": "/192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" }, { - "purpose": "maskable", + "src": "/512x512.png", "sizes": "512x512", - "src": "/assets/images/parixan/512x512.png", - "type": "image/png" + "type": "image/png", + "purpose": "maskable" } ], - "id": "abcdkbd", + "start_url": "/", + "background_color": "#1d1f21", + "theme_color": "#2bbc8a", + "display": "standalone", "lang": "en", - "name": "parixan", "orientation": "portrait", - "screenshots": [ - { - "label": "parixan", - "sizes": "196x196", - "src": "/assets/icons/parixan/favicon-196x196.png", - "type": "image/svg+xml" - } - ], - "short_name": "ABCDKBD", - "start_url": "/", - "theme_color": "#2bbc8a" + "category": "business" } diff --git a/public/service-worker.js b/public/service-worker.js deleted file mode 100644 index 2af113f0..00000000 --- a/public/service-worker.js +++ /dev/null @@ -1,76 +0,0 @@ -// Simple service worker for PWA installability -const CACHE_NAME = "astro-pwa-cache-v1"; -const ASSETS_TO_CACHE = [ - "/", - "/manifest.webmanifest", - "/assets/images/favicon.ico", - "/assets/images/favicon-16x16.png", - "/assets/images/favicon-32x32.png", - "/assets/images/48x48.png", - "/assets/images/apple-touch-icon.png" - // Add more static assets or generated Astro routes as needed -]; - -// Dynamically cache all files under /assets/ -async function cacheAssets(cache) { - try { - const response = await fetch("/assets/"); - if (response.ok) { - // If you have a directory listing or an API that returns asset files, parse and cache them here - // For static Astro, you may need to manually add asset paths or use a build script to generate the list - } - } catch (e) { - // Ignore if directory listing is not available - } - // Fallback: cache common asset types - const assetTypes = ["fonts", "images", "json", "media"]; - for (const type of assetTypes) { - try { - const req = await fetch(`/assets/${type}/`); - // If you have a directory listing, parse and cache files here - } catch (e) { - // Ignore - } - } -} - -self.addEventListener("install", (event) => { - event.waitUntil( - caches.open(CACHE_NAME).then(async (cache) => { - await cache.addAll(ASSETS_TO_CACHE); - // Optionally call cacheAssets(cache) if you have a way to enumerate all asset files - }) - ); - self.skipWaiting(); -}); - -self.addEventListener("activate", (event) => { - event.waitUntil( - caches.keys().then((cacheNames) => { - return Promise.all(cacheNames.filter((name) => name !== CACHE_NAME).map((name) => caches.delete(name))); - }) - ); - self.clients.claim(); -}); - -self.addEventListener("fetch", (event) => { - if (event.request.method !== "GET") return; - event.respondWith( - caches.match(event.request).then((cachedResponse) => { - if (cachedResponse) { - return cachedResponse; - } - return fetch(event.request) - .then((response) => { - // Optionally cache new requests here - return response; - }) - .catch(() => { - // Optionally return a fallback page for navigation requests - if (event.request.mode === "navigate") { - return caches.match("/"); - } - }); - }) - ); -}); diff --git a/src/assets/fonts/Mudra_Mohta-Regular.ttf b/src/assets/fonts/Mudra_Mohta-Regular.ttf new file mode 100644 index 00000000..2c731f15 Binary files /dev/null and b/src/assets/fonts/Mudra_Mohta-Regular.ttf differ diff --git a/src/assets/fonts/roboto-mono-regular.ttf b/src/assets/fonts/roboto-mono-regular.ttf new file mode 100644 index 00000000..de0f4852 Binary files /dev/null and b/src/assets/fonts/roboto-mono-regular.ttf differ diff --git a/src/assets/icons/ABCD.png b/src/assets/icons/ABCD.png deleted file mode 100644 index e2aabde3..00000000 Binary files a/src/assets/icons/ABCD.png and /dev/null differ diff --git a/src/assets/icons/canvas.svg b/src/assets/icons/canvas-icon.svg similarity index 100% rename from src/assets/icons/canvas.svg rename to src/assets/icons/canvas-icon.svg diff --git a/public/assets/icons/background1.svg b/src/assets/icons/color1.svg similarity index 100% rename from public/assets/icons/background1.svg rename to src/assets/icons/color1.svg diff --git a/public/assets/icons/background2.svg b/src/assets/icons/color2.svg similarity index 100% rename from public/assets/icons/background2.svg rename to src/assets/icons/color2.svg diff --git a/public/assets/icons/background3.svg b/src/assets/icons/color3.svg similarity index 100% rename from public/assets/icons/background3.svg rename to src/assets/icons/color3.svg diff --git a/public/assets/icons/background4.svg b/src/assets/icons/color4.svg similarity index 100% rename from public/assets/icons/background4.svg rename to src/assets/icons/color4.svg diff --git a/src/assets/icons/copy.svg b/src/assets/icons/copy.svg index e26f2161..647513ed 100644 --- a/src/assets/icons/copy.svg +++ b/src/assets/icons/copy.svg @@ -1,6 +1,5 @@ + stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> \ No newline at end of file diff --git a/src/assets/icons/floral.svg b/src/assets/icons/floral.svg deleted file mode 100644 index 4c84eb94..00000000 --- a/src/assets/icons/floral.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/icons/game.svg b/src/assets/icons/game.svg index dcf6ca74..3199d66c 100644 --- a/src/assets/icons/game.svg +++ b/src/assets/icons/game.svg @@ -1,10 +1,17 @@ - - grid - - - - \ No newline at end of file + + Game + + + + + + \ No newline at end of file diff --git a/src/assets/icons/github.svg b/src/assets/icons/github.svg deleted file mode 100644 index a37799a3..00000000 --- a/src/assets/icons/github.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/assets/icons/grid-game-icon.svg b/src/assets/icons/grid-game-icon.svg new file mode 100644 index 00000000..dcf6ca74 --- /dev/null +++ b/src/assets/icons/grid-game-icon.svg @@ -0,0 +1,10 @@ + + grid + + + + \ No newline at end of file diff --git a/src/assets/icons/hint.svg b/src/assets/icons/hint.svg deleted file mode 100644 index fd7ac407..00000000 --- a/src/assets/icons/hint.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - \ No newline at end of file diff --git a/src/assets/icons/keyboard-game-icon.svg b/src/assets/icons/keyboard-game-icon.svg new file mode 100644 index 00000000..e27750de --- /dev/null +++ b/src/assets/icons/keyboard-game-icon.svg @@ -0,0 +1,19 @@ + + keyboard + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/keyboard.svg b/src/assets/icons/keyboard.svg index e27750de..531ef4e3 100644 --- a/src/assets/icons/keyboard.svg +++ b/src/assets/icons/keyboard.svg @@ -1,19 +1,17 @@ - - keyboard - - - - - - - - - \ No newline at end of file + + keyboard + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/quote.svg b/src/assets/icons/quote-icon.svg similarity index 100% rename from src/assets/icons/quote.svg rename to src/assets/icons/quote-icon.svg diff --git a/src/assets/icons/search.svg b/src/assets/icons/search.svg deleted file mode 100644 index ade37022..00000000 --- a/src/assets/icons/search.svg +++ /dev/null @@ -1,8 +0,0 @@ - - search icon - - \ No newline at end of file diff --git a/src/assets/journey script/timeline.js b/src/assets/journey script/timeline.js new file mode 100644 index 00000000..d2d9aa76 --- /dev/null +++ b/src/assets/journey script/timeline.js @@ -0,0 +1,239 @@ +document.addEventListener("DOMContentLoaded", () => { + // DOM Elements + const addBtn = document.getElementById("addEventBtn"); + const formOverlay = document.getElementById("formOverlay"); + const eventForm = document.getElementById("eventForm"); + const cancelBtn = document.getElementById("cancelBtn"); + const emptyState = document.getElementById("emptyState"); + const timelineWrapper = document.getElementById("timelineWrapper"); + const timelineContainer = document.getElementById("timelineContainer"); + const eventDate = document.getElementById("eventDate"); + const eventDesc = document.getElementById("eventDesc"); + const eventTitle = document.getElementById("eventTitle"); + const charCounter = document.getElementById("charCounter"); + const titleCounter = document.getElementById("titleCounter"); + const expandCollapseBtn = document.getElementById("expandCollapseBtn"); + const deleteModal = document.getElementById("deleteModal"); + const cancelDeleteBtn = document.getElementById("cancelDelete"); + const confirmDeleteBtn = document.getElementById("confirmDelete"); + + // Constants + const CHAR_LIMIT = 150; + const TITLE_LIMIT = 20; + const DEFAULT_SPACING = 100; + const EXPANDED_SPACING = 290; + + // State + let events = JSON.parse(localStorage.getItem("timelineEvents") || "[]"); + let editIndex = null; + let deleteIndex = null; + let allExpanded = false; + let currentlyExpanded = new Set(); + + // Initialize + emptyState.style.display = events.length === 0 ? "block" : "none"; + timelineWrapper.style.display = events.length === 0 ? "none" : "block"; + + // Functions + function formatDate(dateString) { + const date = new Date(dateString); + return date.toLocaleDateString("en-US", { + year: "numeric", + month: "long", + day: "numeric" + }); + } + + function sortEvents() { + events.sort((a, b) => new Date(a.date) - new Date(b.date)); + } + + function saveEvents() { + localStorage.setItem("timelineEvents", JSON.stringify(events)); + } + + function adjustSpacing() { + const allEvents = document.querySelectorAll(".timeline-event"); + let currentTop = 0; + + allEvents.forEach((el, idx) => { + el.style.top = `${currentTop}px`; + currentTop += allExpanded || currentlyExpanded.has(idx) ? EXPANDED_SPACING : DEFAULT_SPACING; + }); + + const line = document.querySelector(".timeline-line"); + if (line) line.style.height = `${currentTop}px`; + } + + function toggleAllLabels() { + allExpanded = !allExpanded; + expandCollapseBtn.textContent = allExpanded ? "↕️ Collapse All" : "↕️ Expand All"; + if (allExpanded) currentlyExpanded.clear(); + renderTimeline(); + } + + function renderTimeline() { + timelineContainer.innerHTML = '
    '; + + if (events.length === 0) { + emptyState.style.display = "block"; + timelineWrapper.style.display = "none"; + return; + } + + emptyState.style.display = "none"; + timelineWrapper.style.display = "block"; + sortEvents(); + + events.forEach((event, idx) => { + const eventElement = document.createElement("div"); + eventElement.className = "timeline-event"; + + const isExpanded = allExpanded || currentlyExpanded.has(idx); + + eventElement.innerHTML = ` +
    +
    + ${formatDate(event.date)} + ${event.title || "Untitled"} + ${event.description} +
    + + +
    +
    + `; + + const label = eventElement.querySelector(".timeline-label"); + + label.addEventListener("click", (e) => { + if (e.target.closest(".edit-btn") || e.target.closest(".delete-btn")) return; + if (allExpanded) return; + + if (currentlyExpanded.has(idx)) { + currentlyExpanded.delete(idx); + label.classList.remove("expanded"); + } else { + currentlyExpanded.add(idx); + label.classList.add("expanded"); + } + + adjustSpacing(); + }); + + eventElement.querySelector(".edit-btn").addEventListener("click", () => { + editIndex = idx; + eventTitle.value = event.title || ""; + eventDate.value = event.date; + eventDesc.value = event.description; + titleCounter.textContent = `${event.title?.length || 0} / ${TITLE_LIMIT}`; + charCounter.textContent = `${event.description.length} / ${CHAR_LIMIT}`; + formOverlay.classList.add("active"); + }); + + eventElement.querySelector(".delete-btn").addEventListener("click", () => { + deleteIndex = idx; + deleteModal.classList.add("active"); + }); + + timelineContainer.appendChild(eventElement); + }); + + adjustSpacing(); + } + + function updateCharCounter() { + const text = eventDesc.value; + if (text.length > CHAR_LIMIT) eventDesc.value = text.slice(0, CHAR_LIMIT); + charCounter.textContent = `${eventDesc.value.length} / ${CHAR_LIMIT}`; + } + + function updateTitleCounter() { + const text = eventTitle.value; + if (text.length > TITLE_LIMIT) eventTitle.value = text.slice(0, TITLE_LIMIT); + titleCounter.textContent = `${eventTitle.value.length} / ${TITLE_LIMIT}`; + } + + // Event Listeners + addBtn.addEventListener("click", () => { + editIndex = null; + eventForm.reset(); + eventTitle.value = ""; + eventDesc.value = ""; + eventDate.valueAsDate = new Date(); + titleCounter.textContent = `0 / ${TITLE_LIMIT}`; + charCounter.textContent = `0 / ${CHAR_LIMIT}`; + formOverlay.classList.add("active"); + }); + + cancelBtn.addEventListener("click", () => { + formOverlay.classList.remove("active"); + }); + + formOverlay.addEventListener("click", (e) => { + if (e.target === formOverlay) formOverlay.classList.remove("active"); + }); + + eventDesc.addEventListener("input", updateCharCounter); + eventTitle.addEventListener("input", updateTitleCounter); + + eventForm.addEventListener("submit", (e) => { + e.preventDefault(); + const title = eventTitle.value.trim(); + let date = eventDate.value.trim(); + const description = eventDesc.value.trim(); + + if (!date) { + alert("Please enter a date"); + return; + } + + if (!date.match(/^\d{4}-\d{2}-\d{2}$/)) { + const dateObj = new Date(date); + if (isNaN(dateObj)) { + alert("Please enter a valid date"); + return; + } + date = dateObj.toISOString().split("T")[0]; + } + + if (editIndex !== null) { + events[editIndex] = { title, date, description }; + } else { + events.push({ title, date, description }); + } + + sortEvents(); + saveEvents(); + formOverlay.classList.remove("active"); + renderTimeline(); + }); + + expandCollapseBtn.addEventListener("click", toggleAllLabels); + + cancelDeleteBtn.addEventListener("click", () => { + deleteModal.classList.remove("active"); + deleteIndex = null; + }); + + confirmDeleteBtn.addEventListener("click", () => { + if (deleteIndex !== null) { + events.splice(deleteIndex, 1); + currentlyExpanded.delete(deleteIndex); + saveEvents(); + renderTimeline(); + deleteModal.classList.remove("active"); + deleteIndex = null; + } + }); + + deleteModal.addEventListener("click", (e) => { + if (e.target === deleteModal) { + deleteModal.classList.remove("active"); + deleteIndex = null; + } + }); + + // Initial render + renderTimeline(); +}); diff --git a/src/data/crossword.json b/src/assets/json/cross.json similarity index 100% rename from src/data/crossword.json rename to src/assets/json/cross.json diff --git a/src/data/state.json b/src/assets/json/state.json similarity index 100% rename from src/data/state.json rename to src/assets/json/state.json diff --git a/src/data/vedic.json b/src/assets/json/vedic.json similarity index 98% rename from src/data/vedic.json rename to src/assets/json/vedic.json index 9c9a9d99..6355a786 100644 --- a/src/data/vedic.json +++ b/src/assets/json/vedic.json @@ -1,5 +1,5 @@ { - "-comment": "'seconds' field is only used for unit conversion and is not displayed in Vedic Time Journey.", + "-comment": "'seconds' field is only used for unit conversion and is not displaayed in Vedic Time Journey.", "time_units": [ { "name": "त्रुटि", diff --git a/src/assets/screenshots/alphabets/board.png b/src/assets/screenshots/alphabets/board.png new file mode 100644 index 00000000..3bc3d98f Binary files /dev/null and b/src/assets/screenshots/alphabets/board.png differ diff --git a/src/assets/screenshots/alphabets/index.png b/src/assets/screenshots/alphabets/index.png new file mode 100644 index 00000000..61b0d11c Binary files /dev/null and b/src/assets/screenshots/alphabets/index.png differ diff --git a/src/assets/screenshots/alphabets/playground.png b/src/assets/screenshots/alphabets/playground.png new file mode 100644 index 00000000..20fb2c7f Binary files /dev/null and b/src/assets/screenshots/alphabets/playground.png differ diff --git a/src/assets/screenshots/barahkhadi.png b/src/assets/screenshots/barahkhadi.png new file mode 100644 index 00000000..991f4ad2 Binary files /dev/null and b/src/assets/screenshots/barahkhadi.png differ diff --git a/src/assets/screenshots/clan.png b/src/assets/screenshots/clan.png new file mode 100644 index 00000000..60666fe2 Binary files /dev/null and b/src/assets/screenshots/clan.png differ diff --git a/src/assets/screenshots/english.png b/src/assets/screenshots/english.png new file mode 100644 index 00000000..b6cfa534 Binary files /dev/null and b/src/assets/screenshots/english.png differ diff --git a/src/assets/screenshots/panel.png b/src/assets/screenshots/panel.png new file mode 100644 index 00000000..09bd031d Binary files /dev/null and b/src/assets/screenshots/panel.png differ diff --git a/src/assets/screenshots/reader.png b/src/assets/screenshots/reader.png new file mode 100644 index 00000000..625f89aa Binary files /dev/null and b/src/assets/screenshots/reader.png differ diff --git a/src/assets/screenshots/record.png b/src/assets/screenshots/record.png new file mode 100644 index 00000000..d32c0387 Binary files /dev/null and b/src/assets/screenshots/record.png differ diff --git a/src/assets/screenshots/typing.png b/src/assets/screenshots/typing.png new file mode 100644 index 00000000..304c95c2 Binary files /dev/null and b/src/assets/screenshots/typing.png differ diff --git a/src/assets/screenshots/varnmala.png b/src/assets/screenshots/varnmala.png new file mode 100644 index 00000000..963c1ec8 Binary files /dev/null and b/src/assets/screenshots/varnmala.png differ diff --git a/src/assets/screenshots/varnmala/alphabets.png b/src/assets/screenshots/varnmala/alphabets.png new file mode 100644 index 00000000..963c1ec8 Binary files /dev/null and b/src/assets/screenshots/varnmala/alphabets.png differ diff --git a/src/assets/screenshots/varnmala/english.png b/src/assets/screenshots/varnmala/english.png new file mode 100644 index 00000000..b6cfa534 Binary files /dev/null and b/src/assets/screenshots/varnmala/english.png differ diff --git a/src/assets/screenshots/varnmala/index.png b/src/assets/screenshots/varnmala/index.png new file mode 100644 index 00000000..4713e07a Binary files /dev/null and b/src/assets/screenshots/varnmala/index.png differ diff --git a/src/assets/screenshots/varnmala/reader.png b/src/assets/screenshots/varnmala/reader.png new file mode 100644 index 00000000..625f89aa Binary files /dev/null and b/src/assets/screenshots/varnmala/reader.png differ diff --git a/src/assets/screenshots/varnmala/typing.png b/src/assets/screenshots/varnmala/typing.png new file mode 100644 index 00000000..304c95c2 Binary files /dev/null and b/src/assets/screenshots/varnmala/typing.png differ diff --git a/src/assets/screenshots/vedic.png b/src/assets/screenshots/vedic.png new file mode 100644 index 00000000..52be2033 Binary files /dev/null and b/src/assets/screenshots/vedic.png differ diff --git a/src/assets/styles/404.css b/src/assets/styles/404.css deleted file mode 100644 index 79197588..00000000 --- a/src/assets/styles/404.css +++ /dev/null @@ -1,148 +0,0 @@ -.error-container { - min-height: 100vh; - background: light-dark(#f8fafc, #0f172a); - display: flex; - align-items: center; - justify-content: center; - padding: 2rem; - position: relative; - overflow: hidden; -} - -.error-container::before { - content: ''; - position: absolute; - inset: 0; - background: - radial-gradient(circle at 20% 30%, light-dark(#3b82f6, #ffffff) 1px, transparent 1px), - radial-gradient(circle at 80% 70%, light-dark(#3b82f6, #ffffff) 1px, transparent 1px); - background-size: 100px 100px; - animation: sparkle 3s linear infinite; -} - -@keyframes sparkle { - 0%, - 100% { - opacity: 0.3; - transform: translateY(0); - } - 50% { - opacity: 0.8; - transform: translateY(-10px); - } -} - -.content { - text-align: center; - z-index: 1; - position: relative; -} - -.error-number { - font-size: 8rem; - font-weight: 900; - color: #3b82f6; - text-shadow: 0 0 15px #3b82f6; - animation: pulse 2s ease-in-out infinite; - margin-bottom: 1rem; -} - -@keyframes pulse { - 0%, - 100% { - transform: scale(1); - } - 50% { - transform: scale(1.05); - } -} - -.title { - font-size: 2.5rem; - font-weight: 800; - color: light-dark(#1e293b, #ffffff); - margin: 0 0 1rem 0; - letter-spacing: 0.1em; -} - -.subtitle { - font-size: 1.25rem; - color: light-dark(#64748b, #cbd5e1); - margin-bottom: 1rem; -} - -.tip { - font-size: 1.1rem; - color: light-dark(#475569, #e2e8f0); - margin-bottom: 2rem; -} - -.error-illustration { - width: 200px; - height: auto; - margin: 1rem auto; - display: block; -} - -.buttons { - display: flex; - gap: 1rem; - justify-content: center; - flex-wrap: wrap; -} - -.btn { - padding: 1rem 2rem; - border-radius: 8px; - font-size: 1.1rem; - font-weight: 600; - text-decoration: none; - border: none; - cursor: pointer; - transition: all 0.3s ease; - display: inline-flex; - align-items: center; - gap: 0.5rem; -} - -.primary { - background: #3b82f6; - color: white; - box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3); -} - -.primary:hover { - background: #2563eb; - transform: translateY(-2px); -} - -.secondary { - background: #e0f2fe; - color: #0c4a6e; - border: 2px solid #0ea5e9; -} - -.secondary:hover { - background: #bae6fd; - transform: translateY(-2px); -} - -@media (max-width: 768px) { - .error-number { - font-size: 6rem; - } - .title { - font-size: 2rem; - } - .buttons { - flex-direction: column; - align-items: center; - } - .btn { - width: 180px; - } - .error-illustration { - width: 150px; - } -} - diff --git a/src/assets/styles/cards/main.css b/src/assets/styles/CardIndex.css similarity index 100% rename from src/assets/styles/cards/main.css rename to src/assets/styles/CardIndex.css diff --git a/src/assets/styles/cards/queue.css b/src/assets/styles/CardQueue.css similarity index 100% rename from src/assets/styles/cards/queue.css rename to src/assets/styles/CardQueue.css diff --git a/src/assets/styles/cards/slider.css b/src/assets/styles/CardSlider.css similarity index 100% rename from src/assets/styles/cards/slider.css rename to src/assets/styles/CardSlider.css diff --git a/src/assets/styles/cards/stack.css b/src/assets/styles/CardStack.css similarity index 100% rename from src/assets/styles/cards/stack.css rename to src/assets/styles/CardStack.css diff --git a/src/assets/styles/draw.css b/src/assets/styles/DrawPage.css similarity index 100% rename from src/assets/styles/draw.css rename to src/assets/styles/DrawPage.css diff --git a/src/assets/styles/keyboard.css b/src/assets/styles/Keyboard.css similarity index 99% rename from src/assets/styles/keyboard.css rename to src/assets/styles/Keyboard.css index 8f9f998a..99d549fb 100644 --- a/src/assets/styles/keyboard.css +++ b/src/assets/styles/Keyboard.css @@ -87,4 +87,4 @@ .keyboard-key[data-key="BACKSPACE"] { flex: 2 1 22%; } -} \ No newline at end of file +} diff --git a/src/assets/styles/MobileSplash.css b/src/assets/styles/MobileSplash.css deleted file mode 100644 index d47f8ce3..00000000 --- a/src/assets/styles/MobileSplash.css +++ /dev/null @@ -1,97 +0,0 @@ -.container_splash { - container-type: inline-size; - display: none; -} - -@container (max-width: 768px) { - .container_splash { - display: flex; - position: fixed; - inset: 0; - z-index: 1000; - background-color: light-dark(#f4f4f2, #090808); - justify-content: center; - align-items: center; - padding: 1rem; - transition: background-color 0.3s ease; - } - - .container_splash_card { - background-color: light-dark(#ffffff, #0f172a); - padding: 2rem; - margin-bottom: 0.5vh; - border-radius: 1rem; - box-shadow: light-dark(0 10px 30px rgba(0, 0, 0, 0.1), 0 10px 30px rgba(0, 0, 0, 0.3)); - text-align: center; - max-width: 400px; - width: 100%; - border: light-dark(none, 1px solid #404040); - transition: - background-color 0.3s ease, - box-shadow 0.3s ease; - } - - .container_splash_logo { - width: 60px; - margin-bottom: 1rem; - margin-left: 40%; - filter: light-dark(none, brightness(0.9)); - transition: filter 0.3s ease; - } - - .container_splash_heading { - font-size: 1.25rem; - margin-bottom: 1rem; - color: light-dark(#222222, #e0e0e0); - transition: color 0.3s ease; - } - - .container_splash_text { - font-size: 0.95rem; - color: light-dark(#555555, #b0b0b0); - margin-bottom: 1.5rem; - transition: color 0.3s ease; - } - - .container_splash_buttons { - display: flex; - flex-direction: column; - gap: 0.75rem; - } - - .container_splash_btn { - display: inline-block; - padding: 0.75rem 1rem; - text-decoration: none; - border-radius: 8px; - font-weight: bold; - text-align: center; - font-size: 0.95rem; - transition: all 0.3s ease; - } - - .container_splash_btn_primary { - background-color: light-dark(#0f172a, #3b82f6); - color: light-dark(#ffffff, #f0f0f0); - } - - .container_splash_btn_primary:hover { - background-color: light-dark(#0f172a, #3b82f6); - transform: translateY(-1px); - } - - .container_splash_btn_secondary { - border: 2px solid light-dark(#0f172a, #3b82f6); - color: light-dark(#0f172a, #3b82f6); - background-color: light-dark(#ffffff, transparent); - } - - .container_splash_btn_secondary:hover { - background-color: light-dark(#f8f9f8, rgba(90, 110, 82, 0.1)); - transform: translateY(-1px); - } - - .container_splash_btn:hover { - opacity: 0.9; - } -} diff --git a/src/assets/styles/about.css b/src/assets/styles/about.css index e7e7d4fa..d480699d 100644 --- a/src/assets/styles/about.css +++ b/src/assets/styles/about.css @@ -1,90 +1,11 @@ -:root { - --bg-dark: #0f172a; - --bg-light: #ffffff; - --bg-secondary: #1e293b; - --primary: #3b82f6; - --primary-light: #60a5fa; - --text-main: #f8fafc; - --text-primary: #cbd5e1; - --text-secondary: #212223; - --accent: #f59e0b; -} - -.about-container { - background-color: light-dark(var(--bg-light), var(--bg-dark)); - color: var(--text-main); - min-height: 100vh; - font-family: sans-serif; - display: flex; - flex-direction: column; - gap: 3rem; -} - -.text-highlight { - color: var(--primary); - font-weight: 700; -} - -.section-title { - font-size: 2rem; - text-align: center; - margin-bottom: 1rem; - color: light-dark(var(--text-secondary), var(--text-primary)); - position: relative; -} - -.section-subtitle { - text-align: center; - color: light-dark(var(--bg-dark), var(--text-primary)); - max-width: 700px; - margin: 0 auto 2.5rem; - line-height: 1.6; -} - -.section-title::after { - content: ""; - position: absolute; - bottom: -10px; - left: 50%; - transform: translateX(-50%); - width: 60%; - height: 4px; - background: linear-gradient(90deg, var(--primary), transparent); - border-radius: 2px; -} - -@media (max-width: 992px) { - .section-title { - font-size: 1.8rem; - } - - .section-subtitle { - font-size: 0.95rem; - } -} +.container__about { + display: grid; + justify-content: center; + height: 90vh; + padding: 1rem; -@media (max-width: 768px) { - .section-title { - font-size: 1.6rem; - } - - .section-subtitle { - font-size: 0.9rem; - margin-bottom: 2rem; - } - - .btn { - padding: 0.6rem 1.2rem; - font-size: 0.9rem; + & .moto { + color: #3a8657; + font-size: 2rem; } } - -@media (max-width: 480px) { - .section-title { - font-size: 1.4rem; - } - - .section-subtitle { - font-size: 0.85rem; - } -} \ No newline at end of file diff --git a/src/assets/styles/alphabet.css b/src/assets/styles/alphabet.css index 0466696c..1fb0a856 100644 --- a/src/assets/styles/alphabet.css +++ b/src/assets/styles/alphabet.css @@ -98,3 +98,16 @@ } } } + +.five-column-grid-container { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 1rem; +} + +.tv { + background-color: #f0f0f0; + padding: 1rem; + border: 1px solid #ccc; + border-radius: 0.5rem; +} diff --git a/src/assets/styles/alphabets/[alphabet]/board.css b/src/assets/styles/alphabets/[alphabet]/board.css new file mode 100644 index 00000000..6c385458 --- /dev/null +++ b/src/assets/styles/alphabets/[alphabet]/board.css @@ -0,0 +1,134 @@ +.container__alphabets { + display: flex; + flex-direction: column; + width: 100%; + height: calc(100vh - 4rem); + overflow-y: scroll; + gap: 1rem; + align-items: flex-start; + justify-content: flex-start; + padding: 1rem; + + & .head { + display: flex; + gap: 1rem; + align-items: center; + width: 100%; + justify-content: space-between; + padding: 1rem; + border-radius: 0.5rem; + font-weight: 600; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + + & .back { + margin-bottom: 0 !important; + } + } + + & .flip__all__button { + background-color: var(--background); + border: none; + padding: 0.5rem 1rem; + border-radius: 0.5rem; + font-weight: 200; + margin: 1rem 0; + cursor: pointer; + transition: all 0.3s ease; + align-self: flex-end; + } + + & .flip__all__button:hover { + transform: translateY(-2px); + } + + & .flip__all__button.active { + transform: scale(0.95); + background-color: color-mix(in srgb, var(--primary) 70%, black 30%); + } + + & .container__alphabet { + display: grid; + gap: 2rem; + container-type: inline-size; + container-name: layout; + font-family: "atkinson"; + position: relative; + max-width: 2000px; + margin-inline: auto; + width: 100%; + } + + & .container__alphabet::before { + content: ""; + position: absolute; + inset: 0; + background: radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--primary) 5%, transparent), transparent 70%); + pointer-events: none; + z-index: -1; + } + + & .container__alphabet .list { + display: grid; + gap: 2rem; + grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); + padding: 1rem; + position: relative; + } + + /* Animation for list items */ + & .container__alphabet .list > * { + opacity: 0; + transform: translateY(20px); + animation: slideUp 0.6s ease forwards; + } + + & .container__alphabet .list > *:nth-child(1n) { + animation-delay: 0.1s; + } + + & .container__alphabet .list > *:nth-child(2n) { + animation-delay: 0.2s; + } + + & .container__alphabet .list > *:nth-child(3n) { + animation-delay: 0.3s; + } + + & .container__alphabet .list > *:nth-child(4n) { + animation-delay: 0.4s; + } + + @keyframes slideUp { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } + } + + @container layout (width <=1200px) { + .container__alphabet { + padding: 1.5rem; + } + + .container__alphabet .list { + gap: 1.5rem; + grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); + } + } + + @container layout (width <=768px) { + .container__alphabet { + padding: 1rem; + } + + .container__alphabet .list { + gap: 1rem; + grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); + } + } +} diff --git a/src/assets/styles/playground.css b/src/assets/styles/alphabets/[alphabet]/playground.css similarity index 93% rename from src/assets/styles/playground.css rename to src/assets/styles/alphabets/[alphabet]/playground.css index 704b67bc..c662d3e5 100644 --- a/src/assets/styles/playground.css +++ b/src/assets/styles/alphabets/[alphabet]/playground.css @@ -5,6 +5,10 @@ --steps-desc: 30; } +.tv { + margin-top: 3rem; +} + .title_header { margin-bottom: 4rem; text-align: center; @@ -14,23 +18,10 @@ color: #9ca3af; } -.container__heading { - display: flex; - justify-content: space-between; - align-items: center; - - & .info { - font-size: 1rem; - color: #6b7280; - font-weight: 500; - margin: 0 auto; - } -} - .container__typing { display: grid; grid-template-columns: repeat(2, 1fr); - grid-template-rows: 35% max-content auto; + grid-template-rows: 35% auto auto; grid-template-areas: "letter content__display" "spelling spelling" diff --git a/src/assets/styles/alphabets/index.css b/src/assets/styles/alphabets/index.css new file mode 100644 index 00000000..7f483a01 --- /dev/null +++ b/src/assets/styles/alphabets/index.css @@ -0,0 +1,157 @@ +.container__alphabets { + padding: 2rem clamp(1rem, 5vw, 3rem); + max-width: 80vw; + margin: 0 auto; + min-height: 100vh; + overflow: visible; + + & .alphabets__header { + text-align: center; + margin-bottom: 2rem; + } + + & .alphabets__header h1 { + font-size: clamp(2.5rem, 4vw, 3rem); + font-weight: 800; + padding-bottom: 0.5rem; + background: linear-gradient(135deg, var(--primary), var(--primary-light)); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + } + + & .subtitle { + color: var(--secondary); + font-size: 1.1rem; + max-width: 600px; + margin: 0 auto; + } + + & .list__alphabets { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; + padding: 0 clamp(1rem, 3vw, 2rem); + list-style: none; + margin: 0 auto; + max-width: 1200px; + } + + & .card { + opacity: 0; + animation: fadeInUp 0.4s ease forwards; + } + + & .card__link { + display: block; + text-decoration: none; + background: linear-gradient(145deg, var(--background), color-mix(in srgb, var(--background) 97%, var(--text) 3%)); + border-radius: 1rem; + border: 1px solid var(--border); + padding: 2rem; + transition: all 0.3s ease; + height: 100%; + overflow: hidden; + } + + & .card__link:hover { + transform: translateY(-5px); + box-shadow: + 0 20px 30px rgba(0, 0, 0, 0.1), + 0 0 0 1px rgba(var(--primary-rgb, 44, 62, 80), 0.1); + } + + & .card__content { + position: relative; + } + + & .category__title { + font-size: 1.5rem; + font-weight: 700; + color: var(--text); + margin: 0 0 1rem 0; + transition: color 0.3s ease; + } + + & .category__description { + color: var(--secondary); + font-size: 0.95rem; + line-height: 1.6; + margin: 0; + } + + & .card__arrow { + position: absolute; + top: 0; + right: 0; + font-size: 1.5rem; + color: var(--primary); + opacity: 0; + transition: all 0.3s ease; + transform: translateX(-10px); + } + + & .card__link:hover .category__title { + background: linear-gradient(135deg, var(--primary), var(--primary-light)); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + } + + & .card__link:hover .card__arrow { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes fadeInUp { + to { + opacity: 1; + transform: translateY(0); + } +} + +@media (max-width: 1024px) { + .container__alphabets { + & .list__alphabets { + grid-template-columns: repeat(2, 1fr); + } + } +} + +@media (max-width: 768px) { + .container__alphabets { + padding: 1rem clamp(0.75rem, 3vw, 1.5rem); + + & .list__alphabets { + padding: 0 clamp(0.5rem, 2vw, 1rem); + grid-template-columns: 1fr; + gap: 1rem; + } + + & .card__link { + padding: 1.5rem; + } + + & .card__actions { + flex-direction: column; + gap: 0.5rem; + } + + & .btn { + width: 100%; + font-size: 1.1rem; + padding: 0.75rem 1rem; + } + } +} + +@media (max-width: 480px) { + .container__alphabets { + padding: 0.75rem clamp(0.5rem, 2vw, 1rem); + + & .list__alphabets { + padding: 0 0.5rem; + } + } +} diff --git a/src/assets/styles/board.css b/src/assets/styles/board.css deleted file mode 100644 index fd7a91a7..00000000 --- a/src/assets/styles/board.css +++ /dev/null @@ -1,77 +0,0 @@ -.container__board { - max-width: 80vw; - margin: 0 auto; - min-height: 100vh; - overflow: visible; - - & .board__header { - text-align: center; - margin: 1rem; - - & .title { - font-size: clamp(2.5rem, 4vw, 3rem); - font-weight: 800; - padding-bottom: 0.5rem; - background: linear-gradient(135deg, var(--primary), var(--primary-light)); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - margin: 0; - } - - & .subtitle { - color: var(--secondary); - font-size: 1.1rem; - max-width: 600px; - margin: 0 auto; - } - } - - & .board__list { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1.5rem; - padding: 0 clamp(1rem, 3vw, 2rem); - list-style: none; - margin: 0 auto; - max-width: 1200px; - - & .board__card { - opacity: 0; - animation: fadeInUp 0.4s ease forwards; - } - } -} - -@keyframes fadeInUp { - to { - opacity: 1; - transform: translateY(0); - } -} - -@media (max-width: 1024px) { - .container__board { - & .board__list { - grid-template-columns: repeat(2, 1fr); - } - } -} - -@media (max-width: 768px) { - .container__board { - & .board__list { - padding: 0 clamp(0.5rem, 2vw, 1rem); - grid-template-columns: 1fr; - gap: 1rem; - } - } -} - -@media (max-width: 480px) { - .container__board { - & .board__list { - padding: 0 0.5rem; - } - } -} diff --git a/src/assets/styles/capital.css b/src/assets/styles/capital.css index d620cce8..31403e06 100644 --- a/src/assets/styles/capital.css +++ b/src/assets/styles/capital.css @@ -23,12 +23,13 @@ } /* Base Styles */ -.container__capital { +.geographical-mosaic { width: 100%; - max-width: 90vw; + max-width: 1400px; margin: 0 auto; padding: 1rem; box-sizing: border-box; + font-family: "Courier New", Courier, monospace; letter-spacing: 1px; color: light-dark(#ffffff, #000000); min-height: 100vh; @@ -37,9 +38,9 @@ /* Header Styles */ .head { - display: flex; + display: relative; padding-top: 10px; - height: max-content; + height: 50px; font-size: 25px; color: light-dark(#667eea, #ffffff); background: light-dark(var(--header-gradient-light), var(--header-gradient-dark)); @@ -49,6 +50,7 @@ justify-content: center; font-weight: bold; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); position: relative; overflow: hidden; } @@ -60,7 +62,7 @@ margin-bottom: 1.5rem; } -.container__search { +.search-container { display: flex; align-items: center; width: 100%; @@ -73,38 +75,58 @@ margin-top: 10px; position: relative; overflow: hidden; +} - &::before { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 1px; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent); - } +.search-container::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 1px; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent); +} - .search__input { - flex: 1; - border: none; - outline: none; - font-size: 1.5rem; - color: light-dark(#000000, #ffffff); - background: transparent; - padding: 0.4rem 0.5rem; - font-family: inherit; - - &:focus { - box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.3); - } - } +.search-container #searchBar { + flex: 1; + border: none; + outline: none; + font-size: 1rem; + color: light-dark(#000000, #ffffff); + background: transparent; + padding: 0.4rem 0.5rem; + font-family: inherit; + font-weight: bold; +} - .search-icon { - font-size: 1.2rem; - margin-right: 0.5rem; - margin-top: 6px; - color: light-dark(#667eea, #06ffa5); - } +.search-icon { + font-size: 1.2rem; + margin-right: 0.5rem; + color: light-dark(#667eea, #06ffa5); +} + +.clear-button { + font-size: 1.5rem; + padding: 0 0.5rem; + background: none; + border: none; + color: light-dark(#667eea, #06ffa5); + cursor: pointer; + transition: var(--transition-smooth); + margin-left: 0.25rem; + user-select: none; +} + +.clear-button:hover { + color: #ff3e6d; + transform: scale(1.1); +} + +/* Hide default search cancel button */ +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; + appearance: none; + display: none; } /* Location Sections */ @@ -172,22 +194,22 @@ display: flex; flex-direction: column; position: relative; +} - &::before { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 0; - transition: var(--transition-smooth); - pointer-events: none; - } +.location-card::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0; + transition: var(--transition-smooth); + pointer-events: none; +} - &:hover::before { - opacity: 1; - } +.location-card:hover::before { + opacity: 1; } /* Card Color Variations */ @@ -210,37 +232,30 @@ --card-color: var(--card-color-1); --card-color-rgb: 255, 62, 109; } - .color-card-color-2 { --card-color: var(--card-color-2); --card-color-rgb: 0, 245, 212; } - .color-card-color-3 { --card-color: var(--card-color-3); --card-color-rgb: 76, 201, 240; } - .color-card-color-4 { --card-color: var(--card-color-4); --card-color-rgb: 114, 9, 183; } - .color-card-color-5 { --card-color: var(--card-color-5); --card-color-rgb: 247, 37, 133; } - .color-card-color-6 { --card-color: var(--card-color-6); --card-color-rgb: 67, 97, 238; } - .color-card-color-7 { --card-color: var(--card-color-7); --card-color-rgb: 247, 127, 0; } - .color-card-color-8 { --card-color: var(--card-color-8); --card-color-rgb: 6, 255, 165; @@ -255,12 +270,11 @@ flex: 1; position: relative; z-index: 1; - text-align: left; } .location-card summary { font-weight: bold; - font-size: 1.5rem; + font-size: 1.3rem; cursor: pointer; list-style: none; text-transform: capitalize; @@ -272,30 +286,30 @@ position: relative; padding-left: 1.5rem; color: light-dark(#e80883, #ffffff); +} - &::before { - content: "▶"; - position: absolute; - left: 0; - top: 0; - font-size: 1rem; - transition: var(--transition-smooth); - background: linear-gradient(45deg, light-dark(#20c997, #4cc9f0)); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } +.location-card summary::before { + content: "▶"; + position: absolute; + left: 0; + top: 0; + font-size: 1rem; + transition: var(--transition-smooth); + background: linear-gradient(45deg, light-dark(#20c997, #4cc9f0)); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} - details[open] &::before { - content: "▼"; - font-size: 1rem; - color: light-dark(#ff3e6d, #06ffa5); - transform: scale(1.2); - background: linear-gradient(45deg, light-dark(#ff3e6d, #06ffa5)); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } +.location-card details[open] summary::before { + content: "▼"; + font-size: 1rem; + color: light-dark(#ff3e6d, #06ffa5); + transform: scale(1.2); + background: linear-gradient(45deg, light-dark(#ff3e6d, #06ffa5)); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; } .location-card p { @@ -303,7 +317,7 @@ font-family: Tahoma, sans-serif; font-style: italic; font-weight: 700; - font-size: 1.8rem; + font-size: 1rem; color: light-dark(#333333, #57a4df); line-height: 1.4; word-wrap: break-word; @@ -345,12 +359,25 @@ box-shadow: none !important; } +.search-container #searchBar:focus { + box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.3); +} + +.location-card summary:focus { + outline: 2px solid var(--border-primary); + outline-offset: 2px; +} + +.clear-button:focus { + outline: 2px solid var(--border-primary); + outline-offset: 2px; +} + /* Animations */ @keyframes shimmer { 0% { left: -100%; } - 100% { left: 100%; } @@ -360,12 +387,46 @@ 0% { left: -100%; } - 100% { left: 100%; } } +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.location-card { + animation: fadeInUp 0.6s ease forwards; +} + +/* Staggered animation delay for cards */ +.location-card:nth-child(1) { + animation-delay: 0.1s; +} +.location-card:nth-child(2) { + animation-delay: 0.2s; +} +.location-card:nth-child(3) { + animation-delay: 0.3s; +} +.location-card:nth-child(4) { + animation-delay: 0.4s; +} +.location-card:nth-child(5) { + animation-delay: 0.5s; +} +.location-card:nth-child(6) { + animation-delay: 0.6s; +} + /* Responsive Design */ @media (max-width: 768px) { .location-grid { @@ -414,3 +475,8 @@ max-width: 100%; } } + +/* Smooth scrolling */ +html { + scroll-behavior: smooth; +} diff --git a/src/assets/styles/clan-card.css b/src/assets/styles/card.css similarity index 99% rename from src/assets/styles/clan-card.css rename to src/assets/styles/card.css index 4c136a41..034cbf24 100644 --- a/src/assets/styles/clan-card.css +++ b/src/assets/styles/card.css @@ -201,7 +201,6 @@ border-radius: calc(var(--border-radius) - 0.1rem); padding: 0.5rem; transition: var(--transition); - list-style-type: none; } .surname-card:hover { @@ -215,7 +214,6 @@ align-items: center; gap: 0.3rem; } - .copy-button { position: relative; } diff --git a/src/assets/styles/custom-fonts.css b/src/assets/styles/custom-fonts.css index 4a3dabf5..184647c3 100644 --- a/src/assets/styles/custom-fonts.css +++ b/src/assets/styles/custom-fonts.css @@ -3,8 +3,8 @@ @font-face { font-family: "sportrop"; src: - url("/assets/fonts/sportrop-webfont.woff2") format("woff2"), - url("/assets/fonts/sportrop-webfont.woff") format("woff"); + url("/fonts/sportrop-webfont.woff2") format("woff2"), + url("/fonts/sportrop-webfont.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; @@ -13,8 +13,8 @@ @font-face { font-family: "atkinson"; src: - url("/assets/fonts/atkinson-hyperlegible-regular-102-webfont.woff2") format("woff2"), - url("/assets/fonts/atkinson-hyperlegible-regular-102-webfont.woff") format("woff"); + url("/fonts/atkinson-hyperlegible-regular-102-webfont.woff2") format("woff2"), + url("/fonts/atkinson-hyperlegible-regular-102-webfont.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; @@ -22,7 +22,7 @@ @font-face { font-family: "Mudra"; - src: url("/assets/fonts/Mudra_Mohta-Regular.ttf") format("truetype"); + src: url("/fonts/Mudra_Mohta-Regular.ttf") format("truetype"); font-weight: normal; font-style: normal; } @@ -30,7 +30,7 @@ @font-face { font-family: "boisuStroke"; - src: url("/assets/fonts/Boisu-Stroke.otf") format("otf"); + src: url("/fonts/Boisu-Stroke.otf") format("otf"); font-weight: normal; font-style: normal; font-display: swap; @@ -38,7 +38,7 @@ @font-face { font-family: "Roboto"; - src: url("/assets/fonts/Roboto-Bold.ttf") format("ttf"); + src: url("/fonts/Roboto-Bold.ttf") format("ttf"); font-weight: normal; font-style: normal; font-display: swap; diff --git a/src/assets/styles/globals.css b/src/assets/styles/globals.css index 48706a5b..144abb8f 100644 --- a/src/assets/styles/globals.css +++ b/src/assets/styles/globals.css @@ -1,5 +1,9 @@ @import "./custom-fonts.css"; +@tailwind base; +@tailwind components; +@tailwind utilities; + @layer base { :root { --primary: #3b82f6; @@ -26,8 +30,8 @@ } [data-theme="light"] { - --primary: #ba1db8; - --primary-light: #c975c6; + --primary: #2563eb; + --primary-light: #3b82f6; --secondary: #64748b; --background: #ffffff; --text: #0f172a; @@ -123,7 +127,6 @@ &.content { grid-area: content; - height: 100vh; } } @@ -144,7 +147,6 @@ & .content { grid-area: content; grid-column: span 2; - text-align: center; } } } @@ -171,16 +173,14 @@ min-height: 100vh; } + @media (max-width: 768px) { + .content { + height: 10vh; + } + } + .layout { height: fit-content; max-height: 100dvh; } } - -.txt__center { - text-align: center; -} - -.m-0 { - margin: 0; -} diff --git a/src/assets/styles/glossary/colour.css b/src/assets/styles/glossary/colour.css new file mode 100644 index 00000000..ccaa4a40 --- /dev/null +++ b/src/assets/styles/glossary/colour.css @@ -0,0 +1,165 @@ +#back-btn { + position: fixed; /* Changed to fixed */ + top: 10px; + left: 10px; + background-color: #f0f0f0; + border: 1px solid #ccc; + padding: 8px 16px; + border-radius: 5px; + cursor: pointer; + z-index: 1000; /* Added z-index */ +} +.colours-grid .flip__card { + width: 100%; + height: 100%; + perspective: 1000px; + min-height: 220px; /* Adjusted min-height */ +} + +.colours-grid .flip__card .card-content-front { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100%; + text-align: center; + padding: 1rem; +} + +.colours-grid .flip__card .text { + /* For the Colour Name on the front */ + font-size: 3.5rem; + font-weight: 700; + color: var(--text); + margin: 0; + transition: color 0.3s ease; +} + +.colours-grid .flip__card .card { + background: linear-gradient(145deg, var(--background), color-mix(in srgb, var(--background) 97%, var(--text) 3%)); + border-radius: 1.25rem; + box-shadow: + 0 4px 15px rgba(0, 0, 0, 0.05), + 0 1px 2px rgba(0, 0, 0, 0.1); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + flex-direction: column; + position: relative; + overflow: hidden; + border: 1px solid var(--border); + backdrop-filter: blur(10px); + width: 100%; + height: 100%; +} + +.colours-grid .flip__card .card:hover .card__glow { + opacity: 1; +} + +.colours-grid .flip__card .card.card__front:hover .text { + background: none; + -webkit-background-clip: initial; + background-clip: initial; + color: var(--primary); +} + +.colours-grid .flip__card .flip__card__inner { + width: 100%; + height: 100%; + text-align: left; + transition: transform 0.8s; + transform-style: preserve-3d; +} + +.colours-grid .flip__card .card__front, +.colours-grid .flip__card .card__back { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + top: 0; + left: 0; + display: flex; + justify-content: center; + align-items: center; +} + +.colours-grid .flip__card .card__back { + padding: 0; + transform: rotateY(180deg); + /* The background is now fully set by the inline style in the template. + Ensure no other background properties here conflict. */ +} + +.colours-grid .flip__card.flipped .flip__card__inner { + transform: rotateY(180deg); +} + +.colours-grid .flip__card .flip__button { + position: absolute; + top: 0.75rem; + right: 0.75rem; + z-index: 10; +} + +.colours-grid .flip__card .flip__button__text { + font-size: 0.875rem; + color: var(--secondary); + padding: 0.35rem 0.75rem; + background: color-mix(in srgb, var(--background) 97%, var(--text) 3%); + border-radius: 2rem; + cursor: pointer; + transition: all 0.3s ease; + border: 1px solid var(--border); + text-align: left; +} + +.colours-grid .flip__card .flip__button__text:hover { + background: var(--primary); + color: var(--text-on-primary, #fff); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.is-hidden { + display: none !important; +} + +.colours-grid .flip__card .card__glow { + position: absolute; + inset: 0; + background: radial-gradient( + circle at var(--mouse-x, 50%) var(--mouse-y, 50%), + color-mix(in srgb, var(--primary) 10%, transparent) 0%, + transparent 60% + ); + opacity: 0; + transition: opacity 0.3s ease; + pointer-events: none; +} + +@media (max-width: 768px) { + .colours-grid .flip__card .text { + font-size: 1.25rem; + } +} + +.colours-grid.grid-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1rem; + padding: 1rem; +} + +/* Added CSS for the corner triangle */ +.corner-triangle { + position: absolute; + top: 0; + left: 0; + width: 0; + height: 0; + border-top: 70px solid var(--triangle-color); /* Increased size */ + border-right: 70px solid transparent; /* Increased size */ + z-index: 1; +} diff --git a/src/assets/styles/glossary/flags.css b/src/assets/styles/glossary/flags.css new file mode 100644 index 00000000..f5ea35f3 --- /dev/null +++ b/src/assets/styles/glossary/flags.css @@ -0,0 +1,228 @@ +/* Card structure and flip animation styles (scoped to .flags-grid) */ +.flags-grid .flip__card { + width: 100%; + height: 100%; + perspective: 1000px; + min-height: 250px; +} + +.flags-grid .flip__card .image { + object-fit: cover; + width: 100%; + height: 100%; + background-color: var(--border); +} + +/* Specific style for flag images on the back */ +.flags-grid .flip__card .flag-image { + object-fit: contain !important; + background-color: transparent !important; + border: 1px solid #eee; + max-width: 100%; + max-height: 100%; +} + +.flags-grid .flip__card .character { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + font-size: 4rem; + margin: 0; + line-height: 1; + color: var(--primary) !important; + background: none !important; + -webkit-background-clip: initial !important; + background-clip: initial !important; + text-shadow: none !important; + text-align: center; +} + +.flags-grid .flip__card .flipped__text { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + font-size: 1.5rem; + font-weight: 800; + margin: 0; + line-height: 1; + color: var(--text); + text-shadow: var(--character-shadow); + text-align: center; + padding: 1rem; +} + +.flags-grid .flip__card .card { + background: linear-gradient(145deg, var(--background), color-mix(in srgb, var(--background) 97%, var(--text) 3%)); + border-radius: 1.25rem; + padding: 1.75rem; + box-shadow: + 0 4px 15px rgba(0, 0, 0, 0.05), + 0 1px 2px rgba(0, 0, 0, 0.1); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + flex-direction: column; + gap: 1.25rem; + position: relative; + overflow: hidden; + border: 1px solid var(--border); + backdrop-filter: blur(10px); + width: 100%; + height: 100%; +} + +.flags-grid .flip__card .card:hover .card__glow { + opacity: 1; +} + +.flags-grid .flip__card .card:hover .text { + background: linear-gradient(135deg, var(--primary), var(--primary-light)); + -webkit-background-clip: text; + background-clip: text; + color: transparent; +} + +.flags-grid .flip__card .flip__card__inner { + width: 100%; + height: 100%; + text-align: left; + transition: transform 0.8s; + transform-style: preserve-3d; +} + +.flags-grid .flip__card .card__front, +.flags-grid .flip__card .card__back { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + top: 0; + left: 0; +} + +.flags-grid .flip__card .card__back { + padding: 0.5rem; + transform: rotateY(180deg); + display: flex; + justify-content: center; + align-items: center; + background-color: #f0f0f0; +} + +.flags-grid .flip__card.flipped .flip__card__inner { + transform: rotateY(180deg); +} + +.flags-grid .flip__card .letter__header { + display: flex; + justify-content: flex-start; + align-items: flex-start; + position: relative; + min-height: 50px; +} + +.flags-grid .flip__card .flip__button { + position: absolute; + top: 0.75rem; + right: 0.75rem; + z-index: 10; +} + +.flags-grid .flip__card .flip__button__text { + font-size: 0.875rem; + color: var(--secondary); + padding: 0.35rem 0.75rem; + background: color-mix(in srgb, var(--background) 97%, var(--text) 3%); + border-radius: 2rem; + cursor: pointer; + transition: all 0.3s ease; + border: 1px solid var(--border); + text-align: left; +} + +.flags-grid .flip__card .flip__button__text:hover { + background: var(--primary); + color: var(--text-on-primary, #fff); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.flags-grid .flip__card .letter__content { + display: flex; + flex-direction: column; + gap: 0.25rem; + z-index: 1; + text-align: left; +} + +.flags-grid .flip__card .text { + font-size: 1.25rem; + font-weight: 700; + color: var(--text); + margin: 0; + transition: color 0.3s ease; + text-align: left; +} + +.flags-grid .flip__card .description { + font-size: 0.8rem; + color: var(--secondary); + margin: 0; + line-height: 1.4; + opacity: 0.9; + text-align: left; +} + +.flags-grid .flip__card .card__glow { + position: absolute; + inset: 0; + background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), + color-mix(in srgb, var(--primary) 10%, transparent) 0%, + transparent 60%); + opacity: 0; + transition: opacity 0.3s ease; + pointer-events: none; +} + +@media (max-width: 768px) { + .flags-grid .flip__card .character { + font-size: 3rem; + } + + .flags-grid .flip__card .text { + font-size: 1.1rem; + } + + .flags-grid .flip__card .description { + font-size: 0.75rem; + } + + .flags-grid .flip__card .flipped__text { + font-size: 1.2rem; + } +} + +/* Grid layout for the flags page */ +.flags-grid.grid-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 1.5rem; + padding: 1rem; +} + +.is-hidden { + display: none !important; +} + +.flags-grid .flip__card .flip__button__text.rotate-symbol-label { + font-size: 1.1em; + line-height: 1; +} + + +.flags-grid .card__back .character { + font-family: "Noto Color Emoji", sans-serif; + font-size: clamp(6rem, 15vw, 8rem); +} \ No newline at end of file diff --git a/src/assets/styles/card-layout.css b/src/assets/styles/glossary/index.css similarity index 93% rename from src/assets/styles/card-layout.css rename to src/assets/styles/glossary/index.css index 9789fd24..cfd2237b 100644 --- a/src/assets/styles/card-layout.css +++ b/src/assets/styles/glossary/index.css @@ -45,7 +45,6 @@ .card__actions { display: flex; margin-top: auto; - gap: 4px; } @media (max-width: 768px) { @@ -72,12 +71,7 @@ background: var(--primary-light); } -.card_icon { +.icon { font-size: 1.2em; margin-right: 0.5em; } - -.btn-board { - background: var(--primary); - color: var(--background); -} diff --git a/src/assets/styles/glossary/waqt.css b/src/assets/styles/glossary/waqt.css new file mode 100644 index 00000000..10eeb030 --- /dev/null +++ b/src/assets/styles/glossary/waqt.css @@ -0,0 +1,222 @@ +.back { + left: 0; + top: 1rem; + margin-bottom: 5px; + display: flex; + align-items: center; + gap: 0.1rem; + text-decoration: none; + color: light-dark(black, white); + font-weight: 500; + font-size: 1.1rem; + transition: color 0.3s ease; +} + +.back svg { + width: 24px; + height: 24px; + stroke: currentColor; +} +.waqt-grid .flip__card { + width: 100%; + height: 100%; + perspective: 1000px; + min-height: 250px; +} + +.waqt-grid .flip__card .card-content-front, +.waqt-grid .flip__card .card-content-back { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100%; + text-align: center; + padding: 1.5rem; + box-sizing: border-box; +} + +.waqt-grid .flip__card .waqt-icon { + font-size: 3rem; + margin-bottom: 0.75rem; +} + +.waqt-grid .flip__card .text { + font-size: 1.75rem; + font-weight: 600; + color: var(--text); + margin: 0; + transition: color 0.3s ease; +} + +.waqt-grid .flip__card .card-content-back .hindi-term { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); + margin-bottom: 0.5rem; +} + +.waqt-grid .flip__card .card-content-back .description { + font-size: 0.95rem; + color: var(--text); + line-height: 1.6; +} + +.waqt-grid .flip__card .card { + background: linear-gradient(145deg, var(--background), color-mix(in srgb, var(--background) 97%, var(--text) 3%)); + border-radius: 1.25rem; + box-shadow: + 0 4px 15px rgba(0, 0, 0, 0.05), + 0 1px 2px rgba(0, 0, 0, 0.1); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + flex-direction: column; + position: relative; + overflow: hidden; + border: 1px solid var(--border); + backdrop-filter: blur(10px); + width: 100%; + height: 100%; +} + +.waqt-grid .flip__card .card:hover .card__glow { + opacity: 1; +} + +.waqt-grid .flip__card .card.card__front:hover .text { + color: var(--primary); +} +.waqt-grid .flip__card .card.card__front:hover .waqt-icon { + transform: scale(1.1); + transition: transform 0.3s ease; +} + +.waqt-grid .flip__card .flip__card__inner { + width: 100%; + height: 100%; + text-align: left; + transition: transform 0.8s; + transform-style: preserve-3d; +} + +.waqt-grid .flip__card .card__front, +.waqt-grid .flip__card .card__back { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + top: 0; + left: 0; + display: flex; + justify-content: center; + align-items: center; +} + +.waqt-grid .flip__card .card__back { + transform: rotateY(180deg); +} + +.waqt-grid .flip__card.flipped .flip__card__inner { + transform: rotateY(180deg); +} + +.waqt-grid .flip__card .flip__button { + position: absolute; + top: 0.75rem; + right: 0.75rem; + z-index: 10; +} + +.waqt-grid .flip__card .flip__button__text { + font-size: 0.875rem; + color: var(--secondary); + padding: 0.35rem 0.75rem; + background: color-mix(in srgb, var(--background) 97%, var(--text) 3%); + border-radius: 2rem; + cursor: pointer; + transition: all 0.3s ease; + border: 1px solid var(--border); + text-align: left; +} + +.waqt-grid .flip__card .flip__button__text:hover { + background: var(--primary); + color: var(--text-on-primary, #fff); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.is-hidden { + display: none !important; +} + +.waqt-grid .flip__card .card__glow { + position: absolute; + inset: 0; + background: radial-gradient( + circle at var(--mouse-x, 50%) var(--mouse-y, 50%), + color-mix(in srgb, var(--primary) 10%, transparent) 0%, + transparent 60% + ); + opacity: 0; + transition: opacity 0.3s ease; + pointer-events: none; +} + +@media (max-width: 768px) { + .waqt-grid .flip__card .text { + font-size: 1.25rem; + } + .waqt-grid .flip__card .waqt-icon { + font-size: 2.5rem; + } + .waqt-grid .flip__card .card-content-back .hindi-term { + font-size: 1.2rem; + } + .waqt-grid .flip__card .card-content-back .description { + font-size: 0.85rem; + } + .waqt-grid .flip__card { + min-height: 220px; + } +} + +.waqt-grid.grid-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1.5rem; /* Increased gap slightly */ + padding: 1rem; +} + +.page-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + margin-bottom: 2rem; + padding: 0 1rem; +} + +.page-header .page-main-title { + margin-bottom: 0; + text-align: center; + flex-grow: 1; +} +.flip__all__button { + padding: 0.5rem 1rem; + border: 1px solid var(--primary); + background-color: var(--background); + color: var(--primary); + border-radius: 0.5rem; + cursor: pointer; + transition: all 0.2s ease-in-out; + font-weight: 500; +} + +.flip__all__button:hover, +.flip__all__button.active { + background-color: var(--primary); + color: var(--text-on-primary, #fff); + box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 40%, transparent); +} diff --git a/src/assets/styles/indic.css b/src/assets/styles/indic.css index 297bf433..b25d7ab3 100644 --- a/src/assets/styles/indic.css +++ b/src/assets/styles/indic.css @@ -7,7 +7,6 @@ --text-primary: #f8fafc; --text-secondary: #94a3b8; } - .main-header { position: sticky; top: 0; @@ -18,13 +17,10 @@ padding-bottom: 1rem; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); } - .main-header.scrolled-header { padding-top: 2rem; - padding-bottom: 0.5rem; - /* Reduced padding-top */ + padding-bottom: 0.5rem; /* Reduced padding-top */ } - .language-letters-container { max-width: 1400px; margin: 1px auto; @@ -79,11 +75,9 @@ &.active { background-image: linear-gradient(135deg, #72edf2 10%, #5151e5 100%); -webkit-background-clip: text; - background-clip: text; -webkit-text-fill-color: transparent; } } - & select { width: 100%; padding: 0.7rem 1.39rem 0.7rem 0.89rem; @@ -105,7 +99,6 @@ background-repeat: no-repeat; background-position: right 1rem center; background-size: 1.5em; - &:hover { border-color: #7dd3fc; transform: translateY(-1px); @@ -113,13 +106,11 @@ 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } - &:focus { outline: none; border-color: #2dd4bf; box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.3); } - & option { padding: 0.5rem 1.25rem 0.5rem 0.75rem; font-variant: small-caps; @@ -128,7 +119,6 @@ background: light-dark(white, #1e293b); color: light-dark (black, white); border-bottom: 1px solid rgba(125, 211, 252, 0.1); - &:checked { background: rgba(29, 78, 216, 0.5); font-weight: 600; @@ -262,11 +252,11 @@ } } - & .vowel { + &-vowel { border-top: 2px solid var(--royal-blue); } - & .consonant { + &-consonant { border-top: 2px solid var(--teal-accent); } @@ -289,7 +279,6 @@ background: linear-gradient(-45deg, #ffa63d, #ff3d77, #338aff, #3cf0c5); background-size: 600%; animation: anime 16s linear infinite; - background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } @@ -298,7 +287,6 @@ font-size: 50px; font-weight: 500; background-image: radial-gradient(circle farthest-corner at 10% 20%, var(--sky-blue) 1%, var(--teal-accent) 90%); - background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; opacity: 0.9; @@ -321,21 +309,17 @@ } } } - @keyframes anime { 0% { background-position: 0% 50%; } - 50% { background-position: 100% 50%; } - 100% { background-position: 0% 50%; } } - /* English text styling */ .english-text { font-family: sans-serif; @@ -359,10 +343,8 @@ .language-letters-grid { grid-template-columns: repeat(3, 1fr); } - .toggle-container { gap: 1rem; - & select { width: 100%; font-size: 1rem; @@ -375,12 +357,10 @@ .main-header { position: relative; } - .toggle-container { flex-direction: column; gap: 1rem; align-items: center; - & .dropdown-wrapper { width: 80%; min-width: auto; @@ -412,7 +392,6 @@ justify-content: center; align-items: center; } - .outer { background: conic-gradient(from var(--gradient-angle), #1ba8e9, #1619b9, #800f86, #ff057c, #800f86, #1619b9, #1ba8e9); animation: rotation 20s linear infinite; @@ -426,7 +405,6 @@ justify-content: center; align-items: center; } - .outer::after { content: ""; position: absolute; @@ -436,7 +414,6 @@ filter: blur(4rem); z-index: -1; } - .middle { background: light-dark(white, var(--deep-blue)); border-radius: 1rem; @@ -448,7 +425,6 @@ justify-content: center; align-items: center; } - .popup-content { background: conic-gradient(from var(--gradient-angle), #1ba8e9, #1619b9, #800f86, #ff057c, #800f86, #1619b9, #1ba8e9); animation: rotation 20s linear infinite; @@ -460,7 +436,6 @@ justify-content: center; align-items: center; } - .close-button { position: absolute; top: 10px; @@ -472,27 +447,22 @@ cursor: pointer; transition: color 0.3s ease; } - .popup-letter { font-size: 25rem; font-weight: bold; text-align: center; color: light-dark(white, var(--deep-blue)); - text-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); - /* Optional: for better visibility */ + text-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); /* Optional: for better visibility */ } - @property --gradient-angle { syntax: ""; initial-value: 0deg; inherits: false; } - @keyframes rotation { 0% { --gradient-angle: 0deg; } - 100% { --gradient-angle: 360deg; } diff --git a/src/assets/styles/journey/form.css b/src/assets/styles/journey/form.css new file mode 100644 index 00000000..4b9b2fc6 --- /dev/null +++ b/src/assets/styles/journey/form.css @@ -0,0 +1,161 @@ +.form-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + opacity: 0; + pointer-events: none; + transition: opacity 0.3s ease; +} + +.form-overlay.active { + opacity: 1; + pointer-events: all; +} + +.event-form { + background: var(--timeline-bg); + padding: 30px; + border-radius: 20px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); + width: 100%; + max-width: 400px; + transform: translateY(20px); + transition: transform 0.3s ease; +} + +.form-overlay.active .event-form { + transform: translateY(0); +} + +.form-title { + margin-bottom: 20px; + color: var(--text-color); + font-size: 1.5rem; + text-align: center; +} + +.form-group { + margin-bottom: 20px; +} + +.form-group label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: var(--text-color); +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 12px; + border: 2px solid #ddd; + border-radius: 10px; + font-family: inherit; + background: var(--timeline-bg); + color: var(--text-color); + transition: border-color 0.3s ease; +} + +/* Light/dark adjustments for date picker native calendar icon */ +.form-group input[type="date"] { + appearance: none; + -webkit-appearance: none; + background-color: var(--timeline-bg); + color: var(--text-color); +} + +.form-group input[type="date"]::-webkit-calendar-picker-indicator { + filter: invert(0%); +} + +[data-theme="dark"] .form-group input[type="date"]::-webkit-calendar-picker-indicator { + filter: invert(1); +} + +.form-group input:focus, +.form-group textarea:focus { + border-color: var(--accent-color); + outline: none; +} + +.form-group textarea { + min-height: 100px; + resize: vertical; +} + +.form-buttons { + display: flex; + justify-content: flex-end; + gap: 10px; +} + +.form-button { + padding: 8px 20px; + border-radius: 30px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; +} + +.cancel-button { + background: transparent; + color: var(--text-color); + border: 2px solid #ddd; +} + +.cancel-button:hover { + border-color: var(--text-color); +} + +.submit-button { + background: var(--button-bg); + color: white; + border: none; + box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3); +} + +.submit-button:hover { + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(34, 197, 94, 0.4); +} +.char-counter { + text-align: right; + margin-top: 6px; + font-size: 0.85rem; + color: var(--text-color); + opacity: 0.7; +} + +/* Responsive styles */ +@media (max-width: 768px) { + .event-form { + padding: 20px; + } + + .form-title { + font-size: 1.3rem; + } +} + +@media (max-width: 480px) { + .event-form { + padding: 15px; + } + + .form-title { + font-size: 1.2rem; + } + + .form-button { + padding: 8px 16px; + font-size: 14px; + } +} \ No newline at end of file diff --git a/src/assets/styles/journey/journey.css b/src/assets/styles/journey/journey.css new file mode 100644 index 00000000..22c94f97 --- /dev/null +++ b/src/assets/styles/journey/journey.css @@ -0,0 +1,375 @@ +/* Light Theme (Default) */ +:root { + --bg-color: var(--gray-200); + --text-color: #1e1e1e; + --accent-color: #f43f5e; + --header-bg: linear-gradient(135deg, #f9fafb, #e5e7eb); + --timeline-bg: #f3f4f6; + --button-bg: linear-gradient(135deg, #7c3aed, #a78bfa); + --dot-color: #7c3aed; + --label-bg: #ffffff; + --label-border: #e0e0e0; + --date-bg: #f43f5e; + --date-text: white; + --timeline-bg: #eaeaea; + --empty-state-bg: #ffffff;} + +/* Dark Theme */ +[data-theme="dark"] { + --bg-color: var(--gray-800); + --text-color: #e5e5e5; + --accent-color: #34d399; + --header-bg: linear-gradient(135deg, #4c1d95 0%, #7e22ce 50%, #6b21a8 100%); + --timeline-bg: #1e1e1e; + --button-bg: linear-gradient(135deg, #7c3aed, #a78bfa); + --timeline-bg: #3b3c3c; + --empty-state-bg: #1e1e1e; + --empty-state-border: rgba(255, 255, 255, 0.1);} + +/* Reset and base */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + height: 100%; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + background: var(--header-bg); + color: var(--text-color); + line-height: 1.6; + overflow-x: hidden; +} + +/* Layout */ +.page-container { + min-height: 100vh; + padding: 40px 20px; + display: flex; + flex-direction: column; + align-items: center; + background: var(--bg-color); + margin-top: -65px; + margin-left: -20px; +} + +/* Header */ +.page-header { + text-align: center; + color: var(--text-color); + margin-bottom: 40px; + z-index: 10; + position: relative; +} + +.page-title { + font-size: 3rem; + font-weight: 700; + margin-bottom: 16px; + text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + letter-spacing: -0.02em; + text-align: center; +} + +.page-subtitle { + font-size: 1.25rem; + font-weight: 400; + margin-bottom: 32px; + opacity: 0.9; + max-width: 600px; + line-height: 1.6; + text-align: center; +} + +/* Button Group */ +.button-group { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin-bottom: 16px; +} + +/* Buttons */ +.add-event-button, +.print-pdf-button, +.expand-collapse-button { + background: var(--button-bg); + color: white; + border: none; + padding: 14px 28px; + border-radius: 30px; + font-size: 16px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3); + position: relative; + overflow: hidden; +} + +.add-event-button::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); + transition: left 0.5s ease; +} + +.add-event-button:hover::before { + left: 100%; +} + +.print-pdf-button:hover, +.add-event-button:hover, +.expand-collapse-button:hover { + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4); +} + +/* Timeline Container */ +.timeline-wrapper { + background: var(--timeline-bg); + padding: 60px 40px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.5); + position: relative; + overflow: hidden; + width: 100%; + max-width: 1000px; + min-height: 600px; + transform: translateY(20px); + opacity: 0; + transition: all 0.8s ease; + display: none; + /* Initially hidden */ +} + +.timeline-wrapper:has(.timeline-event) { + display: block; + opacity: 1; + transform: translateY(0); +} + +.timeline-wrapper::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 40px; + border-radius: 0 0 25px 25px; +} + +.timeline-wrapper::after { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + pointer-events: none; +} + +/* Empty State Styles */ +.empty-state { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + padding: 60px 40px; + margin: 40px auto; + max-width: 600px; + border-radius: 16px; + background: var(--empty-state-bg); + backdrop-filter: blur(8px); + border: 1px solid var(--empty-state-border); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + animation: fadeIn 0.6s ease-out forwards; +} + +.empty-state h2 { + font-size: 2.2rem; + margin-bottom: 16px; + color: var(--accent-color); + font-weight: 700; + background: linear-gradient(90deg, var(--accent-color), #3b82f6); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; +} + +.empty-state p { + font-size: 1.2rem; + color: var(--text-color); + opacity: 0.9; + margin-bottom: 32px; + line-height: 1.6; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .empty-state { + padding: 40px 30px; + margin: 30px auto; + max-width: 80%; + } + + .empty-state h2 { + font-size: 1.8rem; + } + + .empty-state p { + font-size: 1.1rem; + } + + .page-title { + font-size: 2.5rem; + } + + .page-subtitle { + font-size: 1.1rem; + } + + .timeline-wrapper { + padding: 40px 20px; + min-height: 500px; + } +} + +@media (max-width: 480px) { + .empty-state { + padding: 32px 24px; + margin: 20px auto; + max-width: 90%; + } + + .empty-state h2 { + font-size: 1.6rem; + } + + .empty-state p { + font-size: 1rem; + } + + .timeline-wrapper { + padding: 30px 15px; + min-height: 450px; + } +} + +/* Print Styles */ +@media print { + + /* Hide everything by default */ + body * { + visibility: hidden; + overflow: visible !important; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + align-items: center; + } + + /* Show only required elements */ + .page-title, + .page-subtitle, + .timeline-wrapper, + .timeline-wrapper * { + visibility: visible; + } + + /* Timeline container styling */ + .timeline-wrapper { + background: transparent !important; + box-shadow: none !important; + padding: 0 !important; + border: none !important; + margin-top: 100px !important; + } + + /* Header styling */ + .page-title, + .page-subtitle { + text-align: center; + color: black !important; + margin-top: 10px !important; + margin-bottom: 20px !important; + } + + /* Timeline elements */ + .timeline-container { + height: auto !important; + overflow: visible !important; + } + + /* Expanded labels */ + .timeline-label { + width: 240px !important; + min-height: 180px !important; + padding: 20px !important; + margin-top: -80px !important; + } + + body, + .timeline-wrapper { + overflow: visible !important; + height: auto !important; + } + + .timeline-container, + .timeline-event, + .timeline-label { + page-break-inside: avoid; + break-inside: avoid; + } + + .event-description { + display: block !important; + } + + /* Hide interactive elements */ + .add-event-button, + .print-pdf-button, + .theme-toggle-button, + .expand-collapse-button, + .empty-state, + .form-overlay, + .event-actions { + display: none !important; + } + + .timeline-label:nth-child(odd) { + transform: translateX(-10px) !important; + } + + .timeline-label:nth-child(even) { + transform: translateX(1px) !important; + } + + @page { + size: auto; + margin: 5mm; + } + + body { + padding: 10mm !important; + background: white !important; + } +} \ No newline at end of file diff --git a/src/assets/styles/journey/timeline.css b/src/assets/styles/journey/timeline.css new file mode 100644 index 00000000..1a686940 --- /dev/null +++ b/src/assets/styles/journey/timeline.css @@ -0,0 +1,350 @@ +:root { + --timeline-bg-color: #e0f7fa; + --timeline-bg-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E %3CradialGradient id='sun' cx='10%25' cy='15%25' r='20%25' %3E %3Cstop offset='0%25' stop-color='%23fffde7' /%3E %3Cstop offset='100%25' stop-color='%23fbc02d' /%3E %3C/radialGradient%3E %3C/defs%3E %3Crect width='100%25' height='100%25' fill='%23e0f7fa' /%3E %3Ccircle cx='120' cy='80' r='80' fill='url(%23sun)' /%3E %3Cpath d='M0,320L160,290L320,340L480,280L640,360L800,300L960,370L1120,290L1280,330L1440,310L1440,500L0,500Z' fill='%2391c788' /%3E %3Cpath d='M0,370L180,340L360,390L540,330L720,400L900,350L1080,410L1260,340L1440,380L1440,500L0,500Z' fill='%2368b684' /%3E %3C/svg%3E"); + --label-bg-color: lch(89.6% 8.46 146.1); + --label-text-color: #000000; + --label-date-color: #4b5563; + --label-description-color: #374151; + --timeline-line-color: lch(89.6% 8.46 146.1); + --timeline-dot-gradient-start: #FEF3C7; + --timeline-dot-gradient-mid: #FCD34D; + --timeline-dot-gradient-end: #F59E0B; + --timeline-dot-border: #16A34A; + --label-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + --label-button-bg: #a855f7; + --label-button-hover: #7e22ce; +} + +.dark { + --timeline-bg-color: #0b0f1c; + --timeline-bg-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E %3CradialGradient id='moon' cx='10%25' cy='15%25' r='15%25' %3E %3Cstop offset='0%25' stop-color='%23ffffff' /%3E %3Cstop offset='100%25' stop-color='%23888' /%3E %3C/radialGradient%3E %3C/defs%3E %3Crect width='100%25' height='100%25' fill='%230b0f1c' /%3E %3Ccircle cx='120' cy='80' r='70' fill='url(%23moon)' /%3E %3Cg fill='%23ffffff' opacity='0.8' %3E %3Ccircle cx='50' cy='30' r='1.5' /%3E %3Ccircle cx='100' cy='100' r='1' /%3E %3Ccircle cx='200' cy='60' r='1.3' /%3E %3Ccircle cx='300' cy='20' r='1.7' /%3E %3Ccircle cx='400' cy='120' r='1.2' /%3E %3Ccircle cx='500' cy='50' r='1.6' /%3E %3Ccircle cx='600' cy='70' r='1.3' /%3E %3Ccircle cx='700' cy='40' r='1.5' /%3E %3Ccircle cx='800' cy='80' r='1.4' /%3E %3Ccircle cx='900' cy='30' r='1.6' /%3E %3Ccircle cx='1000' cy='60' r='1.2' /%3E %3Ccircle cx='1100' cy='90' r='1.7' /%3E %3Ccircle cx='1300' cy='50' r='1.5' /%3E %3C/g%3E %3Cpath d='M0,320L160,290L320,340L480,280L640,360L800,300L960,370L1120,290L1280,330L1440,310L1440,500L0,500Z' fill='%233b4d61' /%3E %3Cpath d='M0,370L180,340L360,390L540,330L720,400L900,350L1080,410L1260,340L1440,380L1440,500L0,500Z' fill='%232b3a4d' /%3E %3C/svg%3E"); + --label-bg-color: #435977; + --label-text-color: #f9fafb; + --label-date-color: #d1d5db; + --label-description-color: #e5e7eb; + --timeline-line-color: #6b7280; + --label-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); + --label-button-bg: #9333ea; + --label-button-hover: #6b21a8; +} + +.timeline-wrapper { + background: var(--timeline-bg-color) var(--timeline-bg-image) center/cover no-repeat fixed; + border-radius: 25px; + padding: 60px 40px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); + width: 100%; + max-width: 1000px; + max-height: 80vh; + overflow-y: auto; + scroll-behavior: smooth; + padding-right: 10px; + transform: translateY(20px); + opacity: 0; + transition: all 0.8s ease; + position: relative; +} + +.timeline-wrapper:has(.timeline-event) { + opacity: 1; + transform: translateY(0); +} + +/* 🌞 Sun (light mode) */ +.timeline-wrapper::before { + content: ""; + position: absolute; + top: 120px; + left: 100px; + width: 80px; + height: 80px; + border-radius: 50%; + z-index: 2; + background: radial-gradient(circle at center, #fffde7 0%, #fff176 40%, #fbc02d 70%, transparent 100%); + box-shadow: 0 0 30px 10px rgba(255, 223, 0, 0.4); + transition: all 0.5s ease; +} + +/* 🌙 Moon (dark mode) */ +.dark .timeline-wrapper::before { + background: radial-gradient(circle at center, #f0f0f0 0%, #ccc 50%, #888 80%, transparent 100%); + box-shadow: 0 0 25px 8px rgba(255, 255, 255, 0.2); +} + +/* 🌠 Shooting star */ +.dark .timeline-wrapper::after { + content: ""; + position: absolute; + top: 60px; + left: -100px; + width: 2px; + height: 2px; + background: white; + box-shadow: 0 0 6px 2px white; + border-radius: 50%; + opacity: 0.8; + animation: shootingStar 6s ease-in-out infinite; + z-index: 2; +} + +@keyframes shootingStar { + 0% { + transform: translate(0, 0); + opacity: 0; + } + + 10% { + opacity: 1; + } + + 40% { + transform: translate(400px, 150px); + opacity: 0.8; + } + + 80% { + transform: translate(800px, 300px); + opacity: 0; + } + + 100% { + transform: translate(1000px, 400px); + opacity: 0; + } +} + +.timeline-container { + position: relative; + min-height: 100%; + padding-bottom: 100px; +} + +.timeline-line { + position: absolute; + left: 50%; + top: 0; + width: 6px; + background: var(--timeline-line-color); + transform: translateX(-50%); + border-radius: 3px; + z-index: 1; +} + +.timeline-event { + position: absolute; + left: 50%; + transform: translateX(-50%); + z-index: 5; + transition: top 0.3s ease; +} + +.timeline-dot { + width: 24px; + height: 24px; + background: radial-gradient(circle, var(--timeline-dot-gradient-start) 0%, var(--timeline-dot-gradient-mid) 40%, var(--timeline-dot-gradient-end) 100%); + border: 3px solid var(--timeline-dot-border); + border-radius: 50%; + z-index: 3; +} + +.timeline-event::before { + content: ''; + position: absolute; + top: 50%; + width: 40px; + height: 4px; + background: var(--timeline-line-color); + transform: translateY(-50%); + border-radius: 2px; + z-index: -1; +} + +.timeline-event:nth-child(odd)::before { + right: 24px; +} + +.timeline-event:nth-child(even)::before { + left: 24px; +} + +.timeline-label { + position: absolute; + top: 0; + padding: 12px 16px; + background: var(--label-bg-color); + border-radius: 15px; + font-size: 14px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + box-shadow: var(--label-shadow); + cursor: pointer; + overflow: hidden; + transition: all 0.3s ease, height 0.3s ease, width 0.3s ease; + margin-top: -10px; + border: 1px solid rgba(0, 0, 0, 0.05); +} + +.timeline-label:hover { + filter: drop-shadow(0 0 8px rgba(128, 0, 255, 0.4)); +} + +.dark .timeline-label { + border: 1px solid rgba(255, 255, 255, 0.05); +} + +.timeline-label.left { + left: 80px; + transform: translateX(-20px); +} + +.timeline-label.right { + right: 80px; + transform: translateX(20px); +} + +.event-title { + font-size: 16px; + font-weight: 700; + color: var(--label-text-color); + margin-bottom: 4px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 100%; +} + +.timeline-label.expanded .event-title { + font-size: 20px; + margin-bottom: 10px; +} + +.event-date { + font-weight: 500; + font-size: 14px; + color: var(--label-date-color); + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + position: relative; +} + +.timeline-label.expanded .event-date { + font-size: 16px; +} + +.event-date::after { + content: "▼"; + font-size: 12px; + margin-left: 8px; + transition: transform 0.9s ease; + color: var(--label-date-color); +} + +.timeline-label.expanded { + width: 350px; + height: 275px; + padding: 25px; + font-size: 16px; + justify-content: space-between; + overflow: visible; +} + +.timeline-label .event-description, +.timeline-label .event-actions { + display: none; +} + +.timeline-label.expanded .event-description, +.timeline-label.expanded .event-actions { + display: block; +} + +.timeline-label.expanded .event-date::after { + transform: rotate(180deg); +} + +.event-description { + font-size: 14px; + color: var(--label-description-color); + margin: 15px 0; + line-height: 1.5; +} + +.event-actions { + width: 100%; + text-align: right; +} + +.event-actions button { + margin-left: 10px; + padding: 6px 12px; + border: none; + border-radius: 6px; + background: var(--label-button-bg); + color: #fff; + font-size: 14px; + cursor: pointer; + transition: background 0.2s ease; +} + +.event-actions button:hover { + background: var(--label-button-hover); +} + +@media (max-width: 768px) { + .timeline-label { + width: 84px; + height: 69px; + padding: 8px; + } + + .timeline-label.expanded { + width: 280px; + height: 230px; + padding: 20px; + } + + .timeline-label.left { + left: 40px; + } + + .timeline-label.right { + right: 40px; + } +} + +@media (max-width: 480px) { + .timeline-label { + width: 66px; + height: 60px; + padding: 6px; + font-size: 12px; + align-content: center; + } + + .timeline-label.expanded { + width: 220px; + height: 200px; + padding: 15px; + font-size: 14px; + align-content: center; + } + + .event-title { + font-size: 13px; + } + + .event-date { + font-size: 12px; + } + + .event-description { + font-size: 14px; + } +} \ No newline at end of file diff --git a/src/assets/styles/letter-card.css b/src/assets/styles/letter-card.css deleted file mode 100644 index fb2905f3..00000000 --- a/src/assets/styles/letter-card.css +++ /dev/null @@ -1,220 +0,0 @@ -:root[data-theme="light"] { - --character-gradient-start: var(--primary); - --character-gradient-end: var(--primary-light); - --character-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); -} - -:root[data-theme="dark"] { - --character-gradient-start: hsl(48, 100%, 75%); - --character-gradient-end: hsl(48, 100%, 85%); - --character-shadow: 0 0 20px hsla(48, 100%, 75%, 0.2); -} - -.flip__card { - width: 100%; - height: 100%; - perspective: 1000px; - min-height: 250px; - - & .image { - object-fit: cover; - width: 100%; - height: 100%; - background-color: var(--border); - } - - & .character, - .flipped__text { - display: flex; - justify-content: center; - align-items: center; - height: 100%; - font-size: clamp(3rem, 6vw, 4rem); - font-weight: 800; - margin: 0; - line-height: 1.2; - /* Adjusted line-height */ - background: linear-gradient( - 135deg, - var(--character-gradient-start, var(--primary)) 0%, - var(--character-gradient-end, var(--primary-light)) 100% - ); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - text-shadow: var(--character-shadow); - text-align: center; - /* Adjusted text-align */ - } - - .flag { - color: initial; - } - - & .flipped__text { - font-size: 3.5rem; - } - - & .emoji { - display: flex; - justify-content: center; - align-items: center; - height: 100%; - font-size: clamp(4rem, 10vw, 5rem); - margin: 0; - line-height: 1; - text-align: center; - font-family: monospace; - } - - & .card { - background: linear-gradient(145deg, var(--background), color-mix(in srgb, var(--background) 97%, var(--text) 3%)); - border-radius: 1.25rem; - padding: 1.75rem; - box-shadow: - 0 4px 15px rgba(0, 0, 0, 0.05), - 0 1px 2px rgba(0, 0, 0, 0.1); - transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); - display: flex; - flex-direction: column; - gap: 1.25rem; - position: relative; - overflow: hidden; - border: 1px solid var(--border); - backdrop-filter: blur(10px); - width: 100%; - height: 100%; - - &:hover .card__glow { - opacity: 1; - } - - &:hover .text { - background: linear-gradient(135deg, var(--primary), var(--primary-light)); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - } - } - - & .flip__card__inner { - width: 100%; - height: 100%; - text-align: left; - transition: transform 0.8s; - transform-style: preserve-3d; - } - - & .card__front, - & .card__back { - position: absolute; - width: 100%; - height: 100%; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - top: 0; - left: 0; - } - - & .card__back { - padding: 0%; - transform: rotateY(180deg); - } - - &.flipped .flip__card__inner { - transform: rotateY(180deg); - padding: 0%; - } - - & .letter:hover { - transform: translateY(-5px) scale(1.02); - box-shadow: - 0 20px 30px rgba(0, 0, 0, 0.1), - 0 0 0 1px rgba(59, 130, 246, 0.1); - } - - & .letter__header { - display: flex; - justify-content: flex-start; - align-items: flex-start; - position: relative; - } - - & .flip__button { - position: absolute; - top: 5%; - right: 5%; - z-index: 1; - } - - & .flip__button__text { - font-size: 0.875rem; - color: var(--secondary); - padding: 0.35rem 0.75rem; - background: color-mix(in srgb, var(--background) 97%, var(--text) 3%); - border-radius: 2rem; - cursor: pointer; - transition: all 0.3s ease; - border: 1px solid var(--border); - text-align: left; - - &:hover { - background-color: var(--primary); - color: var(--text); - transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - } - } - - & .letter__content { - flex-direction: column; - gap: 0.75rem; - z-index: 1; - text-align: left; - } - - & .text { - font-size: 1.5rem; - font-weight: 700; - color: var(--text); - margin: 0; - transition: color 0.3s ease; - text-align: left; - } - - & .description { - font-size: 0.925rem; - color: var(--secondary); - margin: 0; - line-height: 1.6; - opacity: 0.9; - text-align: left; - } - - & .card__glow { - position: absolute; - inset: 0; - background: radial-gradient( - circle at var(--mouse-x, 50%) var(--mouse-y, 50%), - color-mix(in srgb, var(--primary) 10%, transparent) 0%, - transparent 60% - ); - opacity: 0; - transition: opacity 0.3s ease; - pointer-events: none; - } - - @media (max-width: 768px) { - & .character { - font-size: 2.5rem; - } - - & .text { - font-size: 1.25rem; - } - - & .description { - font-size: 0.875rem; - } - } -} diff --git a/src/assets/styles/map/map.css b/src/assets/styles/map/map.css index 270ae584..b1766a45 100644 --- a/src/assets/styles/map/map.css +++ b/src/assets/styles/map/map.css @@ -36,7 +36,7 @@ } .explore-card { - width: 25rem; + width: 17rem; height: auto; display: block; text-decoration: none; @@ -104,22 +104,10 @@ .explore-container { padding: 1rem; } - .explore-card{ - width: 18rem; - } + .explore-grid { grid-template-columns: 1fr; } - - .card-header h2 { - font-size: 1.13rem; - font-weight: 500; - } - - .card-content p { - font-size: 0.975rem; - font-weight: 100; - } } .container__map { @@ -156,7 +144,7 @@ margin-top: -15px; } } - + @media screen and (min-width: 1200px) { .tooltip { transform: translate(-15vw, -20vh); diff --git a/src/assets/styles/map/popup.css b/src/assets/styles/map/popup.css index 98ce3b82..38655ba6 100644 --- a/src/assets/styles/map/popup.css +++ b/src/assets/styles/map/popup.css @@ -1,7 +1,43 @@ -.container__popover { - container: setting/inline-size; +.state-popup { + display: none; + flex-direction: column; + position: absolute; + background-color: #fff; + padding: 20px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15); + border-radius: 12px; + width: 90%; + max-width: 400px; + z-index: 1000; + opacity: 0; + transition: opacity 0.3s ease; + max-height: 90vh; + overflow-y: auto; + + &__name { + font-size: 1.8rem; + font-weight: bold; + margin-bottom: 12px; + color: #333; + } + + &__info { + font-size: 1.4rem; + margin: 12px 0; + color: #444; + line-height: 1.4; + } + + &__image { + width: 100%; + height: auto; + max-height: 220px; + object-fit: cover; + border-radius: 8px; + margin: 10px 0; + } - .state-popup__close { + &__close { position: absolute; anchor-name: --setting; display: flex; @@ -9,214 +45,155 @@ right: 1.5rem; width: max-content; cursor: pointer; - font-size: 4rem; + color: #666; + transition: color 0.2s ease; + + &:hover { + color: #333; + } + } + + &__buttons { + display: flex; + gap: 12px; + margin-top: 15px; } - .state-popup { - position: fixed; - position-anchor: --setting; - top: calc(anchor(bottom) + 15px); - right: calc(anchor(left) + 10px); - justify-self: anchor-center; - width: 20rem; - height: 20rem; - background-color: #fff; - border-radius: 4px; - padding: 0.74rem; - transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); - color: color(xyz 0 0 1); - - &::backdrop { - background-color: hsl(0 0% 10% / 0.5); - backdrop-filter: blur(2px); - } - - .state-popup__content { - display: grid; - grid-auto-flow: row; - gap: 0.5rem; - width: 20rem; - } - - &[popover] { - position: fixed; - inset: unset; - width: max-content; - /* height: fit-content; */ - right: 0; - bottom: 0; - margin: auto; - overflow: auto; - padding: 1rem; - border: solid; - border-radius: 1rem; - opacity: 0; - visibility: hidden; - transition: - translate 0.7s ease-out, - display 0.7s ease-out allow-discrete, - overlay 0.7s ease-out allow-discrete, - height 0.5s ease-in-out; - translate: 0 -2rem; - - &:popover-open { - opacity: 1; - visibility: visible; - translate: 0 0; - top: 40px; - bottom: 0; - translate: 0 0; - min-height: 26rem; - justify-content: center; - } - - @starting-style { - opacity: 0; - visibility: hidden; - } + + &__button { + flex: 1; + padding: 10px 16px; + font-size: 1.2rem; + cursor: pointer; + border: none; + border-radius: 8px; + transition: all 0.2s ease; + + &--copy { + background-color: #4caf50; + color: white; + } + + &--more { + background-color: #007bff; + color: white; + } + + &:hover { + transform: translateY(-2px); + opacity: 0.9; } } -} -.state-popup { - border-radius: 1.1rem; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15); - padding: 2rem 1.5rem 1.5rem 1.5rem; - width: 400px; - max-width: 95vw; - min-width: 260px; - color: #222; - font-family: 'Segoe UI', 'Roboto', Arial, sans-serif; - border: none; - position: relative; - display: flex; - flex-direction: column; - align-items: center; -} -.state-popup__close { - background: none; - border: none; - font-size: 2rem; - color: #888; - cursor: pointer; - z-index: 2; - transition: color 0.2s; -} + /* Responsive Adjustments */ + @media (max-width: 1024px) { + max-width: 350px; + padding: 18px; -.state-popup__close:hover { - color: #1976d2; - background-colo: white; -} - -.state-popup__name { - font-size: 2rem; - font-weight: 700; - margin-bottom: 0.7rem; - color: #222; - text-align: left; - width: 100%; -} + &__name { + font-size: 1.6rem; + } -.state-popup__image { - width: 100%; - object-fit: cover; - border-radius: 0.8rem; -} + &__info { + font-size: 1.2rem; + } -.state-popup__info { - font-size: 1.15rem; - color: #444; - margin-bottom: -1rem; - margin-right: 0rem; - margin-top: -1rem; - margin-left: 0rem; - text-align: left; - width: 100%; -} + &__image { + max-height: 180px; + } + } -.state-popup__info strong { - color: #222; - font-weight: 700; -} + @media (max-width: 768px) { + width: 80%; + max-width: 300px; + padding: 15px; + margin: 0 auto; -.state-popup__buttons { - width: 100%; - display: flex; - justify-content: center; -} + &__name { + font-size: 1.4rem; + margin-bottom: 8px; + } -.state-popup__button { - width: 100%; - padding: 0.8rem 0; - font-size: 1.1rem; - font-weight: 600; - background:#1976d2; - color: #fff; - border: none; - border-radius: 0.7rem; - cursor: pointer; - margin-top: 0.5rem; - transition: background 0.2s; -} + &__info { + font-size: 1.1rem; + margin: 8px 0; + } + + &__image { + max-height: 150px; + margin: 8px 0; + } + + &__buttons { + flex-direction: row; + gap: 8px; + margin-top: 12px; + } -@media (max-width: 600px) { - .container__popover { - .state-popup { - width: 80vw; - padding: 1.5rem 1rem; - - &[popover] { - min-height: 16rem; - - &:popover-open { - min-height: 20rem; - width: 30%; - } - } - - .state-popup__content { - width: 100%; - gap: 0.75rem; - } - - .state-popup__image { - width: 100%; - max-height: 200px; - object-fit: cover; - border-radius: 0.6rem; - } - - .state-popup__info { - font-size: 1rem; - margin-bottom: -1rem; - margin-right:0rem; - margin-top: -1rem; - margin-left: 0rem; - } - - .state-popup__name { - font-size: 1.3rem; - margin-bottom: 0.5rem; - } - - .state-popup__buttons { - flex-direction: column; - gap: 0.5rem; - } - - .state-popup__button { - font-size: 1rem; - padding: 0.7rem; - } - - .state-popup__close { - font-size: 2rem; - top:0.9rem; - right: 0rem; - width: 2.5rem; - height: 2.5rem; - } + &__button { + padding: 8px 12px; + font-size: 1.1rem; } } -} + @media (max-width: 480px) { + width: 90%; + max-width: 280px; + padding: 12px; + border-radius: 8px; + + &__name { + font-size: 1.2rem; + margin-bottom: 6px; + } + + &__info { + font-size: 1rem; + margin: 6px 0; + } + + &__image { + max-height: 120px; + margin: 6px 0; + } + + &__close { + font-size: 1.4rem; + top: 6px; + right: 10px; + } + + &__buttons { + flex-direction: column; + gap: 6px; + margin-top: 10px; + } + + &__button { + width: 100%; + font-size: 1rem; + padding: 8px; + } + } + + @media (max-width: 320px) { + width: 95%; + padding: 10px; + + &__name { + font-size: 1.1rem; + } + + &__info { + font-size: 0.9rem; + } + + &__image { + max-height: 100px; + } + &__button { + font-size: 0.9rem; + padding: 6px; + } + } +} diff --git a/src/assets/styles/map/state.css b/src/assets/styles/map/state.css index 1370840c..dd874a45 100644 --- a/src/assets/styles/map/state.css +++ b/src/assets/styles/map/state.css @@ -252,6 +252,7 @@ } @media screen and (min-width: 768px) { + .tooltip, #state-tooltip { transform: translate(-50%, -120%); @@ -260,6 +261,7 @@ } @media screen and (min-width: 1200px) { + .tooltip, #state-tooltip { transform: translate(-15vw, -20vh); @@ -489,4 +491,4 @@ .description { font-size: 0.85rem; } -} +} \ No newline at end of file diff --git a/src/assets/styles/math.css b/src/assets/styles/math.css index a01ffbd6..d44debb9 100644 --- a/src/assets/styles/math.css +++ b/src/assets/styles/math.css @@ -198,6 +198,16 @@ font-size: 5rem; color: var(--color-secondary); text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); + /* display: inline-flex; + align-items: center; + justify-content: center; */ + /* text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); + display: inline-flex; + align-items: center; + justify-content: center; + line-height: 1; + padding: 0; + margin: 0; */ } .answer-wrapper { @@ -245,12 +255,10 @@ transform: scale(0); opacity: 0; } - 70% { transform: scale(1.2); opacity: 1; } - 100% { transform: scale(1); opacity: 1; @@ -262,24 +270,58 @@ 100% { transform: translateX(0); } - 20% { transform: translateX(-8px); } - 40% { transform: translateX(8px); } - 60% { transform: translateX(-5px); } - 80% { transform: translateX(5px); } } +/* Fullscreen Celebration Styles */ +.fullscreen-celebration { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 2000; + pointer-events: none; + display: none; +} + +.fullscreen-celebration.active { + display: block; +} + +.emoji-particle { + position: absolute; + font-size: 2rem; + animation: floatUpAndFade 3s ease-out forwards; + will-change: transform, opacity; +} + +@keyframes floatUpAndFade { + 0% { + transform: translateY(0) scale(0.5) rotate(0deg); + opacity: 1; + } + 50% { + opacity: 0.9; + } + 100% { + transform: translateY(-100vh) scale(1.2) rotate(360deg); + opacity: 0; + } +} + /* Responsive Adjustments */ @media (max-width: 1200px) { .number { @@ -405,7 +447,6 @@ .header { padding: 0.5rem 1rem; } - .number-group { gap: 0.5rem; } diff --git a/src/assets/styles/menu.css b/src/assets/styles/menu.css index f0ebaeed..a17a4dba 100644 --- a/src/assets/styles/menu.css +++ b/src/assets/styles/menu.css @@ -1,5 +1,6 @@ @import url("https://unpkg.com/normalize.css") layer(normalize); -@layer normalize, demo, base; +@tailwind base; +@layer normalize, base, demo; @layer demo { :root { @@ -50,26 +51,17 @@ gap: 0.5rem; padding: 0.5rem; transition: all 0.2s ease; - background-image: linear-gradient(color-mix(in srgb, var(--primary) 35%, transparent)); - background-size: 0 100%; - background-repeat: no-repeat; - transition: 0.4s; - - &:hover { - background-size: 100% 100%; - } } [popover] .nav--list__item.active { background: color-mix(in srgb, var(--primary) 15%, transparent); - color: color-contrast(var(--primary) vs white, black); - + color: var(--primary); font-weight: 600; border-radius: 0.75rem; } [popover] .nav--list__item:hover { - color: color-contrast(var(--primary) vs white, black); + color: var(--primary); border-radius: 0.75rem; } @@ -96,7 +88,7 @@ padding: 1rem 0; overflow: visible; min-height: calc(100svh - var(--header-height)); - border-radius: 0.75rem; + position: sticky; border-right: 1px solid var(--border); transition: width 0.3s ease; @@ -141,8 +133,6 @@ main { border: 2px solid #0000; - display: grid; - grid-template-areas: "sidebar content"; } [popover] ul { @@ -163,6 +153,7 @@ padding-block: 0.75rem; padding-inline: 1rem; text-decoration: none; + color: var(--secondary); font-size: 0.875rem; font-weight: 500; border-radius: 0.5rem; @@ -478,12 +469,6 @@ min-width: var(--sidebar-expanded); } - @media (max-width: 768px) { - [popover] .minimize-toggle { - display: none !important; - } - } - .theme-toggle { & svg { & symbol { diff --git a/src/assets/styles/numbers/index.css b/src/assets/styles/numbers/index.css new file mode 100644 index 00000000..cfd2237b --- /dev/null +++ b/src/assets/styles/numbers/index.css @@ -0,0 +1,77 @@ +.card__inner { + background: var(--background); + border: 2px solid var(--border); + border-radius: 1rem; + padding: clamp(1rem, 3vw, 1.25rem); + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + gap: clamp(0.75rem, 2vw, 1rem); + transition: all 0.2s ease; +} + +.category__icon { + font-size: clamp(2rem, 4vw, 2.5rem); + margin-bottom: clamp(0.25rem, 2vw, 0.5rem); + line-height: 1; +} + +.category__title { + font-size: clamp(1.25rem, 3vw, 1.5rem); + margin-bottom: 0.75rem; +} + +.category__description { + font-size: clamp(0.9rem, 2vw, 0.95rem); + line-height: 1.6; + flex-grow: 1; +} + +.btn { + display: flex; + align-items: center; + justify-content: center; + padding: clamp(0.5rem, 2vw, 0.75rem) clamp(0.75rem, 2vw, 2rem); + border-radius: 0.75rem; + font-weight: 600; + font-size: clamp(0.9rem, 2vw, 1.1rem); + transition: all 0.2s ease; + text-decoration: none; + flex: 1; + min-width: 119px; +} + +.card__actions { + display: flex; + margin-top: auto; +} + +@media (max-width: 768px) { + .btn { + width: 100%; + } +} + +.btn-playground { + background: var(--primary); + color: var(--background); +} + +.card:hover .card__inner { + transform: translateY(-3px); + border-color: var(--primary); +} + +.btn:hover { + transform: translateY(-2px); +} + +.btn-playground:hover { + background: var(--primary-light); +} + +.icon { + font-size: 1.2em; + margin-right: 0.5em; +} diff --git a/src/assets/styles/panel.css b/src/assets/styles/panel.css index 40f670b9..faec70a0 100644 --- a/src/assets/styles/panel.css +++ b/src/assets/styles/panel.css @@ -3,6 +3,7 @@ --bg: #0f172a; --surface: #1e293b; --text: #f8fafc; + --primary: #3b82f6; --shadow: rgba(0, 0, 0, 0.2); --panel-width: 20rem; --panel-height: 15rem; @@ -271,8 +272,8 @@ } .settings-button { - background: transparent; - border: 1px solid var(--primary); + background: light-dark(#ffffff, #0f172a); + border: 1px solid #3b82f6; color: var(--text-light); padding: 0.6rem; width: 50px; @@ -282,6 +283,7 @@ display: flex; justify-content: center; align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); transition: all var(--transition-speed) ease; cursor: pointer; margin-top: 0; @@ -300,7 +302,7 @@ .settings-button .settings-icon { width: 1.4em; height: 1.4em; - color: var(--primary); + color: #3b82f6; fill: currentColor; transition: fill var(--transition-speed) ease; flex-shrink: 0; diff --git a/src/assets/styles/quote-designer.css b/src/assets/styles/quote-designer.css index 4c230949..df3920bf 100644 --- a/src/assets/styles/quote-designer.css +++ b/src/assets/styles/quote-designer.css @@ -83,6 +83,7 @@ select#fontFamily { /* Custom arrow for select */ select#fontFamily { + background-image: url('data:image/svg+xml;utf8,'); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 3rem; diff --git a/src/assets/styles/setting.css b/src/assets/styles/setting.css index 0ff0ed3e..fa134090 100644 --- a/src/assets/styles/setting.css +++ b/src/assets/styles/setting.css @@ -1,158 +1,162 @@ -.container__setting { - container: setting/inline-size; - - .setting__trigger { - position: fixed; - anchor-name: --setting; - display: flex; - justify-items: end; - justify-content: center; - top: 4rem; - right: 1.5rem; - width: max-content; - height: 3.5rem; - border-radius: 10%; - background-color: unset; - border: solid; - cursor: pointer; - font-size: 4rem; - transition: transform 330ms ease-in-out; - - &::after { - /*content: '🕸';*/ - outline: 1px solid slateblue; - } +@tailwind base; - /*&:hover { - transform: scale(1.05) rotate(45deg); - }*/ - } +@layer base { + .container__setting { + container: setting/inline-size; - @media (max-width: 480px) { .setting__trigger { - font-size: 0.6rem; - /* Adjust font size for smaller screens */ - width: 2.5rem; - /* Adjust width for smaller screens */ - height: 2.5rem; - /* Adjust height for smaller screens */ - margin-top: 12px; - } - } - - .setting__panel { - position: fixed; - position-anchor: --setting; - top: calc(anchor(bottom) + 15px); - right: calc(anchor(left) + 10px); - justify-self: anchor-center; - width: 20rem; - height: 20rem; - background-color: hwb(20 68% 16%); - border-radius: 4px; - padding: 0.74rem; - transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); - color: color(xyz 0 0 1); - - &::backdrop { - background-color: hsl(0 0% 10% / 0.5); - backdrop-filter: blur(2px); - } - - .control__group { - display: grid; - grid-auto-flow: row; - gap: 0.5rem; - width: 20rem; - } - - button, - select { - background-color: color(xyz 0.05 0.05 0.09); - color: white; - border: none; - padding: 1.5rem; - cursor: pointer; - transition: transform 300ms ease-in-out; + position: fixed; + anchor-name: --setting; display: flex; - flex-direction: column; - align-items: center; + justify-items: end; justify-content: center; - gap: 10px; - font-weight: 600; - font-size: 1.5rem; - letter-spacing: 0.01em; - touch-action: pinch-zoom; - border-radius: 9px; - - &:hover:not(.close) { - background-color: color(xyz 0.02 0.01 0.02); - transform: translateY(-3px); + top: 4rem; + right: 1.5rem; + width: max-content; + height: 3.5rem; + border-radius: 10%; + background-color: unset; + border: solid; + cursor: pointer; + font-size: 4rem; + transition: transform 330ms ease-in-out; + + &::after { + /*content: '🕸';*/ + outline: 1px solid slateblue; } - &.close { - width: 2rem; - height: 3rem; - justify-self: end; - border-radius: 6px; + /*&:hover { + transform: scale(1.05) rotate(45deg); + }*/ + } - &:hover { - font-size: 30px; - } + @media (max-width: 480px) { + .setting__trigger { + font-size: 0.6rem; + /* Adjust font size for smaller screens */ + width: 2.5rem; + /* Adjust width for smaller screens */ + height: 2.5rem; + /* Adjust height for smaller screens */ + margin-top: 12px; } } - &[popover] { + .setting__panel { position: fixed; - inset: unset; - width: max-content; - /*height: fit-content;*/ - right: 0; - bottom: 0; - margin: auto; - overflow: auto; - color: CanvasText; - background-color: Canvas; - padding: 1rem; - border: solid; - border-radius: 1rem; - opacity: 0; - visibility: hidden; - transition: - translate 0.7s ease-out, - display 0.7s ease-out allow-discrete, - overlay 0.7s ease-out allow-discrete, - height 0.5s ease-in-out; - translate: 0 -2rem; - - &:popover-open { - opacity: 1; - visibility: visible; - translate: 0 0; - top: 40px; - bottom: 0; - translate: 0 0; - min-height: 30rem; + position-anchor: --setting; + top: calc(anchor(bottom) + 15px); + right: calc(anchor(left) + 10px); + justify-self: anchor-center; + width: 20rem; + height: 20rem; + background-color: hwb(20 68% 16%); + border-radius: 4px; + padding: 0.74rem; + transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); + color: color(xyz 0 0 1); + + &::backdrop { + background-color: hsl(0 0% 10% / 0.5); + backdrop-filter: blur(2px); + } + + .control__group { + display: grid; + grid-auto-flow: row; + gap: 0.5rem; + width: 20rem; + } + + button, + select { + background-color: color(xyz 0.05 0.05 0.09); + color: white; + border: none; + padding: 1.5rem; + cursor: pointer; + transition: transform 300ms ease-in-out; + display: flex; + flex-direction: column; + align-items: center; justify-content: center; + gap: 10px; + font-weight: 600; + font-size: 1.5rem; + letter-spacing: 0.01em; + touch-action: pinch-zoom; + border-radius: 9px; + + &:hover:not(.close) { + background-color: color(xyz 0.02 0.01 0.02); + transform: translateY(-3px); + } + + &.close { + width: 2rem; + height: 3rem; + justify-self: end; + border-radius: 6px; - :where(button, select) { - background: linear-gradient(90deg, rgb(17, 255, 247) 0%, rgb(39, 96, 241) 100%); - transform: scaleZ(1) rotate(5deg); - border-radius: 7px; + &:hover { + font-size: 30px; + } } } - @starting-style { + &[popover] { + position: fixed; + inset: unset; + width: max-content; + /*height: fit-content;*/ + right: 0; + bottom: 0; + margin: auto; + overflow: auto; + color: CanvasText; + background-color: Canvas; + padding: 1rem; + border: solid; + border-radius: 1rem; opacity: 0; visibility: hidden; + transition: + translate 0.7s ease-out, + display 0.7s ease-out allow-discrete, + overlay 0.7s ease-out allow-discrete, + height 0.5s ease-in-out; + translate: 0 -2rem; + + &:popover-open { + opacity: 1; + visibility: visible; + translate: 0 0; + top: 40px; + bottom: 0; + translate: 0 0; + min-height: 30rem; + justify-content: center; + + :where(button, select) { + background: linear-gradient(90deg, rgb(17, 255, 247) 0%, rgb(39, 96, 241) 100%); + transform: scaleZ(1) rotate(5deg); + border-radius: 7px; + } + } + + @starting-style { + opacity: 0; + visibility: hidden; + } } } - } - &:has(:popover-open) { - .setting__trigger { - background-color: rgb(106, 202, 119); - transform: scale(1.05) rotate(45deg); + &:has(:popover-open) { + .setting__trigger { + background-color: rgb(106, 202, 119); + transform: scale(1.05) rotate(45deg); + } } } } diff --git a/src/assets/styles/clan.css b/src/assets/styles/societree.css similarity index 98% rename from src/assets/styles/clan.css rename to src/assets/styles/societree.css index 418856c6..ba333569 100644 --- a/src/assets/styles/clan.css +++ b/src/assets/styles/societree.css @@ -59,6 +59,13 @@ } } +/* Base Styles */ +body { + background-color: var(--background-color); + color: var(--text-primary); + transition: var(--transition); +} + /* Main Container */ .container__clan { display: block; @@ -112,8 +119,7 @@ display: flex; align-items: center; background: color-mix(in srgb, var(--background) 90%, var(--text-primary) 10%); - border: 2px solid #000; - /* Changed to black border */ + border: 2px solid #000; /* Changed to black border */ border-radius: var(--border-radius); padding: 0.75rem 1.25rem; transition: var(--transition); @@ -412,11 +418,9 @@ padding: 0; background: none; } - .caption { display: none; } - .card-header { border-bottom: 1px solid #000; display: flex; @@ -451,7 +455,6 @@ .header__brand { display: none; } - .header__brand span { display: none; } diff --git a/src/assets/styles/tile.css b/src/assets/styles/tile.css deleted file mode 100644 index eca7eb7b..00000000 --- a/src/assets/styles/tile.css +++ /dev/null @@ -1,62 +0,0 @@ -.container__page { - container-type: inline-size; - container-name: letterpad; -} - -.page__header { - display: flex; - align-items: center; - justify-content: space-between; - padding-bottom: 1rem; - border-bottom: 1px solid var(--border); - - .page__title { - margin: 0; - font-size: clamp(1.8rem, 4vw, 2.5rem); - color: var(--text-heading, var(--text, #333)); - font-weight: 700; - flex-grow: 1; - text-align: center; - } - - .btn__flip__all { - background-color: var(--background); - border: none; - padding: 0.5rem 1rem; - border-radius: 0.5rem; - font-weight: 200; - cursor: pointer; - transition: all 0.3s ease; - align-self: flex-center; - width: 14rem; - - &:hover { - transform: translateY(-2px); - } - - &.active { - transform: scale(0.95); - background-color: color-mix(in srgb, var(--primary) 70%, black 30%); - } - } -} - -.page__content { - padding: 1rem; - height: calc(100vh - 5rem); - overflow-y: auto; - - .page__grid { - display: grid; - gap: 1.25rem; - grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); - justify-content: center; - margin-top: 1rem; - } -} - -@container letterpad (max-width: 700px) { - .page__title { - display: none; - } -} diff --git a/src/assets/styles/varnmala/alphabet.css b/src/assets/styles/varnmala/alphabet.css new file mode 100644 index 00000000..83ddf303 --- /dev/null +++ b/src/assets/styles/varnmala/alphabet.css @@ -0,0 +1,108 @@ +:root[data-theme="light"] { + --background: #ffffff; + --background-alt: #f3f4f6; + --background-hover: #e5e7eb; + + --text: #111827; + --text-secondary: #374151; + + --primary: #4f46e5; + --text-on-primary: #ffffff; /* This is correctly defined for white text on primary background */ + --border: #d1d5db; +} + +.tabs { + z-index: 10; + width: fit-content; + border: 1px solid var(--border); + border-radius: 1rem; + background: var(--background); + display: flex; + align-items: center; /* Added for better vertical alignment of tab content */ + gap: 1rem; + padding: 0.5rem; /* Added some padding around the tabs */ + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); +} + +.tab { + padding: 0.5rem 2rem; + font-size: 1.2rem; + border-bottom: 2px solid transparent; + transition: all 0.2s ease; + position: relative; + background: var(--background-alt); + border-radius: 0.5rem; + color: var(--text-secondary); /* Added default text color for tabs */ + cursor: pointer; /* Added for better UX */ + white-space: nowrap; /* Prevent text inside tab from wrapping */ + + &:hover { + background: var(--background-hover); + color: var(--text); /* Added text color change on hover */ + } +} + +.tab.active { + /* color: var(--primary); */ /* Original - this would be overridden by the next color property */ + border-bottom-color: var(--primary); + background: var(--primary); + color: var(--text-on-primary); /* CORRECTED: Use text-on-primary for visibility */ +} + +.container__alphabets { + #english, + & #hindi { + scroll-margin-top: calc(var(--header-height) + 80px); + } +} + +/* Mobile View Adjustments */ +@media (max-width: 767px) { + .tabs { + gap: 0.2rem; + padding: 0.2rem; + flex-shrink: 1; + } + + .tab { + padding: 0.3rem 0.6rem; + font-size: 0.85rem; + border-radius: 0.25rem; + } + + /* Styles for the Help Icon in mobile view */ + + .your-help-icon-selector { + font-size: 1.1rem; + + width: 22px; + height: 22px; + + padding: 0.25rem; + + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + } +} + +@media (max-width: 480px) { + .tabs { + gap: 0.1rem; + padding: 0.1rem; + } + .tab { + padding: 0.2rem 0.4rem; + font-size: 0.75rem; + } + + .your-help-icon-selector { + font-size: 1rem; + + width: 18px; + height: 18px; + + padding: 0.2rem; + } +} diff --git a/src/assets/styles/varnmala/consonant.css b/src/assets/styles/varnmala/barahkhadi/consonant.css similarity index 92% rename from src/assets/styles/varnmala/consonant.css rename to src/assets/styles/varnmala/barahkhadi/consonant.css index bba95511..68d77899 100644 --- a/src/assets/styles/varnmala/consonant.css +++ b/src/assets/styles/varnmala/barahkhadi/consonant.css @@ -14,6 +14,12 @@ } } + & .back__link { + color: var(--primary); + text-decoration: none; + font-size: 1.2rem; + } + & .combinations__grid { display: grid; grid-template-columns: repeat(5, 1fr); diff --git a/src/assets/styles/varnmala/barahkhadi.css b/src/assets/styles/varnmala/barahkhadi/index.css similarity index 99% rename from src/assets/styles/varnmala/barahkhadi.css rename to src/assets/styles/varnmala/barahkhadi/index.css index 2f7b31cd..f117b85d 100644 --- a/src/assets/styles/varnmala/barahkhadi.css +++ b/src/assets/styles/varnmala/barahkhadi/index.css @@ -145,7 +145,6 @@ color: var(--text); border: 1px solid var(--border); } - & .variations__grid::-webkit-scrollbar { display: none; } diff --git a/src/assets/styles/varnmala/greek-alphabet.css b/src/assets/styles/varnmala/greek-alphabet.css new file mode 100644 index 00000000..1339a726 --- /dev/null +++ b/src/assets/styles/varnmala/greek-alphabet.css @@ -0,0 +1,96 @@ +.alphabet-page-container { + padding: 1rem 1.5rem; + max-width: 1300px; + margin: 0 auto; + font-family: var(--font-family-sans, sans-serif); +} + +.page-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--border); +} + +.page-header .page-main-title { + margin: 0; + font-size: clamp(1.8rem, 4vw, 2.5rem); + color: var(--text-heading, var(--text, #333)); + font-weight: 700; + flex-grow: 1; + text-align: center; +} + +.flip__all__button { + background-color: var(--background); + border: none; + padding: 0.5rem 1rem; + border-radius: 0.5rem; + font-weight: 200; + margin: 1rem 0; + cursor: pointer; + transition: all 0.3s ease; + align-self: flex-end; +} + +.flip__all__button:hover { + transform: translateY(-2px); +} + +& .flip__all__button.active { + transform: scale(0.95); + background-color: color-mix(in srgb, var(--primary) 70%, black 30%); +} + +.grid-container.alphabet-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); /* Adjust minmax as per LetterCard size */ + gap: 1.75rem; + padding-top: 1.5rem; +} + +@media (max-width: 1024px) { + .grid-container.alphabet-grid { + grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); + gap: 1.5rem; + } +} + +@media (max-width: 768px) { + .page-header { + flex-direction: column; + align-items: stretch; + } + .page-header .page-main-title { + order: -1; + width: 100%; + margin-bottom: 1rem; + text-align: center; + } + .flip__all__button { + width: auto; + align-self: center; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + } + + .page-header .back-button-container { + align-self: center; + } + .grid-container.alphabet-grid { + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + gap: 1.25rem; + } +} + +@media (max-width: 480px) { + .alphabet-page-container { + padding: 1rem 1rem; + } + .grid-container.alphabet-grid { + grid-template-columns: 1fr; + gap: 1rem; + } +} diff --git a/src/assets/styles/varnmala/months.css b/src/assets/styles/varnmala/months.css new file mode 100644 index 00000000..96e55fdd --- /dev/null +++ b/src/assets/styles/varnmala/months.css @@ -0,0 +1,495 @@ +.container__months-page { + max-width: 1200px; + margin: 0 auto; + padding: 2rem 1.5rem; + background-color: var(--background); + color: var(--text); +} + +.page-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--border); +} + +.page-header h1 { + flex-grow: 1; + font-size: clamp(1.8rem, 5vw, 2.5rem); + color: var(--text); + margin: 0; +} + +.months-toggle-buttons { + display: flex; + justify-content: center; + margin-bottom: 1.5rem; + gap: 1rem; +} + +.toggle-button { + padding: 0.75rem 1.5rem; + font-size: 1rem; + font-weight: 500; + border: 2px solid transparent; + border-bottom: none; + background-color: var(--background-alt, transparent); + color: var(--text-secondary, var(--text)); + border-radius: 0.5rem 0.5rem 0 0; + cursor: pointer; + transition: + background-color 0.2s ease, + color 0.2s ease, + border-color 0.2s ease; + margin-bottom: -2px; + position: relative; +} + +.toggle-button:hover:not([disabled]) { + color: var(--primary); + background-color: var(--background-hover, color-mix(in srgb, var(--background) 85%, var(--primary) 15%)); +} + +.toggle-button.active { + background-color: color-mix(in srgb, var(--background) 97%, var(--text) 3%); + color: var(--primary); + border-color: var(--border); + border-bottom-color: color-mix(in srgb, var(--background) 97%, var(--text) 3%); + font-weight: 600; +} + +.toggle-button[disabled] { + color: color-mix(in srgb, var(--text) 50%, transparent); + cursor: not-allowed; + background-color: transparent; +} + +.months-content-pane { + display: none; + padding: 2rem 1.5rem; + background-color: color-mix(in srgb, var(--background) 97%, var(--text) 3%); + border-radius: 0 0 0.5rem 0.5rem; + border: 2px solid var(--border); + border-top: none; + min-height: 400px; +} + +.months-content-pane.active { + display: block; + animation: fadeInPane 0.4s ease-out; +} + +@keyframes fadeInPane { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +.months-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 0.1px 1rem; + justify-content: center; + perspective: 1500px; +} + +.month-card { + min-height: 250px; + height: auto; + position: relative; + cursor: default; + margin: 4px; +} + +.month-card-inner { + position: relative; + width: 100%; + height: 100%; + text-align: center; + transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); + transform-style: preserve-3d; + border-radius: 0.5rem; +} + +.month-card-inner.is-flipped { + transform: rotateY(180deg); +} + +.month-card-front { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + border-radius: 0.5rem; + box-shadow: 0 2px 4px color-mix(in srgb, var(--text) 10%, transparent); + border: 1px solid var(--border); + background-color: color-mix(in srgb, var(--secondary) 15%, var(--background) 85%); + color: var(--text); + overflow: hidden; + + display: flex; +} + +.card-flip-action-btn { + position: absolute; + top: 8px; + right: 8px; + padding: 0.3rem 0.6rem; + font-size: 0.75rem; + font-weight: 500; + background-color: var(--primary-light, color-mix(in srgb, var(--primary) 70%, white 30%)); + color: var(--primary-text, var(--text-on-primary, var(--background))); + border: 1px solid var(--primary, #007bff); + border-radius: 15px; + cursor: pointer; + z-index: 20; + transition: + background-color 0.2s ease, + transform 0.2s ease; +} + +.card-flip-action-btn:hover { + background-color: var(--primary, #1b6fc8); + color: var(--background); + transform: translateY(-1px); +} + +.month-card-front-content { + flex-grow: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 1rem; + box-sizing: border-box; + width: 100%; +} + +.month-card-back { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-radius: 0.5rem; + + padding: 50px 1rem 1rem 1rem; + box-shadow: 0 2px 6px color-mix(in srgb, var(--text) 15%, transparent); + border: 1px solid var(--border); + background-color: color-mix(in srgb, var(--primary) 20%, var(--background) 80%); + color: var(--text); + overflow: hidden; + transform: rotateY(180deg); + box-sizing: border-box; +} + +.month-card-back-content { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + flex-grow: 1; + box-sizing: border-box; +} + +.hindu-ordinal-text-on-back { + font-size: 1.7rem; + color: var(white, var(--background)); + margin: 0; + font-weight: 600; + line-height: 1.4; + text-align: center; + padding: 0 0.5rem; +} + +.calendar-on-card-grid { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 5px; + text-align: center; + width: 100%; + max-width: 260px; + margin: auto; + padding: 12px; + border-radius: 12px; + background-color: #cceeff; + box-shadow: + 0 4px 8px rgba(0, 0, 0, 0.1), + inset 0 0 5px rgba(255, 255, 255, 0.5); + border: 2px solid #aaddff; +} + +.calendar-on-card-grid .calendar-day { + padding: 6px 3px; + border-radius: 8px; + background-color: #ffffff; + color: #33475b; + min-height: 28px; + line-height: 28px; + font-size: 0.8rem; + font-weight: 600; + border: 1px solid #bee0f5; + transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.07); +} + +.calendar-on-card-grid .calendar-day:hover:not(.empty):not(.calendar-header) { + background-color: #ffeb99; + transform: scale(1.1) translateY(-2px); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); + color: #5c4033; +} + +.calendar-on-card-grid .calendar-header { + font-weight: 700; + background-color: #3d99e4; + color: #f5f2f1; + font-size: 0.7rem; + padding: 4px 0; + margin-bottom: 5px; + border-radius: 6px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); + + min-height: auto; + line-height: normal; + border: none; +} + +.calendar-on-card-grid .calendar-day.empty { + background-color: #e9f5ff; + border-color: #d0e0f0; + box-shadow: none; + opacity: 0.8; +} + +.calendar-on-card-grid .calendar-day.current-day { + background-color: #ff6b6b; + color: #ffffff; + font-weight: 700; + border: 2px solid #e05050; + transform: scale(1.2); + box-shadow: 0 0 12px rgba(255, 107, 107, 0.8); + z-index: 1; +} +.calendar-on-card-grid .calendar-day.current-day::before { + content: none; +} + +.calendar-on-card-grid .calendar-day.holiday-day { + background-color: #99e699; + color: #226622; + font-weight: 700; + border: 2px dashed #66cc66; + position: relative; +} +.calendar-on-card-grid .calendar-day.holiday-day::after { + content: "🎈"; + position: absolute; + top: -5px; + right: -3px; + font-size: 0.85rem; + line-height: 1; + transform: rotate(15deg); +} + +.calendar-on-card-grid .calendar-day.holiday-day.current-day { + background-color: #ff8c8c; + border-style: solid; + border-color: #e05050; +} +.calendar-on-card-grid .calendar-day.holiday-day.current-day::after { + color: #e05050; + transform: rotate(0deg); +} + +@media (max-width: 768px) { + .month-card { + min-height: 300px; + } + .calendar-on-card-grid { + gap: 4px; + padding: 10px; + max-width: 230px; + border-radius: 10px; + } + .calendar-on-card-grid .calendar-day { + min-height: 26px; + line-height: 26px; + font-size: 0.75rem; + border-radius: 6px; + } + .calendar-on-card-grid .calendar-header { + font-size: 0.65rem; + border-radius: 5px; + } + .calendar-on-card-grid .calendar-day.holiday-day::after { + font-size: 0.75rem; + top: -4px; + right: -2px; + } +} + +@media (max-width: 480px) { + .month-card { + min-height: 280px; + } + .calendar-on-card-grid { + max-width: 100%; + padding: 8px; + gap: 3px; + border-radius: 8px; + } + .calendar-on-card-grid .calendar-day { + min-height: 24px; + line-height: 24px; + font-size: 0.7rem; + border-radius: 5px; + } + .calendar-on-card-grid .calendar-header { + font-size: 0.6rem; + border-radius: 4px; + } + .calendar-on-card-grid .calendar-day.holiday-day::after { + font-size: 0.7rem; + top: -3px; + right: -1px; + } +} + +.flip__all__button { + background-color: var(--background); + border: none; + padding: 0.5rem 1rem; + border-radius: 0.5rem; + font-weight: 200; + margin: 1rem 0; + cursor: pointer; + transition: all 0.3s ease; + align-self: flex-end; +} + +.flip__all__button:hover { + transform: translateY(-2px); +} + +.flip__all__button.active { + transform: scale(0.95); + background-color: color-mix(in srgb, var(--primary) 70%, black 30%); +} + +.month-card .card { + max-height: 260px; +} +.flip__card { + width: 100%; + height: 100%; + perspective: 1000px; + min-height: 380px; +} +.flip__card { + min-height: 300px; +} +.month-card .card { + padding: 1rem; +} +.month-card .character { + font-size: clamp(1rem, 5vw, 2.5rem); +} +.month-card .text { + font-size: clamp(1rem, 2.5vw, 1.5rem); +} +.month-card .flipped__text { + font-size: clamp(1.2rem, 2.5vw, 1.6rem); +} +.calendar-on-card-grid { + max-width: 220px; + padding: 6px; + font-size: 0.65rem; +} +.calendar-on-card-grid .calendar-day { + min-height: 22px; + line-height: 22px; + min-height: 18px; + line-height: 18px; + font-size: 0.6rem; + padding: 0; +} + +/* Page Header adjustments */ +@media (max-width: 768px) { + .months-page-container .page-header { + flex-direction: column; + align-items: flex-start; + gap: 0.5rem; /* Add some space between stacked items */ + } + .months-page-container .page-main-title { + font-size: 1.8rem; /* Adjust title size */ + } + .months-page-container .flip__all__button { + align-self: flex-start; /* Align button to the start when stacked */ + margin-top: 0.5rem; + } +} + +/* Toggle Buttons adjustments */ +.months-toggle-buttons { + display: flex; + justify-content: center; + margin-bottom: 1.5rem; + gap: 1rem; +} + +.months-toggle-buttons .toggle-button { + padding: 0.6rem 1.2rem; + font-size: 0.9rem; +} + +@media (max-width: 480px) { + .months-toggle-buttons { + flex-direction: column; /* Stack buttons vertically */ + align-items: stretch; /* Make buttons full width */ + gap: 0.5rem; + } + .months-toggle-buttons .toggle-button { + width: 100%; + text-align: center; + } +} +@media (max-width: 1024px) { + .months-grid { + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); /* Adjust for tablets */ + } +} + +@media (max-width: 768px) { + .months-grid { + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + /* Or switch to 2 columns */ + /* grid-template-columns: repeat(2, 1fr); */ + } +} + +@media (max-width: 600px) { + /* More aggressive for smaller tablets / large phones */ + .months-grid { + grid-template-columns: 1fr; /* Single column for small mobile */ + } +} + +/* Ensure container has some padding */ +.months-page-container { + padding-left: 1rem; + padding-right: 1rem; +} diff --git a/src/assets/styles/number-grid.css b/src/assets/styles/varnmala/number.css similarity index 57% rename from src/assets/styles/number-grid.css rename to src/assets/styles/varnmala/number.css index a71233f6..8541d4b1 100644 --- a/src/assets/styles/number-grid.css +++ b/src/assets/styles/varnmala/number.css @@ -1,20 +1,45 @@ -.number__card { - width: 100%; - height: 300px; - position: relative; - background-color: color-mix(in srgb, var(--secondary) 15%, var(--background) 85%); - border-radius: 0.5rem; - display: grid; - place-items: center; - text-decoration: none; - transition: transform 0.2s ease; - overflow: hidden; - z-index: 1; +.page-header .page-main-title { + margin: 0; + font-size: clamp(1.8rem, 4vw, 2.5rem); + color: var(--text-heading, var(--text, #333)); + font-weight: 700; + flex-grow: 1; + text-align: center; +} +.container__numbers { + padding: 1rem; + height: calc(100vh - 5rem); + overflow-y: auto; + + & .numbers__grid { + display: grid; + gap: 1.25rem; + grid-template-columns: repeat(auto-fit, 300px); + justify-content: center; + margin-top: 1rem; + } + + & .number__card { + width: 300px; + height: 300px; + position: relative; + background-color: color-mix(in srgb, var(--secondary) 15%, var(--background) 85%); + border-radius: 0.5rem; + display: grid; + place-items: center; + text-decoration: none; + transition: transform 0.2s ease; + overflow: hidden; + z-index: 1; + } - :hover { + & .number__card:hover { transform: none; background-color: color-mix(in srgb, var(--primary) 15%, var(--background) 85%); transition: all 0.2s ease; + } + + & .number__card:hover { z-index: 1000; } @@ -24,6 +49,14 @@ color: var(--text); } + & .number__link { + width: 100%; + height: 100%; + display: grid; + place-items: center; + text-decoration: none; + } + & .quick-view-btn { position: absolute; top: 8px; @@ -43,15 +76,15 @@ width: 32px; height: 32px; transition: all 0.2s ease; + } - &:hover { - background-color: color-mix(in srgb, var(--text) 15%, var(--background) 85%); - transform: scale(1.05); - } + & .quick-view-btn:hover { + background: color-mix(in srgb, var(--text) 15%, var(--background) 85%); + transform: scale(1.05); + } - &:active { - transform: scale(0.95); - } + & .quick-view-btn:active { + transform: scale(0.95); } & .multiplication__popover { @@ -63,7 +96,7 @@ width: 100%; height: 100%; padding: 0.75rem; - background-color: var(--background); + background: var(--background); border: 1px solid var(--border); border-radius: 0.5rem; box-shadow: 0 4px 12px color-mix(in srgb, var(--text) 15%, transparent); @@ -78,10 +111,9 @@ z-index: 1; } - &[data-active="true"] .multiplication__popover { + & .number__card[data-active="true"] .multiplication__popover { visibility: visible; opacity: 1; - display: flex; } & .variations__grid { @@ -100,10 +132,5 @@ border-radius: 4px; color: var(--text); border: 1px solid var(--border); - font-family: auto; - - &:hover { - background-color: color-mix(in srgb, var(--text) 15%, var(--background) 85%); - } } } diff --git a/src/assets/styles/varnmala/reader.css b/src/assets/styles/varnmala/reader.css index c5ded616..07fea9ea 100644 --- a/src/assets/styles/varnmala/reader.css +++ b/src/assets/styles/varnmala/reader.css @@ -34,22 +34,16 @@ } .mute-button { - display: flex; + font-size: 1.5; border: 1px solid #6767d3; + cursor: pointer; width: min(3em, 15vw); - height: min(2em, 6vw); - items: center; + height: min(3em, 15vw); + display: flex; + align-items: center; justify-content: center; border-radius: 5px; - align-items: center; - background-color: transparent; -} - -.mute-button-audio.mute { - background-color: var(--mute-button__bg); - color: #fff; - border-color: #ff61d5; } .mute-button-audio::before { @@ -60,6 +54,82 @@ content: "\1F507"; } +/* .speaker { + padding-inline: 1rem; + display: flex; + flex-basis: fit-content; + flex-grow: 1; + margin: auto; + justify-content: space-between; + gap: 4px; + cursor: pointer; +} + +.speaker > span { + padding: 0.5rem; + border: 1px solid var(--primary); + border-radius: 5px; +} + +.speaker span.active { + background-color: var(--primary); + color: white; +} */ + +/* .voices-dropdown { + position: relative; + display: inline-block; + margin-left: 1rem; +} + +.voices-btn { + background-color: #ffc107; + color: #333; + border: none; + padding: 10px 18px; + font-size: 1rem; + font-weight: bold; + border-radius: 25px; + cursor: pointer; + transition: + background-color 0.2s ease, + transform 0.15s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); +} + +.voices-btn:hover { + background-color: #ffca2c; + transform: scale(1.03); +} + +.voices-btn:active { + transform: scale(0.98); +} + +.voices-options { + display: none; + position: absolute; + top: calc(100% + 8px); + left: 50%; + transform: translateX(-50%); + background-color: #fff; + border: 3px solid #ffc107; + border-radius: 15px; + min-width: 180px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); + z-index: 100; + padding: 8px 0; + overflow: hidden; +} + +.voices-options.show { + display: block; + animation: fadeInDropdown 0.2s ease-out; +} */ + .voices-dropdown { position: relative; display: inline-block; @@ -76,8 +146,7 @@ transition: background-color 0.3s ease, color 0.3s ease, - border-color 0.3s ease; - /* Smooth transitions */ + border-color 0.3s ease; /* Smooth transitions */ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } @@ -91,8 +160,7 @@ position: absolute; top: 100%; right: 0; - background-color: #f9f9f9; - /* Light background for options */ + background-color: #f9f9f9; /* Light background for options */ border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); @@ -123,13 +191,11 @@ background-color: #e0e0e0; font-weight: bold; } - @keyframes fadeInDropdown { from { opacity: 0; transform: translateX(-50%) translateY(-10px); } - to { opacity: 1; transform: translateX(-50%) translateY(0); diff --git a/src/assets/styles/varnmala/speak.css b/src/assets/styles/varnmala/speak.css index 47058cb8..76528c6a 100644 --- a/src/assets/styles/varnmala/speak.css +++ b/src/assets/styles/varnmala/speak.css @@ -66,24 +66,17 @@ } .mute-button { - display: flex; + font-size: 1.5; border: 1px solid #6767d3; + cursor: pointer; width: min(3em, 15vw); - height: min(2em, 6vw); - items: center; + height: min(3em, 15vw); + display: flex; + align-items: center; justify-content: center; border-radius: 5px; - align-items: center; - background-color: transparent; -} - -.mute-button-audio.mute { - background-color: hsla(255, 100%, 50%, 0.281); - color: #fff; - border-color: #ff61d5; } - .mute-button-audio::before { content: "\1F508"; } @@ -91,7 +84,6 @@ .mute-button-audio.mute::before { content: "\1F507"; } - /* Container styles */ .container__english { & .letter { @@ -122,19 +114,15 @@ transparent 4px ); } - &.bg-gradient3 { background: linear-gradient(135deg, #667eea, #764ba2); } - &.bg-gradient4 { background: linear-gradient(135deg, #2af598, #009efd); } - &.bg-gradient5 { background: linear-gradient(135deg, #f83600, #f9d423); } - &.bg-pattern2 { background-image: repeating-linear-gradient( 45deg, @@ -144,7 +132,6 @@ rgba(0, 0, 0, 0.05) 20px ); } - &.bg-pattern3 { background-image: repeating-radial-gradient( circle, diff --git a/src/assets/styles/varnmala/sunsign.css b/src/assets/styles/varnmala/sunsign.css new file mode 100644 index 00000000..7bad8133 --- /dev/null +++ b/src/assets/styles/varnmala/sunsign.css @@ -0,0 +1,95 @@ +.sun-sign-page-container { + padding: 1rem 1.5rem; + max-width: 1300px; + margin: 0 auto; + font-family: var(--font-family-sans, sans-serif); +} + +.page-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--border, #e0e0e0); + flex-wrap: wrap; + gap: 1rem; +} + +.page-header .page-main-title { + margin: 0; + font-size: clamp(1.8rem, 4vw, 2.5rem); + color: var(--text-heading, var(--text, #333)); + font-weight: 700; + flex-grow: 1; +} + +.flip__all__button { + background-color: var(--background); + border: none; + padding: 0.5rem 1rem; + border-radius: 0.5rem; + font-weight: 200; + margin: 1rem 0; + cursor: pointer; + transition: all 0.3s ease; + align-self: flex-end; +} + +.flip__all__button:hover { + transform: translateY(-2px); +} + +.flip__all__button.active { + transform: scale(0.95); + background-color: color-mix(in srgb, var(--primary) 70%, black 30%); +} + +.sun-signs-grid { + display: grid; + + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1.75rem; +} + +@media (max-width: 1024px) { + .sun-signs-grid { + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1.5rem; + } +} + +@media (max-width: 768px) { + .page-header { + flex-direction: column; + align-items: flex-start; + } + .page-header .page-main-title { + font-size: clamp(1.5rem, 5vw, 2rem); + width: 100%; + text-align: left; + } + .flip__all__button { + align-self: flex-start; + width: auto; + margin-top: 0.5rem; + } + .sun-signs-grid { + grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); + gap: 1.25rem; + } +} + +@media (max-width: 480px) { + .sun-sign-page-container { + padding: 1rem 1rem; + } + .sun-signs-grid { + grid-template-columns: 1fr; + gap: 1rem; + } + .flip__all__button { + width: 100%; + text-align: center; + } +} diff --git a/src/assets/styles/varnmala/write.css b/src/assets/styles/varnmala/write.css deleted file mode 100644 index 437a55c3..00000000 --- a/src/assets/styles/varnmala/write.css +++ /dev/null @@ -1,47 +0,0 @@ -.writing-panel-main { - display: flex; - justify-content: center; - width: 100%; -} - -.writing-panel-section { - background: rgb(62, 77, 104); - border-radius: 20px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12); - padding: 32px 48px; - width: 100%; - max-width: 1100px; - min-width: 400px; - display: flex; - flex-direction: column; - align-items: center; - box-sizing: border-box; -} - -.writing-panel-title { - font-size: 2.2rem; - color: #ff6b6b; - text-shadow: 2px 2px 0 #ffd166; - margin-bottom: 18px; - letter-spacing: 1px; - text-align: center; -} - -@media (max-width: 1200px) { - .writing-panel-section { - max-width: 98vw; - padding: 16px 6vw; - min-width: 0; - } -} - -@media (max-width: 600px) { - .writing-panel-section { - padding: 8px 2vw; - } - - .writing-panel-title { - font-size: 1.3rem; - margin-bottom: 10px; - } -} diff --git a/src/assets/styles/vedic.css b/src/assets/styles/vedic.css index e4672c46..e76016ca 100644 --- a/src/assets/styles/vedic.css +++ b/src/assets/styles/vedic.css @@ -39,12 +39,10 @@ --unit-card-h3: #1a237e; --unit-card-details: #37474f; } - .container__vedic { min-height: 100vh; padding: 3rem 1.5rem; } - .vedic__layout { max-width: 1200px; margin: 0 auto; @@ -141,7 +139,6 @@ font-size: 1.8rem; word-spacing: 6px; } - .disclaimer { max-width: 900px; margin: 2rem auto; @@ -169,7 +166,6 @@ opacity: 0; transform: translateY(10px); } - to { opacity: 1; transform: translateY(0); @@ -196,7 +192,6 @@ font-size: 0.85rem; } } - /* Converter Horizontal Layout */ .converter__horizontal { display: flex; @@ -208,10 +203,6 @@ margin-bottom: 2.5rem; border: 2px solid var(--border); background-color: color-mix(in srgb, var(--background) 97%, var(--text) 3%); - - & input { - padding: 1rem; - } } .converter__title { @@ -380,11 +371,9 @@ select:focus { .units__starfield span:nth-child(2) { transform: rotate(45deg); } - .units__starfield span:nth-child(3) { transform: rotate(69deg); } - .units__starfield span:nth-child(4) { transform: rotate(123deg); } @@ -412,14 +401,12 @@ select:focus { animation: fadeInScale 2s ease-out forwards; transform: scale(0.8); } - @keyframes fadeInScale { to { opacity: 1; transform: scale(1); } } - .timeline-wrapper { display: flex; flex-direction: column; @@ -471,7 +458,6 @@ select:focus { transform: scale(1.05) translateY(-5px); box-shadow: 0 10px 30px var(--unit-title-card-shadow-2); } - .unit__header { margin-bottom: 0.75rem; } @@ -499,7 +485,6 @@ select:focus { gap: 0.6rem; font-weight: 500; } - /* Animations */ @keyframes gradient { 0% { @@ -574,7 +559,6 @@ select:focus { .units__title { padding: 0 1rem; } - .timeline-wrapper { /* Add padding-top for mobile */ padding-top: 1.5rem; @@ -584,14 +568,12 @@ select:focus { gap: 60px; min-height: auto; } - .timeline-node { width: 90%; max-width: 280px; transform: none !important; align-self: auto; } - .timeline-card { min-height: 120px; padding: 1rem; @@ -610,7 +592,6 @@ select:focus { font-size: 1.1em; } } - @media (max-width: 480px) { .date-format { font-size: 1.2rem; @@ -621,7 +602,6 @@ select:focus { margin-bottom: 5rem; font-size: 3rem; } - .unit__header h3 { font-size: 1.5rem; } @@ -631,7 +611,6 @@ select:focus { gap: 0.4rem; } } - /* Custom scrollbar */ .units__timeline-container::-webkit-scrollbar { width: 8px; diff --git a/src/assets/styles/zodiac.css b/src/assets/styles/zodiac.css deleted file mode 100644 index 31fa5430..00000000 --- a/src/assets/styles/zodiac.css +++ /dev/null @@ -1,259 +0,0 @@ -:root { - --primary-color: #7b1fa2; - --secondary-color: rgba(161, 10, 144, 0.72); - --text-color: #f5f5f5; - --bg-color1: #121212; - --bg-color2: #1e1e1e; - --card-bg: #1e1e1e; - --header-bg: #1e1e1e; - --footer-social-bg: #33353d; -} -[data-theme="dark"] { - --primary-color: #7b1fa2; - --secondary-color: rgba(161, 10, 144, 0.72); - --text-color: #f5f5f5; - --bg-color1: #121212; - --bg-color2: #1e1e1e; - --card-bg: #1e1e1e; - --header-bg: #1e1e1e; - --footer-social-bg: #33353d; -} -[data-theme="light"] { - --primary-color: #f12711; - --secondary-color: #f5af19; - --text-color: #333; - --bg-color1: #eef2f3; - --bg-color2: #e4cece; - --card-bg: #ffffff; - --header-bg: #ffffff; - --footer-social-bg: #e4cece; -} - -.controls { - display: flex; - gap: 1rem; - margin-top: 5rem; - align-items: center; - justify-content: center; -} - -/* Language Selector Buttons */ -.language-buttons { - display: flex; - gap: 0.5rem; -} - -.language-btn { - padding: 0.5rem 1rem; - border: none; - border-radius: 6px; - cursor: pointer; - background-color: var(--card-bg); - color: var(--text-color); - border: 1px solid var(--primary-color); - transition: all 0.3s ease; -} - -.language-btn.active { - background: linear-gradient(to right, var(--primary-color), var(--secondary-color)); - color: white; -} - -article { - padding: 2rem; - max-width: 1200px; - margin: 0 auto; -} - -/* Grid Layout for Zodiacs */ -.grid-container { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1.5rem; - margin-top: 2rem; -} - -.card { - background-color: var(--card-bg); - border-radius: 8px; - padding: 1rem; - text-align: center; - cursor: pointer; - transition: - transform 0.2s, - box-shadow 0.2s; - box-shadow: 0 2px 5px var(--primary-color); - aspect-ratio: 1/1; - display: flex; - flex-direction: column; - justify-content: center; - position: relative; - /* max-height: 350px; */ -} - -.card:hover { - transform: translateY(-5px); - box-shadow: 0 25px 75px var(--primary-color); -} - -.modal { - display: none; - position: fixed; - z-index: 1000; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.7); - overflow-y: auto; -} -.body-no-scroll { - overflow: hidden; - position: fixed; - width: 100%; -} - -.modal-content { - background-color: var(--card-bg); - margin: 20px auto; - padding: 1rem; - border-radius: 8px; - width: 90%; - max-width: 600px; - position: relative; - overflow-y: auto; - max-height: 80vh; - scrollbar-width: none; - -ms-overflow-style: none; - box-sizing: border-box; -} - -.close { - position: absolute; - right: 1rem; - top: 1rem; - font-size: 1.5rem; - cursor: pointer; -} - -#modalImage { - width: 100%; - max-height: 500px; - object-fit: fill; - margin-bottom: 1rem; - border-radius: 2%; -} -#modalImage:hover { - transform: translateY(-5px); - box-shadow: 0 5px 15px var(--primary-color); -} -/* Responsive Adjustments */ -@media (max-width: 768px) { - .grid-container { - grid-template-columns: repeat(2, 1fr); - } - - .controls { - width: 100%; - justify-content: space-between; - } - .modal-content { - width: 95%; - padding: 15px; - } - .close { - right: 15px; - top: 15px; - } -} - -@media (max-width: 480px) { - .grid-container { - grid-template-columns: 1fr; - } - .modal-content { - width: 98%; - padding: 12px; - } - .close { - right: 10px; - top: 10px; - font-size: 20px; - } - .footer-col { - width: 100%; - } -} -#modalEvents { - list-style-type: none; - padding-left: 0; -} - -#modalEvents li { - margin-bottom: 0.5rem; - position: relative; - padding-left: 1.5rem; -} - -#modalEvents li:before { - content: "•"; - color: var(--primary-color); - position: absolute; - left: 0; -} -#page-container { - min-height: 100vh; - background: linear-gradient(to right, var(--bg-color1), var(--bg-color2)); -} -#modalPoints { - list-style-type: none; - padding-left: 0; -} - -#modalPoints li { - margin-bottom: 0.5rem; - position: relative; - padding-left: 1.5rem; -} - -#modalPoints li:before { - content: "•"; - color: var(--primary-color); - position: absolute; - left: 0; -} -.page-no-scroll { - overflow: hidden; -} -@media (max-width: 768px) { - .controls { - flex-wrap: wrap; /* Allow elements to wrap */ - gap: 0.8rem; - justify-content: space-between; - width: 100%; - } -} - -@media (max-width: 480px) { - .controls { - flex-direction: column; - align-items: stretch; - gap: 0.5rem; - } - - .language-buttons { - order: 1; - justify-content: space-between; - } -} -.info-btn { - background: none; - border: none; - cursor: pointer; - position: absolute; - top: 0.5rem; - right: 1rem; - font-size: 1.2rem; - color: var(--primary-color, #f12711); - z-index: 2; -} diff --git a/src/components/Alphabet.astro b/src/components/Alphabet.astro index 8c260f76..c6297f35 100644 --- a/src/components/Alphabet.astro +++ b/src/components/Alphabet.astro @@ -3,16 +3,16 @@ import "@/assets/styles/alphabet.css"; import Letter from "@/components/Letter.astro"; import type { LetterEntity } from "@/types"; -interface Props { +type Props = { title: string; list: LetterEntity[]; -} +}; const { title, list } = Astro.props; ---
    -

    {title}

    +

    {title}

    {list.map((item) => )}
    diff --git a/src/components/BackButton.astro b/src/components/BackButton.astro index 5bc4946d..98cabc64 100644 --- a/src/components/BackButton.astro +++ b/src/components/BackButton.astro @@ -1,21 +1,13 @@ - + diff --git a/src/components/Capital.astro b/src/components/Capital.astro index 6a4e99c8..c42c4bde 100644 --- a/src/components/Capital.astro +++ b/src/components/Capital.astro @@ -1,10 +1,10 @@ --- -import "@/assets/styles/capital.css"; -import SearchIcon from "@/assets/icons/search.svg"; -interface Props { +export interface Props { stateList: any[]; utList: any[]; } +import "@/assets/styles/capital.css"; +import Back from "@/components/Back.astro"; const { stateList, utList } = Astro.props; function getColorClass(index: number) { @@ -22,23 +22,31 @@ function getColorClass(index: number) { } --- -
    -
    -

    India's Geographical Mosaic

    -
    +
    + +
    - diff --git a/src/components/ClanCard.astro b/src/components/Card.astro similarity index 99% rename from src/components/ClanCard.astro rename to src/components/Card.astro index d3db17a9..1132ef6f 100644 --- a/src/components/ClanCard.astro +++ b/src/components/Card.astro @@ -1,5 +1,5 @@ --- -import "@/assets/styles/clan-card.css"; +import "@/assets/styles/card.css"; import "@/assets/styles/pdf.css"; import { colors } from "@/utils/constants"; diff --git a/src/components/CardLayout.astro b/src/components/CardLayout.astro deleted file mode 100644 index c318d3fa..00000000 --- a/src/components/CardLayout.astro +++ /dev/null @@ -1,33 +0,0 @@ ---- -import "@/assets/styles/card-layout.css"; -import type { CardSectionType } from "@/types/alphabet"; -const { section } = Astro.props; - -type Props = { section: CardSectionType }; ---- - -
    -
    - {section.icon &&
    {section.icon}
    } -

    {section.title}

    -

    {section.description}

    -
    - -
    diff --git a/src/components/ControllerContainer.astro b/src/components/ControllerContainer.astro deleted file mode 100644 index 0d8c3d0e..00000000 --- a/src/components/ControllerContainer.astro +++ /dev/null @@ -1,75 +0,0 @@ ---- -import ImageIcon from "@/assets/icons/image.svg"; ---- - -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - diff --git a/src/components/CustomCircle.astro b/src/components/CustomCircle.astro new file mode 100644 index 00000000..484ced2a --- /dev/null +++ b/src/components/CustomCircle.astro @@ -0,0 +1,18 @@ +--- +const { letter } = Astro.props; +--- + + + + ${letter[0]} + diff --git a/src/components/DrawKeyboard.astro b/src/components/DrawKeyboard.astro index 2d568b79..932f27b4 100644 --- a/src/components/DrawKeyboard.astro +++ b/src/components/DrawKeyboard.astro @@ -23,6 +23,15 @@ import Keyboard from "@/components/Keyboard.astro";
    + + @@ -618,6 +645,101 @@ import Keyboard from "@/components/Keyboard.astro"; } } + .popup-overlay { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.6); + z-index: 1000; + justify-content: center; + align-items: center; + backdrop-filter: blur(4px); + } + + .popup { + background: white; + padding: 1rem; + border-radius: 16px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); + text-align: center; + max-width: 350px; + width: 50%; + animation: popupSlideIn 0.3s ease-out; + border: 5px solid #ff0000; + } + + @keyframes popupSlideIn { + from { + opacity: 0; + transform: scale(0.9) translateY(-20px); + } + to { + opacity: 1; + transform: scale(1) translateY(0); + } + } + + .popup-icon { + font-size: 3rem; + margin-bottom: 1rem; + } + + .popup h3 { + color: #2563eb; + margin-bottom: 1rem; + font-size: 1.5rem; + } + + .popup p { + color: #374151; + margin-bottom: 1rem; + line-height: 1.5; + } + + .pressed-key { + color: #2563eb; + background: transparent; + padding: 0.1rem 0.1rem; + border-radius: 0.25rem; + font-family: monospace; + } + + .valid-keys { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin-bottom: 1.5rem; + } + + .key-group { + background: rgb(201, 203, 205); + padding: 0.5rem; + border-radius: 0.5rem; + font-family: monospace; + font-size: 0.9rem; + color: #374151; + } + + .popup-close { + background: #2563eb; + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 0.5rem; + font-size: 1rem; + cursor: pointer; + transition: var(--transition); + font-weight: 500; + } + + .popup-close:hover { + background: rgba(15, 23, 42, 0.7); + transform: translateY(-2px); + } + @media (max-width: 1024px) { .header-container { flex-direction: column; diff --git a/src/components/GameCard.astro b/src/components/GameCard.astro index 0183ec71..560f5b1a 100644 --- a/src/components/GameCard.astro +++ b/src/components/GameCard.astro @@ -9,11 +9,12 @@ interface Props { const { title, description, cardType, href } = Astro.props; --- - -
    - - + +
    +
    + {cardType === "grid" ? : } +
    +

    {title}

    +

    {description}

    -

    {title}

    -

    {description}

    diff --git a/src/components/Header.astro b/src/components/Header.astro deleted file mode 100644 index 863fce33..00000000 --- a/src/components/Header.astro +++ /dev/null @@ -1,10 +0,0 @@ ---- -import LanguageSwitcher from "./LanguageSwitcher.astro"; ---- - -
    -

    Nakshtra Nexus

    -
    - -
    -
    diff --git a/src/components/Help.astro b/src/components/Help.astro index 3b909594..fce577e1 100644 --- a/src/components/Help.astro +++ b/src/components/Help.astro @@ -29,6 +29,9 @@ const { title, description } = Astro.props; } + + +
    ?
    @@ -57,6 +60,26 @@ const { title, description } = Astro.props; diff --git a/src/components/IndiaMap.astro b/src/components/IndiaMap.astro index 8fd0bcdb..87e446b5 100644 --- a/src/components/IndiaMap.astro +++ b/src/components/IndiaMap.astro @@ -1,5 +1,5 @@ --- -import stateJson from "@/data/state.json"; +import stateJson from "@/assets/json/state.json"; import BackButton from "@/components/BackButton.astro"; --- diff --git a/src/components/IndicLanguageGrid.astro b/src/components/IndicLanguageGrid.astro deleted file mode 100644 index 2779f154..00000000 --- a/src/components/IndicLanguageGrid.astro +++ /dev/null @@ -1,207 +0,0 @@ ---- -import { - englishVowels, - englishConsonants, - allAlphabet, - letterPairs, - languages, - getLetterForLanguage -} from "@/utils/languageLetters"; -import "@/assets/styles/indic.css"; - -const { primary, secondary } = Astro.props; ---- - -
    -
    -
    - - - - -
    -
    - -
    -

    VOWELS

    - { - letterPairs - .filter((pair) => pair.type === "vowel") - .map((pair, index) => ( -
    -
    {getLetterForLanguage(pair, primary)}
    -
    {getLetterForLanguage(pair, secondary)}
    -
    - )) - } - -
    - -

    CONSONANTS

    - { - letterPairs - .filter((pair) => pair.type === "consonant") - .map((pair, index) => ( -
    -
    {getLetterForLanguage(pair, primary)}
    -
    {getLetterForLanguage(pair, secondary)}
    -
    - )) - } -
    - -
    diff --git a/src/components/IndicLetters.astro b/src/components/IndicLetters.astro new file mode 100644 index 00000000..2cfb4731 --- /dev/null +++ b/src/components/IndicLetters.astro @@ -0,0 +1,244 @@ +--- +import { + englishVowels, + englishConsonants, + allAlphabet, + letterPairs, + languages, + languages2, + selectedLanguage1, + selectedLanguage2, + getLetterForLanguage +} from "@/utils/languageLetters.ts"; +import BackIcon from "@/components/Back.astro"; +import "@/assets/styles/indic.css"; +--- + +
    +
    + +
    + + + + +
    +
    + +
    +

    VOWELS

    + { + letterPairs + .filter((pair) => pair.type === "vowel") + .map((pair, index) => ( +
    +
    {getLetterForLanguage(pair, selectedLanguage1)}
    +
    {getLetterForLanguage(pair, selectedLanguage2)}
    +
    + )) + } + +
    + +

    CONSONANTS

    + { + letterPairs + .filter((pair) => pair.type === "consonant") + .map((pair, index) => ( +
    +
    {getLetterForLanguage(pair, selectedLanguage1)}
    +
    {getLetterForLanguage(pair, selectedLanguage2)}
    +
    + )) + } +
    + +
    +
    + +
    + +
    +
    +
    +
    + diff --git a/src/components/Keyboard.astro b/src/components/Keyboard.astro index c1a1773e..95b0aa8a 100644 --- a/src/components/Keyboard.astro +++ b/src/components/Keyboard.astro @@ -1,5 +1,5 @@ --- -import "@/assets/styles/keyboard.css"; +import "@/assets/styles/Keyboard.css"; const rows = [ ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], ["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"], diff --git a/src/components/LanguageSwitcher.astro b/src/components/LanguageSwitcher.astro deleted file mode 100644 index 11a4178c..00000000 --- a/src/components/LanguageSwitcher.astro +++ /dev/null @@ -1,20 +0,0 @@ ---- -export const setLang = `(lang) => { - localStorage.setItem('language', lang); - document.documentElement.lang = lang === 'hindi' ? 'hi' : 'en'; - document.body.classList.toggle('hindi', lang === 'hindi'); - window.dispatchEvent(new Event('languagechange')); -}`; ---- - -
    - - -
    - diff --git a/src/components/Letter.astro b/src/components/Letter.astro index 192fa0b0..9087dc80 100644 --- a/src/components/Letter.astro +++ b/src/components/Letter.astro @@ -2,9 +2,9 @@ import type { LetterEntity } from "@/types"; import CopyIcon from "@/assets/icons/copy.svg"; -interface Props { +type Props = { item: LetterEntity; -} +}; const { item: { letter, code } diff --git a/src/components/LetterCard.astro b/src/components/LetterCard.astro index ebcb5741..cdd9e262 100644 --- a/src/components/LetterCard.astro +++ b/src/components/LetterCard.astro @@ -1,17 +1,12 @@ --- import { type AlphabetEntry } from "@/types/alphabet.ts"; -import "@/assets/styles/letter-card.css"; - interface Props { - class?: string; item: AlphabetEntry; category: string; } -const { class: className, ...rest } = Astro.props; - -const { item, category } = rest as Props; +const { item, category } = Astro.props; ---
    @@ -21,7 +16,7 @@ const { item, category } = rest as Props; Flip Card
    -

    {item.letter}

    +

    {item.letter}

    {item.text}

    @@ -29,9 +24,9 @@ const { item, category } = rest as Props;
    -
    +
    - Flip Card + Flip Card
    { item.image ? ( @@ -45,13 +40,241 @@ const { item, category } = rest as Props;
    + + + + + diff --git a/src/components/MathPractice.astro b/src/components/MathForm.astro similarity index 84% rename from src/components/MathPractice.astro rename to src/components/MathForm.astro index 13702480..f0a787ef 100644 --- a/src/components/MathPractice.astro +++ b/src/components/MathForm.astro @@ -1,7 +1,5 @@ --- import "@/assets/styles/math.css"; - -import FloralIcon from "@/assets/icons/floral.svg"; ---
    @@ -39,7 +37,6 @@ import FloralIcon from "@/assets/icons/floral.svg"; class="number output" placeholder="?" autofocus - autocomplete="off" />
    @@ -55,7 +52,8 @@ import FloralIcon from "@/assets/icons/floral.svg"; {/* ADD THIS: Fullscreen Celebration Container */}
    - + {} + {}
    @@ -73,8 +71,8 @@ import FloralIcon from "@/assets/icons/floral.svg"; currentOperator: "+", score: 0, scoreIncrement: 10, - isAnswerCorrect: false, - debounceTimer: null as NodeJS.Timeout | null + isAnswerCorrect: false + // jsDrivenOutputValue: "" }; function initMathPractice() { @@ -87,12 +85,6 @@ import FloralIcon from "@/assets/icons/floral.svg"; } function updateNumbers() { - // Clear any existing debounce timer - if (state.debounceTimer) { - clearTimeout(state.debounceTimer); - state.debounceTimer = null; - } - let first, second; if (state.currentOperator === "×") { @@ -118,6 +110,12 @@ import FloralIcon from "@/assets/icons/floral.svg"; secondInput.value = second.toString(); if (operatorDisplay) operatorDisplay.textContent = state.currentOperator; + // output.value = ""; + // state.jsDrivenOutputValue = ""; + // output.style.textAlign = 'center'; // Ensure placeholder and initial state is centered + // resultIndicator.innerHTML = ""; + // resultIndicator.className = "result-indicator"; + output.value = ""; resultIndicator.innerHTML = ""; @@ -190,24 +188,6 @@ import FloralIcon from "@/assets/icons/floral.svg"; } } - function debouncedCheckAnswer() { - // Clear any existing timer - if (state.debounceTimer) { - clearTimeout(state.debounceTimer); - } - - // Clear the result indicator immediately when user starts typing - resultIndicator.innerHTML = ""; - if (nextButton) { - nextButton.disabled = true; - } - - // Set a new timer for 1 seconds - state.debounceTimer = setTimeout(() => { - checkAnswer(); - }, 1000); - } - function setOperator(op: string) { state.currentOperator = op; if (operatorDisplay) operatorDisplay.textContent = op; @@ -219,7 +199,7 @@ import FloralIcon from "@/assets/icons/floral.svg"; e.target.value = e.target.value.replace(/[^0-9]/g, ""); if (output.value.length > 0) { - debouncedCheckAnswer(); + checkAnswer(); } else { resultIndicator.innerHTML = ""; resultIndicator.className = "result-indicator"; @@ -245,6 +225,18 @@ import FloralIcon from "@/assets/icons/floral.svg"; } function triggerCelebration() { + fullscreenCelebration.innerHTML = ""; + const emojiCount = 30; + const emojis = ["🎉", "⭐", "🎉", "🎈", "🥳", "✨", "🎊", "❤️", "😍", "🥳"]; + for (let i = 0; i < emojiCount; i++) { + const emojiParticle = document.createElement("span"); + emojiParticle.className = "emoji-particle"; + emojiParticle.textContent = emojis[Math.floor(Math.random() * emojis.length)]; + emojiParticle.style.left = Math.random() * 100 + "%"; + emojiParticle.style.top = Math.random() * 100 + "%"; + emojiParticle.style.animationDelay = Math.random() * 0.5 + "s"; + fullscreenCelebration.appendChild(emojiParticle); + } fullscreenCelebration.classList.add("celebration-active"); setTimeout(() => { fullscreenCelebration.classList.remove("celebration-active"); @@ -255,8 +247,13 @@ import FloralIcon from "@/assets/icons/floral.svg"; diff --git a/src/components/MobileSplash.astro b/src/components/MobileSplash.astro deleted file mode 100644 index 876e84e7..00000000 --- a/src/components/MobileSplash.astro +++ /dev/null @@ -1,25 +0,0 @@ ---- -import "@/assets/styles/MobileSplash.css"; -import { Image } from "astro:assets"; -import logoImage from "public/assets/images/ABCD.png"; -const githubUrl = "https://github.com/recursivezero/abcd"; -const siteUrl = "https://abcdkbd.com"; ---- - -
    -
    - logo of abcd. -

    abcdkbd is best experienced on desktop

    -

    - Revisit on desktop to check out abcdkbd.com. We will optimize for mobile soon. Stay tuned… -

    - -
    -
    diff --git a/src/components/MonthCard.astro b/src/components/MonthCard.astro new file mode 100644 index 00000000..4544c9fb --- /dev/null +++ b/src/components/MonthCard.astro @@ -0,0 +1,571 @@ +--- +// Define TypeScript interfaces for month data +interface EnglishMonth { + type: "english"; + name: string; + hindi: string; + monthIndex: number; +} + +interface IndianMonth { + type: "indian"; + name: string; + dates: string; + monthIndex: number; + displayName: string; + hinduOrdinalText: string; +} + +export type MonthEntry = EnglishMonth | IndianMonth; + +interface Holiday { + day: number; + month: number; + year: number; + name: string; +} + +interface Props { + item: MonthEntry; + currentYear: number; + nationalHolidaysData: Holiday[]; + parsedToday: Date; +} + +const { item, currentYear, nationalHolidaysData, parsedToday } = Astro.props; + +// Helper function to generate calendar HTML +function isHoliday(day: number, month: number, year: number, holidays: Holiday[]): Holiday | undefined { + return holidays.find((h) => h.day === day && h.month === month && h.year === year); +} + +function generateCalendarDaysHTML(monthIndex: number, year: number, holidays: Holiday[], todayDate: Date): string { + let html = ""; + const daysOfWeek = ["S", "M", "T", "W", "Th", "F", "S"]; + daysOfWeek.forEach((day) => { + html += `
    ${day}
    `; + }); + + const firstDayOfMonth = new Date(year, monthIndex, 1); + const startingDay = firstDayOfMonth.getDay(); + const daysInMonth = new Date(year, monthIndex + 1, 0).getDate(); + + for (let i = 0; i < startingDay; i++) { + html += '
    '; + } + + for (let day = 1; day <= daysInMonth; day++) { + let dayClass = "calendar-day"; + const holidayInfo = isHoliday(day, monthIndex, year, holidays); + + if (year === todayDate.getFullYear() && monthIndex === todayDate.getMonth() && day === todayDate.getDate()) { + dayClass += " current-day"; + } + if (holidayInfo) { + dayClass += " holiday-day"; + } + + html += `
    ${day}
    `; + } + return html; +} +--- + +
    +
    +
    +
    + Flip Card +
    +
    + {item.type === "english" &&

    {item.name}

    } + {item.type === "indian" &&

    {item.name}

    } +
    +
    + { + item.type === "english" && ( + <> +

    {item.hindi}

    + + ) + } + { + item.type === "indian" && ( + <> +

    {item.displayName}

    + + ) + } +
    +
    +
    +
    +
    + Flip Card +
    +
    + {} + { + item.type === "english" && ( + <> +
    + + ) + } + { + item.type === "indian" && ( + <> +

    {item.hinduOrdinalText}

    + {/*

    {item.hinduOrdinalText}

    +

    {item.dates}

    */} + + ) + } +
    +
    +
    +
    +
    + + + + + + diff --git a/src/components/NumberGrid.astro b/src/components/NumberGrid.astro deleted file mode 100644 index cbe528fb..00000000 --- a/src/components/NumberGrid.astro +++ /dev/null @@ -1,32 +0,0 @@ ---- -import "@/assets/styles/number-grid.css"; -type Props = { - number: number; - numbers: number[]; -}; - -const { number, numbers }: Props = Astro.props; ---- - -
    - {number} - -
    -
    - {numbers.map((multiplier) =>
    {number * multiplier}
    )} -
    -
    -
    - - diff --git a/src/components/Popup.astro b/src/components/Popup.astro index f55dada4..eb5be413 100644 --- a/src/components/Popup.astro +++ b/src/components/Popup.astro @@ -1,28 +1,23 @@ ---- -import "@/assets/styles/map/popup.css"; ---- - - -
    -
    - diff --git a/src/layouts/BaseHead.astro b/src/layouts/BaseHead.astro index a775c249..1a001782 100755 --- a/src/layouts/BaseHead.astro +++ b/src/layouts/BaseHead.astro @@ -8,7 +8,7 @@ const { title, description, ogImage, articleDate } = Astro.props; const titleSeparator = "•"; const siteTitle = `${title} ${titleSeparator} ${siteConfig.title}`; const canonicalURL = new URL(Astro.url.pathname, Astro.site); -const socialImageURL = new URL(ogImage ? ogImage : "/assets/images/logo.png", Astro.url).href; +const socialImageURL = new URL(ogImage ? ogImage : "/profile-placeholder.jpg", Astro.url).href; --- @@ -17,11 +17,11 @@ const socialImageURL = new URL(ogImage ? ogImage : "/assets/images/logo.png", As {siteTitle} {/* Icons / Favicon */} - - - - - + + + + + {/* Primary Meta Tags */} @@ -29,11 +29,6 @@ const socialImageURL = new URL(ogImage ? ogImage : "/assets/images/logo.png", As -{/* Additional Meta Tags */} - - - - {/* Theme Color */} @@ -46,7 +41,6 @@ const socialImageURL = new URL(ogImage ? ogImage : "/assets/images/logo.png", As - { @@ -59,14 +53,12 @@ const socialImageURL = new URL(ogImage ? ogImage : "/assets/images/logo.png", As } {/* Twitter */} - + - - - + {/* Sitemap */} diff --git a/src/layouts/common/Menu.astro b/src/layouts/common/Menu.astro index d9396dd7..78c67ed5 100644 --- a/src/layouts/common/Menu.astro +++ b/src/layouts/common/Menu.astro @@ -3,6 +3,7 @@ import "@/assets/styles/menu.css"; import HamIcon from "@/assets/icons/ham.svg"; import ArrowIcon from "@/assets/icons/arrow.svg"; import ToggleIcon from "@/assets/icons/toggle.svg"; + import Navigation from "@/layouts/Navigation"; import { NavbarLinks } from "@/utils/constants"; --- @@ -39,7 +40,6 @@ import { NavbarLinks } from "@/utils/constants"; const placer = document.querySelector(".placement-toggle") as HTMLButtonElement; const hider = document.querySelector(".hider") as HTMLElement; const minimizeBtn = document.querySelector(".minimize-toggle") as HTMLButtonElement; - const nav = document.querySelector("#nav") as HTMLElement; let debounce: number | undefined; document.documentElement.dataset.resizing = String(false); @@ -75,12 +75,11 @@ import { NavbarLinks } from "@/utils/constants"; popover?.addEventListener("toggle", () => { document.documentElement.dataset.complete = String(false); document.documentElement.style.setProperty("--complete", "0"); - nav.classList.remove("minimized"); - popover.style.setProperty("--ty", "0"); }); minimizeBtn?.addEventListener("click", () => { + const nav = document.querySelector("#nav") as HTMLElement; if (nav && minimizeBtn) { nav.classList.toggle("minimized"); minimizeBtn.classList.toggle("rotated"); diff --git a/src/mappers/dataset.ts b/src/mappers/dataset.ts deleted file mode 100644 index eb512381..00000000 --- a/src/mappers/dataset.ts +++ /dev/null @@ -1,732 +0,0 @@ -type DataType = { - id: string | number; - code: string | number; - letter: string; - description: string; - text: string; - [key: string]: any; -}; - -interface AlphabetDataset { - category: string; - description: string; - icon: string; - data: Array; -} - -const animalData = [ - { letter: "A", description: "A animal lives in water", text: "Alligator" }, - { letter: "D", description: "A domesticated canine", text: "Dog" }, - { letter: "B", description: "A small bird with blue feathers", text: "Bluebird" }, - { letter: "C", description: "A domestic feline", text: "Cat" }, - { letter: "E", description: "A large mammal with a trunk", text: "Elephant" }, - { letter: "F", description: "A small, carnivorous mammal", text: "Fox" }, - { letter: "G", description: "A tall, long-necked herbivore", text: "Giraffe" }, - { letter: "H", description: "A large, mostly herbivorous mammal", text: "Hippo" }, - { letter: "I", description: "A slow-moving reptile", text: "Iguana" }, - { letter: "J", description: "A large feline native to the Americas", text: "Jaguar" }, - { letter: "K", description: "A marsupial known for its jumping ability", text: "Kangaroo" }, - { letter: "L", description: "A large, carnivorous feline", text: "Lion" }, - { letter: "M", description: "A small, intelligent primate", text: "Monkey" }, - { letter: "N", description: "A medium-sized whale with a long tusk", text: "Narwhal" }, - { letter: "O", description: "A sea creature with eight arms", text: "Octopus" }, - { letter: "P", description: "A flightless bird from Antarctica", text: "Penguin" }, - { letter: "Q", description: "A small, ground-dwelling bird", text: "Quail" }, - { letter: "R", description: "A small mammal known for its long ears", text: "Rabbit" }, - { letter: "S", description: "A legless reptile", text: "Snake" }, - { letter: "T", description: "A large, striped feline", text: "Tiger" }, - { letter: "U", description: "A type of monkey found in South America", text: "Uakari" }, - { letter: "V", description: "A scavenging bird known for its bald head", text: "Vulture" }, - { letter: "W", description: "A large, carnivorous mammal", text: "Wolf" }, - { letter: "X", description: "A fish known for its X-ray-like transparency", text: "X-Ray Fish" }, - { letter: "Y", description: "A domesticated member of the bovine family", text: "Yak" }, - { letter: "Z", description: "A black-and-white striped mammal", text: "Zebra" } -]; - -export const ANIMAL_DATASETS: AlphabetDataset = { - category: "animals", - description: "Animal Alphabet", - icon: "🐾", - data: animalData - .sort((a, b) => a.letter.localeCompare(b.letter)) - .map((item, index) => ({ - id: index + 1, - code: 65 + index, // ASCII code for 'A' is 65 - ...item - })) -}; - -/* birds data */ - -const birdData = [ - { letter: "A", description: "A small, colorful bird", text: "Acanthis" }, - { letter: "B", description: "A small, insect-eating bird", text: "Bunting" }, - { letter: "C", description: "A bird known for its distinctive call", text: "Crow" }, - { letter: "D", description: "A bird with a short, stocky body and a strong beak", text: "Dove" }, - { letter: "E", description: "A large bird of prey", text: "Eagle" }, - { letter: "F", description: "A bird known for its beautiful plumage", text: "Flamingo" }, - { letter: "G", description: "A bird with a long, curved beak", text: "Gull" }, - { letter: "H", description: "A bird with a strong, hooked beak", text: "Hawk" }, - { letter: "I", description: "A small, colorful bird often found in gardens", text: "Ibis" }, - { letter: "J", description: "A bird known for its distinctive song", text: "Jay" }, - { letter: "K", description: "A flightless bird from New Zealand", text: "Kiwi" }, - { letter: "L", description: "A bird known for its melodious song", text: "Lark" }, - { letter: "M", description: "A bird known for its ability to mimic sounds", text: "Mockingbird" }, - { letter: "N", description: "A bird known for its beautiful song", text: "Nightingale" }, - { letter: "O", description: "A bird with a long, slender neck", text: "Ostrich" }, - { letter: "P", description: "A large bird known for its impressive tail", text: "Peacock" }, - { letter: "Q", description: "A bird known for its colorful plumage", text: "Quetzal" }, - { letter: "R", description: "A bird with a long, curved beak", text: "Raven" }, - { letter: "S", description: "A small, insect-eating bird", text: "Sparrow" }, - { letter: "T", description: "A bird known for its striking plumage", text: "Toucan" }, - { letter: "U", description: "A bird with a long, slender body and a sharp beak", text: "Umbrellabird" }, - { letter: "V", description: "A scavenging bird known for its bald head", text: "Vulture" }, - { letter: "W", description: "A bird that builds intricate nests", text: "Weaver" }, - { letter: "X", description: "A bird known for its distinctive call", text: "Xenops" }, - { letter: "Y", description: "A bird with a long, slender body and a sharp beak", text: "Yellowthroat" }, - { letter: "Z", description: "A bird known for its striking plumage", text: "Zebra Finch" } -]; - -export const BIRDS_DATASETS: AlphabetDataset = { - category: "birds", - description: "Birds Alphabet", - icon: "🐦", - data: birdData - .sort((a, b) => a.letter.localeCompare(b.letter)) - .map((item, index) => ({ - id: index + 1, - code: 65 + index, // ASCII code for 'A' is 65 - ...item - })) -}; - -/* nato */ - -export const natoData = [ - { letter: "A", description: "AL fah", text: "Alfa" }, - { letter: "B", description: "BRAH voh", text: "Bravo" }, - { letter: "C", description: "CHAR lee", text: "Charlie" }, - { letter: "D", description: "DELL tah", text: "Delta" }, - { letter: "E", description: "ECK oh", text: "Echo" }, - { letter: "F", description: "FOKS trot", text: "Foxtrot" }, - { letter: "G", description: "GOLF", text: "Golf" }, - { letter: "H", description: "ho TELL", text: "Hotel" }, - { letter: "I", description: "IN dee ah", text: "India" }, - { letter: "J", description: "JEW lee ETT", text: "Juliet" }, - { letter: "K", description: "KEY loh", text: "Kilo" }, - { letter: "L", description: "LEE mah", text: "Lima" }, - { letter: "M", description: "MIKE", text: "Mike" }, - { letter: "N", description: "no VEM ber", text: "November" }, - { letter: "O", description: "OSS cah", text: "Oscar" }, - { letter: "P", description: "pah PAH", text: "Papa" }, - { letter: "Q", description: "keh BECK", text: "Quebec" }, - { letter: "R", description: "ROW me oh", text: "Romeo" }, - { letter: "S", description: "see AIR rah", text: "Sierra" }, - { letter: "T", description: "TANG o", text: "Tango" }, - { letter: "U", description: "YOU nee form", text: "Uniform" }, - { letter: "V", description: "VIK tah", text: "Victor" }, - { letter: "W", description: "WISS key", text: "Whiskey" }, - { letter: "X", description: "ECKS ray", text: "X-ray" }, - { letter: "Y", description: "YANG key", text: "Yankee" }, - { letter: "Z", description: "ZOO loo", text: "Zulu" } -]; -export const NATO_DATASETS: AlphabetDataset = { - category: "nato", - description: "NATO Phonetic Alphabet", - icon: "🎖️", - data: natoData - .sort((a, b) => a.letter.localeCompare(b.letter)) - .map((item, index) => ({ - id: index + 1, - code: 65 + index, // ASCII code for 'A' is 65 - ...item - })) -}; - -/*Morse*/ - -const morseData = [ - { letter: "A", description: "Morse code for A", text: "•−" }, - { letter: "B", description: "Morse code for B", text: "−•••" }, - { letter: "C", description: "Morse code for C", text: "−•−•" }, - { letter: "D", description: "Morse code for D", text: "−••" }, - { letter: "E", description: "Morse code for E", text: "•" }, - { letter: "F", description: "Morse code for F", text: "••−•" }, - { letter: "G", description: "Morse code for G", text: "−−•" }, - { letter: "H", description: "Morse code for H", text: "••••" }, - { letter: "I", description: "Morse code for I", text: "••" }, - { letter: "J", description: "Morse code for J", text: "•−−−" }, - { letter: "K", description: "Morse code for K", text: "−•−" }, - { letter: "L", description: "Morse code for L", text: "•−••" }, - { letter: "M", description: "Morse code for M", text: "−−" }, - { letter: "N", description: "Morse code for N", text: "−•" }, - { letter: "O", description: "Morse code for O", text: "−−−" }, - { letter: "P", description: "Morse code for P", text: "•−−•" }, - { letter: "Q", description: "Morse code for Q", text: "−−•−" }, - { letter: "R", description: "Morse code for R", text: "•−•" }, - { letter: "S", description: "Morse code for S", text: "•••" }, - { letter: "T", description: "Morse code for T", text: "−" }, - { letter: "U", description: "Morse code for U", text: "••−" }, - { letter: "V", description: "Morse code for V", text: "•••−" }, - { letter: "W", description: "Morse code for W", text: "•−−" }, - { letter: "X", description: "Morse code for X", text: "−••−" }, - { letter: "Y", description: "Morse code for Y", text: "−•−−" }, - { letter: "Z", description: "Morse code for Z", text: "−−••" } -]; - -export const MORSE_DATASETS: AlphabetDataset = { - category: "morse", - description: "Learn the International Morse Code for the English alphabet.", - icon: "⚫➖", - data: morseData - .sort((a, b) => a.letter.localeCompare(b.letter)) - .map((item, index) => ({ - id: index + 1, - code: 65 + index, // ASCII code for 'A' - ...item - })) -}; - -/* Indian */ - -const indianData = [ - { letter: "A", description: "Ancient Indian mathematician and astronomer who calculated Pi", text: "Aryabhatta" }, - { letter: "B", description: "Creator deity in Hinduism", text: "Brahma" }, - { letter: "C", description: "Ancient Indian teacher, philosopher, and royal advisor", text: "Chanakya" }, - { letter: "D", description: "Hindu goddess of war, strength and protection", text: "Durga" }, - { letter: "E", description: "Skilled archer from the Mahabharata", text: "Eklavya" }, - { letter: "F", description: "Sacred animals in Indian mythology like Garuda and Nandi", text: "Fauna" }, - { letter: "G", description: "Elephant-headed deity known as remover of obstacles", text: "Ganesha" }, - { letter: "H", description: "Monkey deity known for strength, devotion and service", text: "Hanuman" }, - { letter: "I", description: "King of the gods and deity of lightning and thunder", text: "Indra" }, - { letter: "J", description: "Divine eagle who fought Ravana in the Ramayana", text: "Jatayu" }, - { letter: "K", description: "Divine incarnation of Vishnu and key figure in Bhagavad Gita", text: "Krishna" }, - { letter: "L", description: "Goddess of wealth, fortune and prosperity", text: "Lakshmi" }, - { letter: "M", description: "Tamil God also known as Kartikeya", text: "Murugan" }, - { letter: "N", description: "Divine sage famous for carrying news and gossip", text: "Narada" }, - { letter: "O", description: "Sacred sound and spiritual symbol in Indian religions", text: "Om" }, - { letter: "P", description: "Goddess of fertility, love and devotion", text: "Parvati" }, - { letter: "Q", description: "Historic minaret built by Qutb-ud-Din Aibak in Delhi", text: "Qutub Minar" }, - { letter: "R", description: "Seventh avatar of Vishnu and protagonist of the Ramayana", text: "Rama" }, - { letter: "S", description: "One of the principal deities, known as the destroyer", text: "Shiva" }, - { letter: "T", description: "Author who wrote the epic Ramcharitmanas", text: "Tulsidas" }, - { letter: "U", description: "Beautiful apsara (celestial nymph) created from Vishnu's thigh", text: "Urvashi" }, - { letter: "V", description: "Preserver deity with ten avatars including Rama and Krishna", text: "Vishnu" }, - { letter: "W", description: "Puppetry art form influenced by Indian epics and mythology", text: "Wayang" }, - { letter: "X", description: "Persian king who encountered Indian warriors and philosophers", text: "Xerxes" }, - { letter: "Y", description: "God of death and justice who judges souls", text: "Yama" }, - { letter: "Z", description: "Vedic astrology (Jyotish) with its unique zodiac system", text: "Zodiac" } -]; - -export const INDIAN_DATASETS: AlphabetDataset = { - category: "indian", - description: "Mythological Indian culture Alphabets", - icon: "🕉️", - data: indianData - .sort((a, b) => a.letter.localeCompare(b.letter)) - .map((item, index) => ({ - id: index + 1, - code: 65 + index, - ...item - })) -}; - -/*General*/ - -const generalData = [ - { letter: "A", description: "A sweet red fruit.", text: "Apple", emoji: "🍎" }, - { letter: "B", description: "A flying mammal that comes out at night.", text: "Bat", emoji: "🦇" }, - { letter: "C", description: "A small domesticated carnivorous mammal.", text: "Cat", emoji: "🐱" }, - { letter: "D", description: "A loyal pet that barks.", text: "Dog", emoji: "🐶" }, - { letter: "E", description: "A large animal with a trunk.", text: "Elephant", emoji: "🐘" }, - { letter: "F", description: "An animal that lives in water.", text: "Fish", emoji: "🐟" }, - { letter: "G", description: "A farm animal with horns and beard.", text: "Goat", emoji: "🐐" }, - { letter: "H", description: "A piece of clothing worn on the head.", text: "Hat", emoji: "🎩" }, - { letter: "I", description: "Frozen water used to cool drinks.", text: "Ice", emoji: "🧊" }, - { letter: "J", description: "A container used to hold water.", text: "Jug", emoji: "🏺" }, - { letter: "K", description: "A paper object that flies in the wind.", text: "Kite", emoji: "🪁" }, - { letter: "L", description: "A device that gives light.", text: "Lamp", emoji: "💡" }, - { letter: "M", description: "A bright object that shines at night.", text: "Moon", emoji: "🌙" }, - { letter: "N", description: "A home made by birds.", text: "Nest", emoji: "🐣" }, - { letter: "O", description: "A round, juicy, orange-colored fruit.", text: "Orange", emoji: "🍊" }, - { letter: "P", description: "An object used for writing.", text: "Pen", emoji: "🖊️" }, - { letter: "Q", description: "A female ruler or royal woman.", text: "Queen", emoji: "👑" }, - { letter: "R", description: "A small rodent with a long tail.", text: "Rat", emoji: "🐀" }, - { letter: "S", description: "The star that gives us light and heat.", text: "Sun", emoji: "☀️" }, - { letter: "T", description: "A tall plant with a trunk, branches, and leaves.", text: "Tree", emoji: "🌳" }, - { letter: "U", description: "An object that protects us from rain.", text: "Umbrella", emoji: "☂️" }, - { letter: "V", description: "A vehicle used to carry people or goods.", text: "Van", emoji: "🚐" }, - { letter: "W", description: "A device worn on the wrist to tell time.", text: "Watch", emoji: "⌚" }, - { letter: "X", description: "A machine that makes paper copies.", text: "xerox", emoji: "🖨️" }, - { letter: "Y", description: "A boat that moves with the wind.", text: "Yacht", emoji: "⛵" }, - { letter: "Z", description: "A black and white striped animal.", text: "Zebra", emoji: "🦓" } -]; - -export const GENERAL_DATASETS: AlphabetDataset = { - category: "general", - description: "General knowledge about the English alphabet", - icon: "🔤", - data: generalData.map((item, index) => ({ - id: index + 1, - code: 65 + index, - ...item - })) -}; - -/*Greek*/ - -const greekData = [ - { - letter: "A", - description: "First letter of the Greek alphabet. Sound: 'a' as in father.", - text: "Alpha (Α α)", - emoji: "A" - }, - { - letter: "B", - description: "Second letter of the Greek alphabet. Sound: 'v' as in vase (Modern Greek).", - text: "Beta (Β β)", - emoji: "Β" - }, - { - letter: "G", - description: "Third letter of the Greek alphabet. Sound: 'g' as in go, or 'y' as in yes.", - text: "Gamma (Γ γ)", - emoji: "Γ" - }, - { - letter: "D", - description: "Fourth letter of the Greek alphabet. Sound: 'th' as in then (Modern Greek).", - text: "Delta (Δ δ)", - emoji: "Δ" - }, - { - letter: "E", - description: "Fifth letter of the Greek alphabet. Sound: 'e' as in met.", - text: "Epsilon (Ε ε)", - emoji: "Ε" - }, - { - letter: "Z", - description: "Sixth letter of the Greek alphabet. Sound: 'z' as in zoo.", - text: "Zeta (Ζ ζ)", - emoji: "Ζ" - }, - { - letter: "H", - description: "Seventh letter of the Greek alphabet. Sound: 'i' as in machine.", - text: "Eta (Η η)", - emoji: "Η" - }, - { - letter: "Q", - description: "Eighth letter of the Greek alphabet. Sound: 'th' as in thin.", - text: "Theta (Θ θ)", - emoji: "Θ" - }, - { - letter: "I", - description: "Ninth letter of the Greek alphabet. Sound: 'i' as in machine.", - text: "Iota (Ι ι)", - emoji: "Ι" - }, - { - letter: "K", - description: "Tenth letter of the Greek alphabet. Sound: 'k' as in kite.", - text: "Kappa (Κ κ)", - emoji: "Κ" - }, - { - letter: "L", - description: "Eleventh letter of the Greek alphabet. Sound: 'l' as in lamp.", - text: "Lambda (Λ λ)", - emoji: "Λ" - }, - { - letter: "M", - description: "Twelfth letter of the Greek alphabet. Sound: 'm' as in map.", - text: "Mu (Μ μ)", - emoji: "Μ" - }, - { - letter: "N", - description: "Thirteenth letter of the Greek alphabet. Sound: 'n' as in net.", - text: "Nu (Ν ν)", - emoji: "Ν" - }, - { - letter: "X", - description: "Fourteenth letter of the Greek alphabet. Sound: 'x' as in axe.", - text: "Xi (Ξ ξ)", - emoji: "Ξ" - }, - { - letter: "O", - description: "Fifteenth letter of the Greek alphabet. Sound: 'o' as in pot.", - text: "Omicron (Ο ο)", - emoji: "Ο" - }, - { - letter: "P", - description: "Sixteenth letter of the Greek alphabet. Sound: 'p' as in pen.", - text: "Pi (Π π)", - emoji: "Π" - }, - { - letter: "R", - description: "Seventeenth letter of the Greek alphabet. Sound: 'r' as in run (often rolled).", - text: "Rho (Ρ ρ)", - emoji: "Ρ" - }, - { - letter: "S", - description: "Eighteenth letter of the Greek alphabet. Sound: 's' as in sun.", - text: "Sigma (Σ σ/ς)", - emoji: "Σ" - }, - { - letter: "T", - description: "Nineteenth letter of the Greek alphabet. Sound: 't' as in tap.", - text: "Tau (Τ τ)", - emoji: "Τ" - }, - { - letter: "U", - description: "Twentieth letter of the Greek alphabet. Sound: 'i' as in machine (Modern Greek).", - text: "Upsilon (Υ υ)", - emoji: "Υ" - }, - { - letter: "F", - description: "Twenty-first letter of the Greek alphabet. Sound: 'f' as in fan.", - text: "Phi (Φ φ)", - emoji: "Φ" - }, - { - letter: "C", - description: "Twenty-second letter of the Greek alphabet. Sound: 'ch' as in Scottish loch, or 'h' as in huge.", - text: "Chi (Χ χ)", - emoji: "Χ" - }, - { - letter: "Y", - description: "Twenty-third letter of the Greek alphabet. Sound: 'ps' as in psychology.", - text: "Psi (Ψ ψ)", - emoji: "Ψ" - }, - { - letter: "W", - description: "Twenty-fourth letter of the Greek alphabet. Sound: 'o' as in go.", - text: "Omega (Ω ω)", - emoji: "Ω" - } -]; - -export const GREEK_DATASETS: AlphabetDataset = { - category: "greek", - description: "Explore the letters of the ancient and modern Greek alphabet.", - icon: "🔤", - data: greekData.map((item, index) => ({ - id: index + 1, - code: item.text.charCodeAt(0), - ...item - })) -}; - -/*Geek*/ - -const geekData = [ - { letter: "A", description: "Common representations for A.", text: "4, @, /-\\" }, - { letter: "B", description: "Common representations for B.", text: "8, |3, ß" }, - { letter: "C", description: "Common representations for C.", text: "(, <, [, {" }, - { letter: "D", description: "Common representations for D.", text: "|), |>, Ð, ð" }, - { letter: "E", description: "Common representations for E.", text: "3, £, €" }, - { letter: "F", description: "Common representations for F.", text: "|=, ph, ƒ" }, - { letter: "G", description: "Common representations for G.", text: "6, 9, (_+" }, - { letter: "H", description: "Common representations for H.", text: "#, |-|, H" }, - { letter: "I", description: "Common representations for I.", text: "1, !, |, ][" }, - { letter: "J", description: "Common representations for J.", text: "_|, ;|, _/" }, - { letter: "K", description: "Common representations for K.", text: "|<, /<, |{" }, - { letter: "L", description: "Common representations for L.", text: "1, |_, £, |" }, - { letter: "M", description: "Common representations for M.", text: "|\\/|, /\\/\\, (V)" }, - { letter: "N", description: "Common representations for N.", text: "|\\|, /\\/, |V" }, - { letter: "O", description: "Common representations for O.", text: "0, (), <>" }, - { letter: "P", description: "Common representations for P.", text: "|*, |D, |>" }, - { letter: "Q", description: "Common representations for Q.", text: "(_,)" }, - { letter: "R", description: "Common representations for R.", text: "|2, |?, ®" }, - { letter: "S", description: "Common representations for S.", text: "5, $, §" }, - { letter: "T", description: "Common representations for T.", text: "7, +, ']['" }, - { letter: "U", description: "Common representations for U.", text: "|_|, (_), V" }, - { letter: "V", description: "Common representations for V.", text: "\\/, |/" }, - { letter: "W", description: "Common representations for W.", text: "\\/\\/, VV, \\^/" }, - { letter: "X", description: "Common representations for X.", text: "><, %" }, - { letter: "Y", description: "Common representations for Y.", text: "j, `/, ¥" }, - { letter: "Z", description: "Common representations for Z.", text: "2, 7_, >_" } -]; - -export const GEEK_DATASETS: AlphabetDataset = { - category: "geek", - description: "Discover common 'leet speak' and other geeky character representations.", - icon: "🔤", - data: geekData.map((item, index) => ({ - id: index + 1, - code: item.letter.charCodeAt(0), - ...item - })) -}; - -/*Fruits*/ - -const fruitsData = [ - { letter: "A", text: "Apple", description: "Common red or green fruit" }, - { letter: "B", text: "Banana", description: "Yellow curved tropical fruit" }, - { letter: "C", text: "Cherry", description: "Small red stone fruit" }, - { letter: "D", text: "Date", description: "Sweet brown fruit from palm trees" }, - { letter: "E", text: "Elderberry", description: "Small dark purple berries" }, - { letter: "F", text: "Fig", description: "Sweet Mediterranean fruit" }, - { letter: "G", text: "Grape", description: "Small round fruit growing in clusters" }, - { letter: "H", text: "Honeydew", description: "Sweet green melon variety" }, - { letter: "I", text: "Ice Apple", description: "Translucent fruit from palm trees" }, - { letter: "J", text: "Jackfruit", description: "Large tropical fruit" }, - { letter: "K", text: "Kiwi", description: "Brown fuzzy fruit with green flesh" }, - { letter: "L", text: "Lemon", description: "Sour yellow citrus fruit" }, - { letter: "M", text: "Mango", description: "Sweet tropical stone fruit" }, - { letter: "N", text: "Nectarine", description: "Smooth-skinned peach variety" }, - { letter: "O", text: "Orange", description: "Round citrus fruit" }, - { letter: "P", text: "Pear", description: "Sweet bell-shaped fruit" }, - { letter: "Q", text: "Quince", description: "Hard acidic fruit used in preserves" }, - { letter: "R", text: "Raspberry", description: "Small red aggregate fruit" }, - { letter: "S", text: "Strawberry", description: "Red heart-shaped berry" }, - { letter: "T", text: "Tangerine", description: "Small orange citrus fruit" }, - { letter: "U", text: "Ugli Fruit", description: "Citrus fruit hybrid from Jamaica" }, - { letter: "V", text: "Voavanga", description: "African fruit also known as Spanish tamarind" }, - { letter: "W", text: "Watermelon", description: "Large sweet fruit with green rind and red flesh" }, - { letter: "X", text: "Ximenia", description: "Small orange-colored wild fruit" }, - { letter: "Y", text: "Yellow Watermelon", description: "Watermelon variety with yellow flesh" }, - { letter: "Z", text: "Ziziphus", description: "Small fruit also known as jujube" } -]; - -export const FRUITS_DATASETS: AlphabetDataset = { - category: "fruits", - description: "Fruits of the English alphabet", - icon: "🍎", - data: fruitsData.map((item, index) => ({ - id: index + 1, - code: item.letter.charCodeAt(0), - ...item - })) -}; - -/* Fruits*/ - -const colorsData = [ - { letter: "A", text: "Amber", description: "A honey-yellow color.", colorCode: "#FFBF00" }, - { letter: "B", text: "Blue", description: "The color of the sky and sea.", colorCode: "#0000FF" }, - { letter: "C", text: "Cyan", description: "A greenish-blue color.", colorCode: "#00FFFF" }, - { letter: "D", text: "Denim", description: "A sturdy cotton twill fabric, typically blue.", colorCode: "#1560BD" }, - { letter: "E", text: "Emerald", description: "A bright green color.", colorCode: "#50C878" }, - { letter: "F", text: "Fuchsia", description: "A vivid purplish-red color.", colorCode: "#FF00FF" }, - { letter: "G", text: "Green", description: "The color of living grass and leaves.", colorCode: "#008000" }, - { letter: "H", text: "Heliotrope", description: "A pink-purple tint.", colorCode: "#DF73FF" }, - { - letter: "I", - text: "Indigo", - description: "A deep and rich color close to the color wheel blue.", - colorCode: "#4B0082" - }, - { letter: "J", text: "Jade", description: "A light green color.", colorCode: "#00A86B" }, - { letter: "K", text: "Khaki", description: "A light brownish-yellow color.", colorCode: "#C3B091" }, - { letter: "L", text: "Lavender", description: "A light purple color.", colorCode: "#E6E6FA" }, - { letter: "M", text: "Magenta", description: "A purplish-pink color.", colorCode: "#FF00FF" }, - { letter: "N", text: "Navy", description: "A very dark blue color.", colorCode: "#000080" }, - { letter: "O", text: "Orange", description: "A bright, warm color.", colorCode: "#FFA500" }, - { letter: "P", text: "Purple", description: "A color intermediate between blue and red.", colorCode: "#800080" }, - { letter: "Q", text: "Quartz", description: "A greyish-white color.", colorCode: "#51484F" }, - { letter: "R", text: "Red", description: "The color of blood, or a ruby.", colorCode: "#FF0000" }, - { letter: "S", text: "Silver", description: "A precious shiny grayish-white color.", colorCode: "#C0C0C0" }, - { letter: "T", text: "Teal", description: "A medium to dark greenish-blue color.", colorCode: "#008080" }, - { letter: "U", text: "Ultramarine", description: "A deep blue color pigment.", colorCode: "#120A8F" }, - { letter: "V", text: "Violet", description: "A bluish-purple color.", colorCode: "#EE82EE" }, - { letter: "W", text: "White", description: "The color of milk or fresh snow.", colorCode: "#FFFFFF" }, - { letter: "X", text: "Xanadu", description: "A grayish-green color.", colorCode: "#738678" }, - { letter: "Y", text: "Yellow", description: "The color of ripe lemons or egg yolks.", colorCode: "#FFFF00" }, - { letter: "Z", text: "Zaffre", description: "A deep blue pigment.", colorCode: "#0014A8" } -]; - -export const COLORS_DATASETS: AlphabetDataset = { - category: "colors", - description: "Colors of the English alphabet with their hex codes.", - icon: "🎨", - data: colorsData.map((item, index) => ({ - id: index + 1, - code: item.letter.charCodeAt(0), - ...item - })) -}; - -/*Countries*/ - -const countriesData = [ - { letter: "A", text: "Australia", description: "Continent and country in Southern Hemisphere" }, - { letter: "B", text: "Brazil", description: "Largest country in South America" }, - { letter: "C", text: "Canada", description: "Second largest country by total area" }, - { letter: "D", text: "Denmark", description: "Nordic country in Europe" }, - { letter: "E", text: "Egypt", description: "North African country with ancient pyramids" }, - { letter: "F", text: "France", description: "Western European country" }, - { letter: "G", text: "Germany", description: "Central European country" }, - { letter: "H", text: "Hungary", description: "Central European country" }, - { letter: "I", text: "India", description: "South Asian country" }, - { letter: "J", text: "Japan", description: "East Asian island country" }, - { letter: "K", text: "Kenya", description: "East African country" }, - { letter: "L", text: "Lithuania", description: "Baltic country in Northern Europe" }, - { letter: "M", text: "Mexico", description: "North American country" }, - { letter: "N", text: "Norway", description: "Nordic country with fjords" }, - { letter: "O", text: "Oman", description: "Middle Eastern country" }, - { letter: "P", text: "Portugal", description: "Southern European country" }, - { letter: "Q", text: "Qatar", description: "Middle Eastern peninsula country" }, - { letter: "R", text: "Russia", description: "Largest country by land area" }, - { letter: "S", text: "Spain", description: "Southern European country" }, - { letter: "T", text: "Turkey", description: "Transcontinental country" }, - { letter: "U", text: "Uganda", description: "East African country" }, - { letter: "V", text: "Vietnam", description: "Southeast Asian country" }, - { letter: "W", text: "Wales", description: "Country part of United Kingdom" }, - { letter: "X", text: "Xianggang", description: "Alternative name for Hong Kong" }, - { letter: "Y", text: "Yemen", description: "Middle Eastern country" }, - { letter: "Z", text: "Zimbabwe", description: "Southern African country" } -]; - -export const COUNTRIES_DATASETS: AlphabetDataset = { - category: "countries", - description: "Countries of the English alphabet", - icon: "🌍", - data: countriesData.map((item, index) => ({ - id: index + 1, - code: item.letter.charCodeAt(0), - ...item - })) -}; - -/* Brailee */ - -const brailleData = [ - { letter: "A", text: "⠁", description: "Braille pattern dots-1" }, - { letter: "B", text: "⠃", description: "Braille pattern dots-1-2" }, - { letter: "C", text: "⠉", description: "Braille pattern dots-1-4" }, - { letter: "D", text: "⠙", description: "Braille pattern dots-1-4-5" }, - { letter: "E", text: "⠑", description: "Braille pattern dots-1-5" }, - { letter: "F", text: "⠋", description: "Braille pattern dots-1-2-4" }, - { letter: "G", text: "⠛", description: "Braille pattern dots-1-2-4-5" }, - { letter: "H", text: "⠓", description: "Braille pattern dots-1-2-5" }, - { letter: "I", text: "⠊", description: "Braille pattern dots-2-4" }, - { letter: "J", text: "⠚", description: "Braille pattern dots-2-4-5" }, - { letter: "K", text: "⠅", description: "Braille pattern dots-1-3" }, - { letter: "L", text: "⠇", description: "Braille pattern dots-1-2-3" }, - { letter: "M", text: "⠍", description: "Braille pattern dots-1-3-4" }, - { letter: "N", text: "⠝", description: "Braille pattern dots-1-3-4-5" }, - { letter: "O", text: "⠕", description: "Braille pattern dots-1-3-5" }, - { letter: "P", text: "⠏", description: "Braille pattern dots-1-2-3-4" }, - { letter: "Q", text: "⠟", description: "Braille pattern dots-1-2-3-4-5" }, - { letter: "R", text: "⠗", description: "Braille pattern dots-1-2-3-5" }, - { letter: "S", text: "⠎", description: "Braille pattern dots-2-3-4" }, - { letter: "T", text: "⠞", description: "Braille pattern dots-2-3-4-5" }, - { letter: "U", text: "⠥", description: "Braille pattern dots-1-3-6" }, - { letter: "V", text: "⠧", description: "Braille pattern dots-1-2-3-6" }, - { letter: "W", text: "⠺", description: "Braille pattern dots-2-4-5-6" }, - { letter: "X", text: "⠭", description: "Braille pattern dots-1-3-4-6" }, - { letter: "Y", text: "⠽", description: "Braille pattern dots-1-3-4-5-6" }, - { letter: "Z", text: "⠵", description: "Braille pattern dots-1-3-5-6" } -]; - -export const BRAILLE_DATASETS: AlphabetDataset = { - category: "braille", - description: "Braille alphabet", - icon: "⠿", - data: brailleData.map((item, index) => ({ - id: index + 1, - code: item.letter.charCodeAt(0), - ...item - })) -}; - -/* Hindi*/ - -const hindiData = [ - // Swar (Vowels) - { letter: "अ", text: "अदरक", emoji: "🫚", description: "अदरक (Ginger)" }, - { letter: "आ", text: "आम", emoji: "🥭", description: "आम (Mango)" }, - { letter: "इ", text: "इमली", emoji: "🥔", description: "इमली (Tamarind)" }, - { letter: "ई", text: "ईख", emoji: "🎋", description: "ईख (Sugarcane)" }, - { letter: "उ", text: "उल्लू", emoji: "🦉", description: "उल्लू (Owl)" }, - { letter: "ऊ", text: "ऊँट", emoji: "🐫", description: "ऊँट (Camel)" }, - { letter: "ऋ", text: "ऋषि", emoji: "🧘‍♂️", description: "ऋषि (Sage)" }, - { letter: "ए", text: "एड़ी", emoji: "🦶", description: "एड़ी (Heel)" }, - { letter: "ऐ", text: "ऐनक", emoji: "👓", description: "ऐनक (Glasses)" }, - { letter: "ओ", text: "ओखली", emoji: "🪨", description: "ओखली (Mortar)" }, - { letter: "औ", text: "औरत", emoji: "👩", description: "औरत (Woman)" }, - - // Vyanjan (Consonants) - { letter: "क", text: "कबूतर", emoji: "🐦", description: "कबूतर (Pigeon)" }, - { letter: "ख", text: "खरगोश", emoji: "🐇", description: "खरगोश (Rabbit)" }, - { letter: "ग", text: "गमला", emoji: "🪴", description: "गमला (Flower Pot)" }, - { letter: "घ", text: "घोड़ा", emoji: "🐎", description: "घोड़ा (Horse)" }, - { letter: "च", text: "चम्मच", emoji: "🥄", description: "चम्मच (Spoon)" }, - { letter: "छ", text: "छतरी", emoji: "☂️", description: "छतरी (Umbrella)" }, - { letter: "ज", text: "जहाज़", emoji: "🚢", description: "जहाज़ (Ship)" }, - { letter: "झ", text: "झंडा", emoji: "🏁", description: "झंडा (Flag)" }, - { letter: "ट", text: "टमाटर", emoji: "🍅", description: "टमाटर (Tomato)" }, - { letter: "ठ", text: "ठठेरा", emoji: "🔨", description: "ठठेरा (Brass Smith)" }, - { letter: "ड", text: "डमरू", emoji: "🥁", description: "डमरू (Shiva’s Drum)" }, - { letter: "ढ", text: "ढोलक", emoji: "🪘", description: "ढोलक (Drum)" }, - { letter: "ण", text: "ण", emoji: "♨️", description: "ण (None)" }, - { letter: "त", text: "तरबूज", emoji: "🍉", description: "तरबूज (Watermelon)" }, - { letter: "थ", text: "थाली", emoji: "🍽️", description: "थाली (Plate)" }, - { letter: "द", text: "दिवा", emoji: "🪔", description: "दिवा (Lamp)" }, - { letter: "ध", text: "धनुष", emoji: "🏹", description: "धनुष (Bow)" }, - { letter: "न", text: "नाग", emoji: "🐍", description: "नाग (Snake)" }, - { letter: "प", text: "पतंग", emoji: "🪁", description: "पतंग (Kite)" }, - { letter: "फ", text: "फल", emoji: "🍎", description: "फल (Fruit)" }, - { letter: "ब", text: "बकरी", emoji: "🐐", description: "बकरी (Goat)" }, - { letter: "भ", text: "भैंस", emoji: "🐃", description: "भैंस (Buffalo)" }, - { letter: "म", text: "मक्खी", emoji: "🪰", description: "मक्खी (Fly)" }, - { letter: "य", text: "यज्ञ", emoji: "🔥", description: "यज्ञ (Fire Ritual)" }, - { letter: "र", text: "रंग", emoji: "🎨", description: "रंग (Color)" }, - { letter: "ल", text: "लट्टू", emoji: "🪀", description: "लट्टू (Top)" }, - { letter: "व", text: "वृक्ष", emoji: "🌳", description: "वृक्ष (Tree)" }, - { letter: "श", text: "शंख", emoji: "🐚", description: "शंख (Conch)" }, - { letter: "ष", text: "षट्कोण", emoji: "⬡", description: "षट्कोण (Hexagon)" }, - { letter: "स", text: "सांप", emoji: "🐍", description: "सांप (Snake)" }, - { letter: "ह", text: "हाथी", emoji: "🐘", description: "हाथी (Elephant)" }, - { letter: "क्ष", text: "क्षत्रिय", emoji: "⚔️", description: "क्षत्रिय (Warrior)" }, - { letter: "त्र", text: "त्रिशूल", emoji: "🔱", description: "त्रिशूल (Trident)" }, - { letter: "ज्ञ", text: "ज्ञान", emoji: "📚", description: "ज्ञान (Knowledge)" } -]; - -export const HINDI_DATASETS: AlphabetDataset = { - category: "hindi", - description: "Learn the Hindi alphabet, including Swar (vowels) and Vyanjan (consonants).", - icon: "🕉️", - data: hindiData.map((item, index) => ({ - id: index + 1, - code: item.letter.charCodeAt(0), - ...item - })) -}; - -/** TODO: add others from alphabets.json */ - -export const DATASET: { [key: string]: AlphabetDataset } = { - animals: ANIMAL_DATASETS, - birds: BIRDS_DATASETS, - nato: NATO_DATASETS, - morse: MORSE_DATASETS, - indian: INDIAN_DATASETS, - general: GENERAL_DATASETS, - greek: GREEK_DATASETS, - geek: GEEK_DATASETS, - fruits: FRUITS_DATASETS, - colors: COLORS_DATASETS, - countries: COUNTRIES_DATASETS, - braille: BRAILLE_DATASETS, - hindi: HINDI_DATASETS -}; -export type AlphabetsData = typeof DATASET; diff --git a/src/pages/404.astro b/src/pages/404.astro index 7d10aad4..d0560a26 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -1,21 +1,13 @@ --- import BaseLayout from "@/layouts/Base"; -import "@/assets/styles/404.css"; const meta = { - title: "🤖", - description: "Looks like this page took a wrong turn! Let's guide you back to learning." + title: "Oops! You found a missing page!", + description: "Oops! It looks like this page is lost in space!" }; --- + -
    -
    -
    404
    -

    Oops! You're Lost in Space 🚀

    -

    Don't worry, Cadet! Let's fly back and keep learning.

    -
    - 🏠 Home -
    -
    -
    +

    404 | Oops something went wrong

    +

    Please use the navigation to find your way back

    diff --git a/src/pages/about.astro b/src/pages/about.astro index 5017d6c0..4a32aada 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -1,29 +1,16 @@ --- -import BaseLayout from "@/layouts/Base"; -import TitleLayout from "@/layouts/TitleLayout"; -import HeroSection from "@/components/about/HeroSection.astro"; -import FeaturesSection from "@/components/about/FeaturesSection.astro"; -import TeamSection from "@/components/about/TeamSection.astro"; -import TechSection from "@/components/about/TechSection.astro"; import "@/assets/styles/about.css"; -import BackIcon from "@/components/Back.astro"; - -// Constants -const appName = "abcdkbd"; - -// Meta data -const meta = { - title: "About Us" -}; +import BaseLayout from "@/layouts/Base"; --- - - - -
    - - - - -
    + +
    +
    +

    This is my initial version to make interactive games for kids

    +

    + Inspiration behind these games are to take kids away from smartphone and close to keyboard which will help in + their future building also. +

    +
    +
    diff --git a/src/pages/alphabets/[alphabet]/board.astro b/src/pages/alphabets/[alphabet]/board.astro index d6b6a9b3..754c4b2e 100644 --- a/src/pages/alphabets/[alphabet]/board.astro +++ b/src/pages/alphabets/[alphabet]/board.astro @@ -1,33 +1,72 @@ --- -import "@/assets/styles/tile.css"; -import BackButton from "@/components/BackButton.astro"; +import "@/assets/styles/alphabets/[alphabet]/board.css"; + import LetterCard from "@/components/LetterCard.astro"; + +import rawAlphabetData from "@/data/alphabets.json"; import BaseLayout from "@/layouts/Base"; -import { DATASET } from "@/mappers/dataset"; +import { type AlphabetsData } from "@/types/alphabet.ts"; + +import BackButton from "@/components/BackButton.astro"; + +const alphabetData = rawAlphabetData as AlphabetsData; export const prerender = true; export async function getStaticPaths() { - return Object.keys(DATASET).map((category) => ({ + const alphabetData = rawAlphabetData as AlphabetsData; + const categories = Object.keys(alphabetData); + + return categories.map((category) => ({ params: { alphabet: category } })); } const { alphabet } = Astro.params; -const data = DATASET[alphabet].data; +const data = alphabetData[alphabet as keyof AlphabetsData].data; --- -
    -
    + + diff --git a/src/pages/alphabets/index.astro b/src/pages/alphabets/index.astro index 3db30c1f..78b5d0b5 100644 --- a/src/pages/alphabets/index.astro +++ b/src/pages/alphabets/index.astro @@ -1,43 +1,140 @@ --- -import "@/assets/styles/board.css"; import Back from "@/components/Back.astro"; -import CardLayout from "@/components/CardLayout.astro"; +import "@/assets/styles/alphabets/index.css"; +import rawAlphabetData from "@/data/alphabets.json"; import BaseLayout from "@/layouts/Base"; -import { DATASET } from "@/mappers/dataset"; +import type { AlphabetsData } from "@/types/alphabet"; +const alphabetData = rawAlphabetData as AlphabetsData; -const title = "Alphabet Categories"; -const subtitle = "Choose a category to discover different alphabet representations"; - -const categories = Object.keys(DATASET); - -const categoryList = categories.map((category, index) => ({ - id: index.toString(), - icon: DATASET[category].icon, - title: category.charAt(0).toUpperCase() + category.slice(1), - description: DATASET[category].description, - href: { - playground: { icon: "📚", link: `/alphabets/${category}/playground/`, text: "Playground" }, - board: { icon: "📋", link: `/alphabets/${category}/board/`, text: "Board" } - } -})); +const categories = Object.keys(alphabetData); +const getCategoryDescription = (category: string) => alphabetData[category as keyof AlphabetsData].description; --- -
    -
    -

    {title}

    -

    {subtitle}

    +
    +
    +

    Alphabet Categories

    +

    Choose a category to discover different alphabet representations

    -
      +
        { - categoryList.map((category, index) => ( -
      • - + categories.map((category, index) => ( +
      • +
        +
        +
        {alphabetData[category as keyof AlphabetsData].icon}
        +

        {category.charAt(0).toUpperCase() + category.slice(1)}

        +

        {getCategoryDescription(category)}

        +
        + +
      • )) }
    + + diff --git a/src/pages/canvas/index.astro b/src/pages/canvas/index.astro index 5dc862d0..2bab54d7 100644 --- a/src/pages/canvas/index.astro +++ b/src/pages/canvas/index.astro @@ -1,9 +1,9 @@ --- -import CanvasIcon from "@/assets/icons/canvas.svg"; -import QuoteIcon from "@/assets/icons/quote.svg"; -import "@/assets/styles/cards/main.css"; import Back from "@/components/Back.astro"; import BaseLayout from "@/layouts/Base"; +import CanvasIcon from "@/assets/icons/canvas-icon.svg"; +import QuoteIcon from "@/assets/icons/quote-icon.svg"; +import "@/assets/styles/CardIndex.css"; const meta = { title: "Canvas", @@ -11,7 +11,7 @@ const meta = { }; --- - +

    Select a creative mode

    diff --git a/src/pages/canvas/quote.astro b/src/pages/canvas/quote.astro index b2c08479..f1c8a0c2 100644 --- a/src/pages/canvas/quote.astro +++ b/src/pages/canvas/quote.astro @@ -1,5 +1,5 @@ --- -import BaseLayout from "@/layouts/Base"; +import Base from "@/layouts/Base"; import BackButton from "@/components/BackButton.astro"; import Help from "@/components/Help.astro"; import DownloadIcon from "@/assets/icons/download.svg"; @@ -15,7 +15,7 @@ const pageMeta = { }; --- - +
    - Background 1 + Background 1
    - Background 2 + Background 2
    - Background 3 + Background 3
    - Background 4 + Background 4
    - - - - + + + + diff --git a/src/pages/capital.astro b/src/pages/capital.astro index 85deba47..033eb565 100644 --- a/src/pages/capital.astro +++ b/src/pages/capital.astro @@ -1,8 +1,7 @@ --- -import Back from "@/components/Back.astro"; -import CapitalComponent from "@/components/Capital.astro"; +import LocationMosaic from "@/components/Capital.astro"; import Help from "@/components/Help.astro"; -import BaseLayout from "@/layouts/Base"; +import Layout from "@/layouts/Base"; import { locations } from "@/libs/location"; const meta = { @@ -15,10 +14,9 @@ const stateList = locations.filter((loc) => loc.isState); const utList = locations.filter((loc) => !loc.isState); --- - - + - - + + diff --git a/src/pages/cards/index.astro b/src/pages/cards/index.astro index e4fb5a19..13939e39 100644 --- a/src/pages/cards/index.astro +++ b/src/pages/cards/index.astro @@ -1,9 +1,9 @@ --- -import Queue from "@/assets/icons/queue.svg"; -import Stack from "@/assets/icons/stack.svg"; -import "@/assets/styles/cards/main.css"; import BackIcon from "@/components/Back.astro"; +import Stack from "@/assets/icons/stack.svg"; +import Queue from "@/assets/icons/queue.svg"; import BaseLayout from "@/layouts/Base"; +import "@/assets/styles/CardIndex.css"; const meta = { title: "Alphabet Explorer: Learn with Motion", @@ -11,7 +11,7 @@ const meta = { }; --- - +

    Explore Display Modes

    diff --git a/src/pages/cards/queue.astro b/src/pages/cards/queue.astro index 64d1936a..b1d802fc 100644 --- a/src/pages/cards/queue.astro +++ b/src/pages/cards/queue.astro @@ -4,7 +4,7 @@ import { IMAGE_DIR } from "@/utils/constants"; import BaseLayout from "@/layouts/Base"; import BackButton from "@/components/BackButton.astro"; import Help from "@/components/Help.astro"; -import "@/assets/styles/cards/queue.css"; +import "@/assets/styles/CardQueue.css"; const pageTitle = "Queue | Interactive Alphabet"; const pageDescription = diff --git a/src/pages/cards/slider.astro b/src/pages/cards/slider.astro index 7576351d..59669c4f 100644 --- a/src/pages/cards/slider.astro +++ b/src/pages/cards/slider.astro @@ -1,10 +1,10 @@ --- import { alphabetMapper } from "@/mappers/alphabet"; import { IMAGE_DIR } from "@/utils/constants"; -import BaseLayout from "@/layouts/Base"; +import Base from "@/layouts/Base"; import BackButton from "@/components/BackButton.astro"; import Help from "@/components/Help.astro"; -import "@/assets/styles/cards/slider.css"; +import "@/assets/styles/CardSlider.css"; const pageTitle = "Slider | Interactive Alphabet"; const pageDescription = "Explore the alphabet through interactive images. Click or use arrow keys to slide."; @@ -35,7 +35,7 @@ const items: Record = alphabetMapper.reduce( const entries = Object.entries(items); --- - +
    -
    - - + }); + + // Convert vertical scroll to horizontal + scroller.addEventListener( + "wheel", + (e) => { + if (Math.abs(e.deltaY) > Math.abs(e.deltaX)) { + e.preventDefault(); + scroller.scrollLeft += e.deltaY; + } + }, + { passive: false } + ); + }); + + diff --git a/src/pages/cards/stack.astro b/src/pages/cards/stack.astro index 7f30de69..9fed1dcb 100644 --- a/src/pages/cards/stack.astro +++ b/src/pages/cards/stack.astro @@ -1,10 +1,10 @@ --- import { alphabetMapper } from "@/mappers/alphabet"; import { IMAGE_DIR } from "@/utils/constants"; -import BaseLayout from "@/layouts/Base"; +import Base from "@/layouts/Base"; import BackButton from "@/components/BackButton.astro"; import Help from "@/components/Help.astro"; -import "@/assets/styles/cards/stack.css"; +import "@/assets/styles/CardStack.css"; const pageTitle = "Stack | Interactive Alphabet"; const pageDescription = @@ -43,7 +43,7 @@ function randomAngle(max: number, min: number): number { let currentIndex = 0; --- - +
    Use arrow keys or swipe your screen to navigate
    - - + (window as any).alphabetCleanup = function (): void { + clearTimeout(hintTimeout); + clearTimeout(resizeTimeout); + }; + })(); + + diff --git a/src/pages/clan.astro b/src/pages/clan.astro index b49b9af2..7e56aef1 100644 --- a/src/pages/clan.astro +++ b/src/pages/clan.astro @@ -1,8 +1,8 @@ --- -import "@/assets/styles/clan.css"; -import ClanCard from "@/components/ClanCard.astro"; +import "@/assets/styles/societree.css"; +import Card from "@/components/Card.astro"; import BaseLayout from "@/layouts/Base"; -import clanJson from "@/data/family.json"; +import clanJson from "public/assets/json/family.json"; import Back from "@/components/Back.astro"; interface Surname { @@ -92,7 +92,7 @@ const validClanData = Array.isArray(clanJson) ? clanJson.filter(isBranch) : [];
    - +
    diff --git a/src/pages/crossword.astro b/src/pages/crossword.astro index 23512c1f..629e0675 100644 --- a/src/pages/crossword.astro +++ b/src/pages/crossword.astro @@ -2,7 +2,7 @@ import "@/assets/styles/crossword.css"; import Back from "@/components/Back.astro"; import Help from "@/components/Help.astro"; -import Puzzle from "@/components/Puzzle.astro"; +import WordSearchPuzzle from "@/components/Puzzle.astro"; import BaseLayout from "@/layouts/Base"; --- @@ -15,5 +15,5 @@ import BaseLayout from "@/layouts/Base"; /> - + diff --git a/src/pages/draw.astro b/src/pages/draw.astro index e7a55dda..49fe57fd 100644 --- a/src/pages/draw.astro +++ b/src/pages/draw.astro @@ -1,13 +1,13 @@ --- -import BaseLayout from "@/layouts/Base"; +import Layout from "@/layouts/Base"; import Keyboard from "@/components/DrawKeyboard.astro"; import Help from "@/components/Help.astro"; import ImageIcon from "@/assets/icons/image.svg"; -import "@/assets/styles/draw.css"; +import "@/assets/styles/DrawPage.css"; import Back from "@/components/Back.astro"; --- - +
    @@ -92,7 +92,7 @@ import Back from "@/components/Back.astro";
    -
    + diff --git a/src/pages/glossary/days.astro b/src/pages/glossary/days.astro new file mode 100644 index 00000000..c5e9a642 --- /dev/null +++ b/src/pages/glossary/days.astro @@ -0,0 +1,45 @@ +--- +import "@/assets/styles/varnmala/greek-alphabet.css"; // Import the CSS styles +import BackButton from "@/components/BackButton.astro"; +import LetterCard from "@/components/LetterCard.astro"; +import glossaryData from "@/data/glossary.json"; +import BaseLayout from "@/layouts/Base"; + +const pageTitle = glossaryData.days.title; +const category = "days"; +const daysData = glossaryData.days.data; + +// Helper function to parse English and Hindi names +function parseDayNames(fullName: string): { english: string; hindi: string } { + const match = fullName.match(/^(.*?) \((.*?)\)$/); + if (match && match.length === 3) { + return { english: match[1].trim(), hindi: match[2].trim() }; + } + return { english: fullName, hindi: "" }; +} +--- + + + +
    + + +
    + { + daysData.map((entry) => { + const names = parseDayNames(entry.fullName); + const letterCardItem = { + id: entry.id, + letter: entry.letter, // e.g., "S" - for the main front display + text: names.hindi, // English name for the front + description: names.english + }; + return ; + }) + } +
    +
    +
    diff --git a/src/pages/glossary/flags.astro b/src/pages/glossary/flags.astro new file mode 100644 index 00000000..578d2121 --- /dev/null +++ b/src/pages/glossary/flags.astro @@ -0,0 +1,160 @@ +--- +import BaseLayout from "@/layouts/Base"; +import BackButton from "@/components/BackButton.astro"; +import "@/assets/styles/varnmala/greek-alphabet.css"; +import "@/assets/styles/glossary/flags.css"; +import glossaryData from "@/data/glossary.json"; + +const pageTitle = glossaryData.flags.title; +const flagsData = glossaryData.flags.data; + +const getFlagEmoji = (countryCode: string = "IN") => { + const codePoints = countryCode + .toUpperCase() + .split("") + .map((char) => 127397 + char.charCodeAt(0)); + return String.fromCodePoint(...codePoints); +}; +--- + + + +
    + + +
    + { + flagsData.map((entry) => { + const flagEmoji = getFlagEmoji(entry.countryCode); + return ( +
    +
    +
    +
    + + Flip Card + + +
    +
    +

    {flagEmoji}

    +
    +
    +

    {entry.text}

    +

    {entry.description}

    +
    +
    +
    +
    +
    + + Flip Card + + +
    +

    {flagEmoji}

    +
    +
    +
    + ); + }) + } +
    +
    +
    + + diff --git a/src/pages/glossary/index.astro b/src/pages/glossary/index.astro index 31a4ed4c..8b89d347 100644 --- a/src/pages/glossary/index.astro +++ b/src/pages/glossary/index.astro @@ -1,53 +1,102 @@ --- -import "@/assets/styles/board.css"; +import "@/assets/styles/alphabets/index.css"; +import "@/assets/styles/glossary/index.css"; import Back from "@/components/Back.astro"; -import CardLayout from "@/components/CardLayout.astro"; -import glossaryData from "@/data/glossary.json"; import BaseLayout from "@/layouts/Base"; -import type { CardSectionType } from "@/types/alphabet"; -import { sortById } from "@/utils"; -const glossarySections: CardSectionType[] = []; +const pageTitle = "Glossary"; -Object.entries(glossaryData) - .map(([key, value]) => { - const section: CardSectionType = { - id: value.id, - kind: key, - title: value.title || key.charAt(0).toUpperCase() + key.slice(1), - description: value.description || `Explore the ${key} category.`, - href: { - playground: { - link: `/glossary/${key}`, - icon: value.icon || "🔍", - text: "Explore" - } - } - }; - return section; - }) - .forEach((section) => { - if (!glossarySections.some((s) => s.kind === section.kind)) { - glossarySections.push(section); - } - }); +interface GlossarySection { + id: string; + title: string; + description: string; + href: string; + icon: string; +} -const title = "Glossary"; -const subtitle = "Explore various categories of knowledge and information"; +const glossarySections: GlossarySection[] = [ + { + id: "months", + title: "Months ", + description: "Learn about the twelve months, their names, and order.", + href: "/glossary/months", + icon: "📅" + }, + { + id: "sunsigns", + title: "Sun Signs", + description: "Explore the twelve zodiac sun signs and their characteristics.", + href: "/glossary/sunsign", + icon: "☀️" + }, + { + id: "flags", + title: "Country Flags", + description: "Discover flags from various countries around the world.", + href: "/glossary/flags", + icon: "🚩" + }, + { + id: "shapes", + title: "Geometric Shapes", + description: "Learn to identify different common geometric shapes.", + href: "/glossary/shapes", + icon: "💠" + }, + { + id: "days", + title: "Days", + description: "Learn about the seven days of the week, their names, and order.", + href: "/glossary/days", + icon: "📅" + }, + { + id: "seasons", + title: "Seasons", + description: "Explore the four seasons and their characteristics.", + href: "/glossary/seasons", + icon: "🌸" + }, + { + id: "colours", + title: "Colours", + description: "Learn about different colours and their names.", + href: "/glossary/colours", + icon: "🎨" + }, + { + id: "waqt", + title: "Waqt (Times of Day)", + description: "Learn about different times of the day and their Hindi names.", + href: "/glossary/waqt", + icon: "🕰️" + } +]; --- - + -
    -
    -

    {title}

    -

    {subtitle}

    +
    +
    +

    {pageTitle}

    -