chore: Merge main branch
This commit is contained in:
commit
7185361b65
49 changed files with 892 additions and 1104 deletions
129
.vscode/settings.json
vendored
129
.vscode/settings.json
vendored
|
|
@ -44,14 +44,6 @@
|
||||||
"rust-analyzer.cargo.extraEnv": {},
|
"rust-analyzer.cargo.extraEnv": {},
|
||||||
"rust-analyzer.check.targets": null,
|
"rust-analyzer.check.targets": null,
|
||||||
"rust-analyzer.showUnlinkedFileNotification": false,
|
"rust-analyzer.showUnlinkedFileNotification": false,
|
||||||
"search.exclude": {
|
|
||||||
"**/node_modules": true,
|
|
||||||
"**/bower_components": true,
|
|
||||||
"**/*.code-search": true,
|
|
||||||
"**/pnpm-lock.yaml": true,
|
|
||||||
"**/.gitignore": true,
|
|
||||||
"**/dist": true
|
|
||||||
},
|
|
||||||
|
|
||||||
// Disable the default formatter
|
// Disable the default formatter
|
||||||
"prettier.enable": false,
|
"prettier.enable": false,
|
||||||
|
|
@ -62,7 +54,6 @@
|
||||||
"source.organizeImports": "never"
|
"source.organizeImports": "never"
|
||||||
},
|
},
|
||||||
"eslint.runtime": "node",
|
"eslint.runtime": "node",
|
||||||
"eslint.useFlatConfig": true,
|
|
||||||
// Silent the stylistic rules in you IDE, but still auto fix them
|
// Silent the stylistic rules in you IDE, but still auto fix them
|
||||||
"eslint.rules.customizations": [
|
"eslint.rules.customizations": [
|
||||||
{ "rule": "style/*", "severity": "off", "fixable": true },
|
{ "rule": "style/*", "severity": "off", "fixable": true },
|
||||||
|
|
@ -87,26 +78,112 @@
|
||||||
"json",
|
"json",
|
||||||
"jsonc",
|
"jsonc",
|
||||||
"yaml",
|
"yaml",
|
||||||
"xml",
|
|
||||||
"astro",
|
"astro",
|
||||||
"toml"
|
"toml",
|
||||||
|
"graphql",
|
||||||
|
"gql",
|
||||||
|
"xml",
|
||||||
|
"css",
|
||||||
|
"less",
|
||||||
|
"scss",
|
||||||
|
"pcss",
|
||||||
|
"postcss"
|
||||||
],
|
],
|
||||||
"eslint.lintTask.enable": true,
|
|
||||||
"eslint.workingDirectories": [],
|
"eslint.options": {
|
||||||
|
"flags": ["unstable_ts_config"]
|
||||||
|
},
|
||||||
|
|
||||||
|
// updated 2024-08-03 17:32
|
||||||
|
// https://github.com/antfu/vscode-file-nesting-config
|
||||||
"explorer.fileNesting.enabled": true,
|
"explorer.fileNesting.enabled": true,
|
||||||
|
"explorer.fileNesting.expand": false,
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
"*.ts": "${capture}.js",
|
".clang-tidy": ".clang-format, .clangd, compile_commands.json",
|
||||||
"*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts",
|
".env": "*.env, .env.*, .envrc, env.d.ts",
|
||||||
"*.jsx": "${capture}.js",
|
".gitignore": ".gitattributes, .gitmodules, .gitmessage, .mailmap, .git-blame*",
|
||||||
"*.tsx": "${capture}.ts",
|
".project": ".classpath",
|
||||||
".npmrc": ".nvmrc, .yarnrc.yml",
|
"+layout.svelte": "+layout.ts,+layout.ts,+layout.js,+layout.server.ts,+layout.server.js,+layout.gql",
|
||||||
".gitignore": ".eslintignore, .prettierignore",
|
"+page.svelte": "+page.server.ts,+page.server.js,+page.ts,+page.js,+page.gql",
|
||||||
"README.md": "CONTRIBUTING.md, CODE_OF_CONDUCT.md, LICENSE",
|
"ansible.cfg": "ansible.cfg, .ansible-lint, requirements.yml",
|
||||||
"Cargo.toml": "Cargo.lock",
|
"app.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
".eslintrc.js": ".eslintcache",
|
"artisan": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, server.php, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, webpack.mix.js, windi.config.*",
|
||||||
".prettierrc.*": ".rustfmt.toml, .gitattributes, .editorconfig, .clippy.toml",
|
"astro.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, pnpm-workspace.yaml, .pnp.cjs, .pnp.loader.mjs",
|
"BUILD.bazel": "*.bzl, *.bazel, *.bazelrc, bazel.rc, .bazelignore, .bazelproject, WORKSPACE",
|
||||||
"tsconfig.json": "tsconfig.*.json",
|
"Cargo.toml": ".clippy.toml, .rustfmt.toml, cargo.lock, clippy.toml, cross.toml, rust-toolchain.toml, rustfmt.toml",
|
||||||
"flake.nix": "shell.nix, flake.lock, Cargo.nix"
|
"CMakeLists.txt": "*.cmake, *.cmake.in, .cmake-format.yaml, CMakePresets.json, CMakeCache.txt",
|
||||||
|
"composer.json": ".php*.cache, composer.lock, phpunit.xml*, psalm*.xml",
|
||||||
|
"default.nix": "shell.nix",
|
||||||
|
"deno.json*": "*.env, .env.*, .envrc, api-extractor.json, deno.lock, env.d.ts, import-map.json, import_map.json, jsconfig.*, tsconfig.*, tsdoc.*",
|
||||||
|
"Dockerfile": "*.dockerfile, .devcontainer.*, .dockerignore, captain-definition, compose.*, docker-compose.*, dockerfile*",
|
||||||
|
"flake.nix": "flake.lock",
|
||||||
|
"gatsby-config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, gatsby-browser.*, gatsby-node.*, gatsby-ssr.*, gatsby-transformer.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"gemfile": ".ruby-version, gemfile.lock",
|
||||||
|
"go.mod": ".air*, go.sum",
|
||||||
|
"go.work": "go.work.sum",
|
||||||
|
"hatch.toml": ".editorconfig, .flake8, .isort.cfg, .python-version, hatch.toml, requirements*.in, requirements*.pip, requirements*.txt, tox.ini",
|
||||||
|
"I*.cs": "$(capture).cs",
|
||||||
|
"Makefile": "*.mk",
|
||||||
|
"mix.exs": ".credo.exs, .dialyzer_ignore.exs, .formatter.exs, .iex.exs, .tool-versions, mix.lock",
|
||||||
|
"next.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, next-env.d.ts, next-i18next.config.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"nuxt.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .nuxtignore, .nuxtrc, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"package.json": ".browserslist*, .circleci*, .commitlint*, .cz-config.js, .czrc, .dlint.json, .dprint.json*, .editorconfig, .eslint*, .firebase*, .flowconfig, .github*, .gitlab*, .gitmojirc.json, .gitpod*, .huskyrc*, .jslint*, .knip.*, .lintstagedrc*, .markdownlint*, .node-version, .nodemon*, .npm*, .nvmrc, .pm2*, .pnp.*, .pnpm*, .prettier*, .pylintrc, .release-please*.json, .releaserc*, .ruff.toml, .sentry*, .simple-git-hooks*, .stackblitz*, .styleci*, .stylelint*, .tazerc*, .textlint*, .tool-versions, .travis*, .versionrc*, .vscode*, .watchman*, .xo-config*, .yamllint*, .yarnrc*, Procfile, apollo.config.*, appveyor*, azure-pipelines*, biome.json*, bower.json, build.config.*, bun.lockb, bunfig.toml, commitlint*, crowdin*, dangerfile*, dlint.json, dprint.json*, electron-builder.*, eslint*, firebase.json, grunt*, gulp*, jenkins*, knip.*, lerna*, lint-staged*, nest-cli.*, netlify*, nodemon*, npm-shrinkwrap.json, nx.*, package-lock.json, package.nls*.json, phpcs.xml, pm2.*, pnpm*, prettier*, pullapprove*, pyrightconfig.json, release-please*.json, release-tasks.sh, release.config.*, renovate*, rollup.config.*, rspack*, ruff.toml, simple-git-hooks*, sonar-project.properties, stylelint*, tslint*, tsup.config.*, turbo*, typedoc*, unlighthouse*, vercel*, vetur.config.*, webpack*, workspace.json, wrangler.toml, xo.config.*, yarn*",
|
||||||
|
"Pipfile": ".editorconfig, .flake8, .isort.cfg, .python-version, Pipfile, Pipfile.lock, requirements*.in, requirements*.pip, requirements*.txt, tox.ini",
|
||||||
|
"pubspec.yaml": ".metadata, .packages, all_lint_rules.yaml, analysis_options.yaml, build.yaml, pubspec.lock, pubspec_overrides.yaml",
|
||||||
|
"pyproject.toml": ".commitlint*, .dlint.json, .dprint.json*, .editorconfig, .eslint*, .flake8, .flowconfig, .isort.cfg, .jslint*, .lintstagedrc*, .markdownlint*, .pdm-python, .pdm.toml, .prettier*, .pylintrc, .python-version, .ruff.toml, .stylelint*, .textlint*, .xo-config*, .yamllint*, MANIFEST.in, Pipfile, Pipfile.lock, biome.json*, commitlint*, dangerfile*, dlint.json, dprint.json*, eslint*, hatch.toml, lint-staged*, pdm.lock, phpcs.xml, poetry.lock, poetry.toml, prettier*, pyproject.toml, pyrightconfig.json, requirements*.in, requirements*.pip, requirements*.txt, ruff.toml, setup.cfg, setup.py, stylelint*, tox.ini, tslint*, xo.config.*",
|
||||||
|
"quasar.conf.js": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, quasar.extensions.json, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"readme*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README-*, README_*, RELEASE_NOTES*, Readme-*, Readme_*, Release_Notes*, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme-*, readme_*, release_notes*, security.md, sponsors*",
|
||||||
|
"Readme*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README-*, README_*, RELEASE_NOTES*, Readme-*, Readme_*, Release_Notes*, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme-*, readme_*, release_notes*, security.md, sponsors*",
|
||||||
|
"README*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README-*, README_*, RELEASE_NOTES*, Readme-*, Readme_*, Release_Notes*, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme-*, readme_*, release_notes*, security.md, sponsors*",
|
||||||
|
"remix.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, remix.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"requirements.txt": ".editorconfig, .flake8, .isort.cfg, .python-version, requirements*.in, requirements*.pip, requirements*.txt, tox.ini",
|
||||||
|
"rush.json": ".browserslist*, .circleci*, .commitlint*, .cz-config.js, .czrc, .dlint.json, .dprint.json*, .editorconfig, .eslint*, .firebase*, .flowconfig, .github*, .gitlab*, .gitmojirc.json, .gitpod*, .huskyrc*, .jslint*, .knip.*, .lintstagedrc*, .markdownlint*, .node-version, .nodemon*, .npm*, .nvmrc, .pm2*, .pnp.*, .pnpm*, .prettier*, .pylintrc, .release-please*.json, .releaserc*, .ruff.toml, .sentry*, .simple-git-hooks*, .stackblitz*, .styleci*, .stylelint*, .tazerc*, .textlint*, .tool-versions, .travis*, .versionrc*, .vscode*, .watchman*, .xo-config*, .yamllint*, .yarnrc*, Procfile, apollo.config.*, appveyor*, azure-pipelines*, biome.json*, bower.json, build.config.*, bun.lockb, bunfig.toml, commitlint*, crowdin*, dangerfile*, dlint.json, dprint.json*, electron-builder.*, eslint*, firebase.json, grunt*, gulp*, jenkins*, knip.*, lerna*, lint-staged*, nest-cli.*, netlify*, nodemon*, npm-shrinkwrap.json, nx.*, package-lock.json, package.nls*.json, phpcs.xml, pm2.*, pnpm*, prettier*, pullapprove*, pyrightconfig.json, release-please*.json, release-tasks.sh, release.config.*, renovate*, rollup.config.*, rspack*, ruff.toml, simple-git-hooks*, sonar-project.properties, stylelint*, tslint*, tsup.config.*, turbo*, typedoc*, unlighthouse*, vercel*, vetur.config.*, webpack*, workspace.json, wrangler.toml, xo.config.*, yarn*",
|
||||||
|
"sanity.config.*": "sanity.cli.*, sanity.types.ts, schema.json",
|
||||||
|
"setup.cfg": ".editorconfig, .flake8, .isort.cfg, .python-version, MANIFEST.in, requirements*.in, requirements*.pip, requirements*.txt, setup.cfg, tox.ini",
|
||||||
|
"setup.py": ".editorconfig, .flake8, .isort.cfg, .python-version, MANIFEST.in, requirements*.in, requirements*.pip, requirements*.txt, setup.cfg, setup.py, tox.ini",
|
||||||
|
"shims.d.ts": "*.d.ts",
|
||||||
|
"svelte.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, houdini.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, mdsvex.config.js, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vite.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"vite.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"vue.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, sst.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
|
||||||
|
"*.asax": "$(capture).*.cs, $(capture).*.vb",
|
||||||
|
"*.ascx": "$(capture).*.cs, $(capture).*.vb",
|
||||||
|
"*.ashx": "$(capture).*.cs, $(capture).*.vb",
|
||||||
|
"*.aspx": "$(capture).*.cs, $(capture).*.vb",
|
||||||
|
"*.axaml": "$(capture).axaml.cs",
|
||||||
|
"*.bloc.dart": "$(capture).event.dart, $(capture).state.dart",
|
||||||
|
"*.c": "$(capture).h",
|
||||||
|
"*.cc": "$(capture).hpp, $(capture).h, $(capture).hxx, $(capture).hh",
|
||||||
|
"*.cjs": "$(capture).cjs.map, $(capture).*.cjs, $(capture)_*.cjs",
|
||||||
|
"*.component.ts": "$(capture).component.html, $(capture).component.spec.ts, $(capture).component.css, $(capture).component.scss, $(capture).component.sass, $(capture).component.less",
|
||||||
|
"*.cpp": "$(capture).hpp, $(capture).h, $(capture).hxx, $(capture).hh",
|
||||||
|
"*.cs": "$(capture).*.cs",
|
||||||
|
"*.cshtml": "$(capture).cshtml.cs",
|
||||||
|
"*.csproj": "*.config, *proj.user, appsettings.*, bundleconfig.json",
|
||||||
|
"*.css": "$(capture).css.map, $(capture).*.css",
|
||||||
|
"*.cxx": "$(capture).hpp, $(capture).h, $(capture).hxx, $(capture).hh",
|
||||||
|
"*.dart": "$(capture).freezed.dart, $(capture).g.dart",
|
||||||
|
"*.db": "*.db-shm, *.db-wal",
|
||||||
|
"*.ex": "$(capture).html.eex, $(capture).html.heex, $(capture).html.leex",
|
||||||
|
"*.fs": "$(capture).fs.js, $(capture).fs.js.map, $(capture).fs.jsx, $(capture).fs.ts, $(capture).fs.tsx, $(capture).fs.rs, $(capture).fs.php, $(capture).fs.dart",
|
||||||
|
"*.go": "$(capture)_test.go",
|
||||||
|
"*.java": "$(capture).class",
|
||||||
|
"*.js": "$(capture).js.map, $(capture).*.js, $(capture)_*.js",
|
||||||
|
"*.jsx": "$(capture).js, $(capture).*.jsx, $(capture)_*.js, $(capture)_*.jsx, $(capture).less, $(capture).module.less, $(capture).module.less.d.ts, $(capture).scss, $(capture).module.scss, $(capture).module.scss.d.ts",
|
||||||
|
"*.master": "$(capture).*.cs, $(capture).*.vb",
|
||||||
|
"*.md": "$(capture).*",
|
||||||
|
"*.mjs": "$(capture).mjs.map, $(capture).*.mjs, $(capture)_*.mjs",
|
||||||
|
"*.module.ts": "$(capture).resolver.ts, $(capture).controller.ts, $(capture).service.ts",
|
||||||
|
"*.mts": "$(capture).mts.map, $(capture).*.mts, $(capture)_*.mts",
|
||||||
|
"*.pubxml": "$(capture).pubxml.user",
|
||||||
|
"*.py": "$(capture).pyi",
|
||||||
|
"*.razor": "$(capture).razor.cs, $(capture).razor.css, $(capture).razor.scss",
|
||||||
|
"*.resx": "$(capture).*.resx, $(capture).designer.cs, $(capture).designer.vb",
|
||||||
|
"*.tex": "$(capture).acn, $(capture).acr, $(capture).alg, $(capture).aux, $(capture).bbl, $(capture).blg, $(capture).fdb_latexmk, $(capture).fls, $(capture).glg, $(capture).glo, $(capture).gls, $(capture).idx, $(capture).ind, $(capture).ist, $(capture).lof, $(capture).log, $(capture).lot, $(capture).out, $(capture).pdf, $(capture).synctex.gz, $(capture).toc, $(capture).xdv",
|
||||||
|
"*.ts": "$(capture).js, $(capture).d.ts.map, $(capture).*.ts, $(capture)_*.js, $(capture)_*.ts",
|
||||||
|
"*.tsx": "$(capture).ts, $(capture).*.tsx, $(capture)_*.ts, $(capture)_*.tsx, $(capture).less, $(capture).module.less, $(capture).module.less.d.ts, $(capture).scss, $(capture).module.scss, $(capture).module.scss.d.ts, $(capture).css.ts",
|
||||||
|
"*.vbproj": "*.config, *proj.user, appsettings.*, bundleconfig.json",
|
||||||
|
"*.vue": "$(capture).*.ts, $(capture).*.js, $(capture).story.vue",
|
||||||
|
"*.w": "$(capture).*.w, I$(capture).w",
|
||||||
|
"*.xaml": "$(capture).xaml.cs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
220
Cargo.lock
generated
220
Cargo.lock
generated
|
|
@ -223,8 +223,8 @@ dependencies = [
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"tokio",
|
"tokio",
|
||||||
"xz2",
|
"xz2",
|
||||||
"zstd 0.13.2",
|
"zstd",
|
||||||
"zstd-safe 7.2.1",
|
"zstd-safe",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -253,9 +253,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-io"
|
name = "async-io"
|
||||||
version = "2.3.3"
|
version = "2.3.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
|
checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-lock",
|
"async-lock",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
|
|
@ -267,7 +267,7 @@ dependencies = [
|
||||||
"rustix",
|
"rustix",
|
||||||
"slab",
|
"slab",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -283,9 +283,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-process"
|
name = "async-process"
|
||||||
version = "2.2.3"
|
version = "2.2.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a"
|
checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-channel",
|
"async-channel",
|
||||||
"async-io",
|
"async-io",
|
||||||
|
|
@ -298,7 +298,7 @@ dependencies = [
|
||||||
"futures-lite",
|
"futures-lite",
|
||||||
"rustix",
|
"rustix",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -314,9 +314,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-signal"
|
name = "async-signal"
|
||||||
version = "0.2.9"
|
version = "0.2.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32"
|
checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-io",
|
"async-io",
|
||||||
"async-lock",
|
"async-lock",
|
||||||
|
|
@ -327,7 +327,7 @@ dependencies = [
|
||||||
"rustix",
|
"rustix",
|
||||||
"signal-hook-registry",
|
"signal-hook-registry",
|
||||||
"slab",
|
"slab",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -721,9 +721,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.1.7"
|
version = "1.1.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc"
|
checksum = "f87b298677bb2f19f542743f145dd7f1de0fc7798bc41ee54684e4e16778c8a7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"jobserver",
|
"jobserver",
|
||||||
"libc",
|
"libc",
|
||||||
|
|
@ -931,9 +931,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-foundation-sys"
|
name = "core-foundation-sys"
|
||||||
version = "0.8.6"
|
version = "0.8.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
|
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-graphics"
|
name = "core-graphics"
|
||||||
|
|
@ -977,6 +977,21 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crc"
|
||||||
|
version = "3.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
|
||||||
|
dependencies = [
|
||||||
|
"crc-catalog",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crc-catalog"
|
||||||
|
version = "2.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crc32fast"
|
name = "crc32fast"
|
||||||
version = "1.4.2"
|
version = "1.4.2"
|
||||||
|
|
@ -1653,14 +1668,14 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "filetime"
|
name = "filetime"
|
||||||
version = "0.2.23"
|
version = "0.2.24"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
|
checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"redox_syscall 0.4.1",
|
"libredox",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2388,9 +2403,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hyper-util"
|
name = "hyper-util"
|
||||||
version = "0.1.6"
|
version = "0.1.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956"
|
checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
|
|
@ -2606,7 +2621,7 @@ dependencies = [
|
||||||
"hmac",
|
"hmac",
|
||||||
"iterator-sorted",
|
"iterator-sorted",
|
||||||
"k256",
|
"k256",
|
||||||
"pbkdf2 0.12.2",
|
"pbkdf2",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"scrypt",
|
"scrypt",
|
||||||
"serde",
|
"serde",
|
||||||
|
|
@ -2902,6 +2917,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.6.0",
|
"bitflags 2.6.0",
|
||||||
"libc",
|
"libc",
|
||||||
|
"redox_syscall 0.5.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2918,7 +2934,7 @@ dependencies = [
|
||||||
"tar",
|
"tar",
|
||||||
"ureq",
|
"ureq",
|
||||||
"vcpkg",
|
"vcpkg",
|
||||||
"zip 2.1.6",
|
"zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2964,6 +2980,16 @@ dependencies = [
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lzma-rs"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"crc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lzma-sys"
|
name = "lzma-sys"
|
||||||
version = "0.1.20"
|
version = "0.1.20"
|
||||||
|
|
@ -3414,9 +3440,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "object"
|
name = "object"
|
||||||
version = "0.36.2"
|
version = "0.36.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e"
|
checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
@ -3479,7 +3505,7 @@ dependencies = [
|
||||||
"whoami",
|
"whoami",
|
||||||
"winreg",
|
"winreg",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
"zip 0.6.6",
|
"zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -3655,17 +3681,6 @@ dependencies = [
|
||||||
"windows-targets 0.52.6",
|
"windows-targets 0.52.6",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "password-hash"
|
|
||||||
version = "0.4.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
|
|
||||||
dependencies = [
|
|
||||||
"base64ct",
|
|
||||||
"rand_core 0.6.4",
|
|
||||||
"subtle",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "paste"
|
name = "paste"
|
||||||
version = "1.0.15"
|
version = "1.0.15"
|
||||||
|
|
@ -3678,18 +3693,6 @@ version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pbkdf2"
|
|
||||||
version = "0.11.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
|
|
||||||
dependencies = [
|
|
||||||
"digest 0.10.7",
|
|
||||||
"hmac",
|
|
||||||
"password-hash",
|
|
||||||
"sha2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pbkdf2"
|
name = "pbkdf2"
|
||||||
version = "0.12.2"
|
version = "0.12.2"
|
||||||
|
|
@ -3883,9 +3886,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "piper"
|
name = "piper"
|
||||||
version = "0.2.3"
|
version = "0.2.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
|
checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"atomic-waker",
|
"atomic-waker",
|
||||||
"fastrand",
|
"fastrand",
|
||||||
|
|
@ -3936,9 +3939,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "polling"
|
name = "polling"
|
||||||
version = "3.7.2"
|
version = "3.7.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b"
|
checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"concurrent-queue",
|
"concurrent-queue",
|
||||||
|
|
@ -3946,7 +3949,7 @@ dependencies = [
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"rustix",
|
"rustix",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -4522,9 +4525,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-pki-types"
|
name = "rustls-pki-types"
|
||||||
version = "1.7.0"
|
version = "1.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
|
checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-webpki"
|
name = "rustls-webpki"
|
||||||
|
|
@ -4620,7 +4623,7 @@ version = "0.11.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
|
checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pbkdf2 0.12.2",
|
"pbkdf2",
|
||||||
"salsa20",
|
"salsa20",
|
||||||
"sha2",
|
"sha2",
|
||||||
]
|
]
|
||||||
|
|
@ -4693,9 +4696,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.204"
|
version = "1.0.205"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
|
checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
]
|
]
|
||||||
|
|
@ -4713,9 +4716,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_derive"
|
name = "serde_derive"
|
||||||
version = "1.0.204"
|
version = "1.0.205"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
|
checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|
@ -5443,9 +5446,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-codegen"
|
name = "tauri-codegen"
|
||||||
version = "2.0.0-rc.0"
|
version = "2.0.0-rc.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2407c7d37a491b16e530445c9611d91091cae198eea2ed424913b740215605f2"
|
checksum = "90a9e63ecd827d57228864764e0234935c9aac230099cf145197c8c08e754ced"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"brotli 3.5.0",
|
"brotli 3.5.0",
|
||||||
|
|
@ -5470,9 +5473,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-macros"
|
name = "tauri-macros"
|
||||||
version = "2.0.0-rc.0"
|
version = "2.0.0-rc.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d210893b693be00f569b4f54456803debe104b7675f368205f2b6e94bac09b34"
|
checksum = "a54f5d5b289aa6215ffcfed7d4ff9960a04b7a854436d04519a9fcf911050cba"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck 0.5.0",
|
"heck 0.5.0",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
|
|
@ -5484,9 +5487,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-plugin"
|
name = "tauri-plugin"
|
||||||
version = "2.0.0-rc.0"
|
version = "2.0.0-rc.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b352e4478af27bd7c76724bb426ebb32fc51baafb2186afabed4e706dc9e39d4"
|
checksum = "03ce2ac5e182251ff932750d69c9b240a78e44901a7a6234814d63c595b43660"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"glob",
|
"glob",
|
||||||
|
|
@ -5614,7 +5617,7 @@ dependencies = [
|
||||||
"tokio",
|
"tokio",
|
||||||
"url",
|
"url",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.52.0",
|
||||||
"zip 2.1.6",
|
"zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -5634,9 +5637,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-runtime"
|
name = "tauri-runtime"
|
||||||
version = "2.0.0-rc.0"
|
version = "2.0.0-rc.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6624fdf383ccafc9e8ad9205fe6e5c976b318efcd6b3662dde658c74e4254792"
|
checksum = "8f01b129b1ebdf09563c354760dbe7c0e96a166b4e33362d9c8d207f527c7ea5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dpi",
|
"dpi",
|
||||||
"gtk",
|
"gtk",
|
||||||
|
|
@ -5653,9 +5656,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-runtime-wry"
|
name = "tauri-runtime-wry"
|
||||||
version = "2.0.0-rc.0"
|
version = "2.0.0-rc.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9fd1a785c4281f8231b091593393b40cb3a800810c407b1ffed52de27ff1640a"
|
checksum = "fcda27639094ace2bf25f00bc10e35ea4e3af2f92753b1bdd2a174d1fa5a6292"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cocoa",
|
"cocoa",
|
||||||
"gtk",
|
"gtk",
|
||||||
|
|
@ -5707,9 +5710,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-utils"
|
name = "tauri-utils"
|
||||||
version = "2.0.0-rc.0"
|
version = "2.0.0-rc.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6f435eeaae1e69cf93cf19da0f727989eed2e5eb6fc63a8d21432f59dd3ac4ac"
|
checksum = "28bb83cffa26e9cb7a2b3d0c31ab87bf277f44aaaa90f17159aef4d37aabd051"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
"brotli 3.5.0",
|
"brotli 3.5.0",
|
||||||
|
|
@ -5755,15 +5758,15 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tempfile"
|
name = "tempfile"
|
||||||
version = "3.11.0"
|
version = "3.12.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53"
|
checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"fastrand",
|
"fastrand",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rustix",
|
"rustix",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -6285,9 +6288,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ureq"
|
name = "ureq"
|
||||||
version = "2.10.0"
|
version = "2.10.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "72139d247e5f97a3eff96229a7ae85ead5328a39efe76f8bf5a06313d505b6ea"
|
checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"log",
|
"log",
|
||||||
|
|
@ -7150,12 +7153,12 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "xdg-home"
|
name = "xdg-home"
|
||||||
version = "1.2.0"
|
version = "1.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8"
|
checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -7274,41 +7277,33 @@ dependencies = [
|
||||||
"syn 2.0.72",
|
"syn 2.0.72",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "zip"
|
|
||||||
version = "0.6.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
|
|
||||||
dependencies = [
|
|
||||||
"aes",
|
|
||||||
"byteorder",
|
|
||||||
"bzip2",
|
|
||||||
"constant_time_eq 0.1.5",
|
|
||||||
"crc32fast",
|
|
||||||
"crossbeam-utils",
|
|
||||||
"flate2",
|
|
||||||
"hmac",
|
|
||||||
"pbkdf2 0.11.0",
|
|
||||||
"sha1",
|
|
||||||
"time",
|
|
||||||
"zstd 0.11.2+zstd.1.5.2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zip"
|
name = "zip"
|
||||||
version = "2.1.6"
|
version = "2.1.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "40dd8c92efc296286ce1fbd16657c5dbefff44f1b4ca01cc5f517d8b7b3d3e2e"
|
checksum = "40dd8c92efc296286ce1fbd16657c5dbefff44f1b4ca01cc5f517d8b7b3d3e2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"aes",
|
||||||
"arbitrary",
|
"arbitrary",
|
||||||
|
"bzip2",
|
||||||
|
"constant_time_eq 0.3.0",
|
||||||
"crc32fast",
|
"crc32fast",
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
|
"deflate64",
|
||||||
"displaydoc",
|
"displaydoc",
|
||||||
"flate2",
|
"flate2",
|
||||||
|
"hmac",
|
||||||
"indexmap 2.3.0",
|
"indexmap 2.3.0",
|
||||||
|
"lzma-rs",
|
||||||
"memchr",
|
"memchr",
|
||||||
|
"pbkdf2",
|
||||||
|
"rand 0.8.5",
|
||||||
|
"sha1",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
"time",
|
||||||
|
"zeroize",
|
||||||
"zopfli",
|
"zopfli",
|
||||||
|
"zstd",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -7325,32 +7320,13 @@ dependencies = [
|
||||||
"simd-adler32",
|
"simd-adler32",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "zstd"
|
|
||||||
version = "0.11.2+zstd.1.5.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
|
|
||||||
dependencies = [
|
|
||||||
"zstd-safe 5.0.2+zstd.1.5.2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zstd"
|
name = "zstd"
|
||||||
version = "0.13.2"
|
version = "0.13.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
|
checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zstd-safe 7.2.1",
|
"zstd-safe",
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "zstd-safe"
|
|
||||||
version = "5.0.2+zstd.1.5.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
"zstd-sys",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,6 @@ rand = { version = "0.8.5" }
|
||||||
byteorder = { version = "1.5.0" }
|
byteorder = { version = "1.5.0" }
|
||||||
base64 = { version = "0.22" }
|
base64 = { version = "0.22" }
|
||||||
p256 = { version = "0.13.2", features = [ "ecdsa" ] }
|
p256 = { version = "0.13.2", features = [ "ecdsa" ] }
|
||||||
|
|
||||||
uuid = { version = "1.8", features = [
|
uuid = { version = "1.8", features = [
|
||||||
"serde",
|
"serde",
|
||||||
"v4"
|
"v4"
|
||||||
|
|
@ -164,10 +163,9 @@ tokio = { version = "1.38", features = [ "full" ] }
|
||||||
tokio-stream = { version = "0.1.15", features = [ "fs" ] }
|
tokio-stream = { version = "0.1.15", features = [ "fs" ] }
|
||||||
notify = { version = "6.1", default-features = false }
|
notify = { version = "6.1", default-features = false }
|
||||||
notify-debouncer-mini = { version = "0.4", default-features = false }
|
notify-debouncer-mini = { version = "0.4", default-features = false }
|
||||||
|
|
||||||
tempfile = { version = "3.10" }
|
tempfile = { version = "3.10" }
|
||||||
dunce = { version = "1.0.4" }
|
dunce = { version = "1.0.4" }
|
||||||
zip = { version = "0.6" }
|
zip = { version = "2.1.6" }
|
||||||
dirs = { version = "5.0" }
|
dirs = { version = "5.0" }
|
||||||
async_zip = { version = "0.0.17", features = [ "full" ] }
|
async_zip = { version = "0.0.17", features = [ "full" ] }
|
||||||
async-compression = { version = "0.4.12", features = [
|
async-compression = { version = "0.4.12", features = [
|
||||||
|
|
|
||||||
|
|
@ -25,14 +25,12 @@ tauri-build = { workspace = true, features = [ "isolation" ] }
|
||||||
[dependencies]
|
[dependencies]
|
||||||
onelauncher = { workspace = true, features = [ "tauri" ] }
|
onelauncher = { workspace = true, features = [ "tauri" ] }
|
||||||
onelauncher_macros = { workspace = true }
|
onelauncher_macros = { workspace = true }
|
||||||
|
|
||||||
tauri-plugin-shell = { workspace = true }
|
tauri-plugin-shell = { workspace = true }
|
||||||
tauri-plugin-window-state = { workspace = true }
|
tauri-plugin-window-state = { workspace = true }
|
||||||
tauri-plugin-single-instance = { workspace = true }
|
tauri-plugin-single-instance = { workspace = true }
|
||||||
tauri-plugin-updater = { workspace = true }
|
tauri-plugin-updater = { workspace = true }
|
||||||
tauri-plugin-clipboard-manager = { workspace = true }
|
tauri-plugin-clipboard-manager = { workspace = true }
|
||||||
tauri-plugin-dialog = { workspace = true }
|
tauri-plugin-dialog = { workspace = true }
|
||||||
|
|
||||||
tauri-specta = { workspace = true }
|
tauri-specta = { workspace = true }
|
||||||
specta = { workspace = true }
|
specta = { workspace = true }
|
||||||
specta-typescript = { workspace = true }
|
specta-typescript = { workspace = true }
|
||||||
|
|
@ -48,7 +46,6 @@ thiserror = { workspace = true }
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
chrono = { workspace = true }
|
chrono = { workspace = true }
|
||||||
uuid = { workspace = true }
|
uuid = { workspace = true }
|
||||||
|
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
tracing-error = { workspace = true }
|
tracing-error = { workspace = true }
|
||||||
|
|
||||||
|
|
@ -69,6 +66,7 @@ features = [ "test" ]
|
||||||
|
|
||||||
[target.'cfg(target_os = "macos")'.dependencies]
|
[target.'cfg(target_os = "macos")'.dependencies]
|
||||||
cocoa.workspace = true
|
cocoa.workspace = true
|
||||||
|
|
||||||
objc.workspace = true
|
objc.workspace = true
|
||||||
|
|
||||||
[target.'cfg(target_os = "linux")'.dependencies]
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,6 @@
|
||||||
"@onelauncher/frontend": "workspace:*"
|
"@onelauncher/frontend": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tauri-apps/cli": "2.0.0-rc.0"
|
"@tauri-apps/cli": "2.0.0-rc.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -194,8 +194,8 @@ pub async fn get_screenshots(uuid: Uuid) -> Result<Vec<String>, String> {
|
||||||
.await?
|
.await?
|
||||||
.ok_or("cluster not found")?;
|
.ok_or("cluster not found")?;
|
||||||
|
|
||||||
let screenshots = cluster::content::screenshots::get_screenshots(&cluster.cluster_path())
|
let screenshots =
|
||||||
.await?;
|
cluster::content::screenshots::get_screenshots(&cluster.cluster_path()).await?;
|
||||||
|
|
||||||
Ok(screenshots)
|
Ok(screenshots)
|
||||||
}
|
}
|
||||||
|
|
@ -207,8 +207,7 @@ pub async fn get_worlds(uuid: Uuid) -> Result<Vec<String>, String> {
|
||||||
.await?
|
.await?
|
||||||
.ok_or("cluster not found")?;
|
.ok_or("cluster not found")?;
|
||||||
|
|
||||||
let screenshots = cluster::content::worlds::get_worlds(&cluster.cluster_path())
|
let screenshots = cluster::content::worlds::get_worlds(&cluster.cluster_path()).await?;
|
||||||
.await?;
|
|
||||||
|
|
||||||
Ok(screenshots)
|
Ok(screenshots)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use onelauncher::{data::MinecraftCredentials, store::MinecraftLogin};
|
use onelauncher::data::MinecraftCredentials;
|
||||||
use onelauncher::minecraft;
|
use onelauncher::minecraft;
|
||||||
|
use onelauncher::store::MinecraftLogin;
|
||||||
use tauri::{AppHandle, Manager};
|
use tauri::{AppHandle, Manager};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
|
@ -23,7 +24,9 @@ pub async fn remove_user(uuid: Uuid) -> Result<(), String> {
|
||||||
|
|
||||||
#[specta::specta]
|
#[specta::specta]
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn get_default_user(fallback: Option<bool>) -> Result<Option<MinecraftCredentials>, String> {
|
pub async fn get_default_user(
|
||||||
|
fallback: Option<bool>,
|
||||||
|
) -> Result<Option<MinecraftCredentials>, String> {
|
||||||
let uuid = minecraft::get_default_user().await?;
|
let uuid = minecraft::get_default_user().await?;
|
||||||
|
|
||||||
if let Some(fallback) = fallback {
|
if let Some(fallback) = fallback {
|
||||||
|
|
@ -54,7 +57,10 @@ pub async fn auth_login(handle: AppHandle) -> Result<Option<MinecraftCredentials
|
||||||
Ok(result)
|
Ok(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn spawn_webview(handle: AppHandle, flow: MinecraftLogin) -> Result<Option<MinecraftCredentials>, String> {
|
async fn spawn_webview(
|
||||||
|
handle: AppHandle,
|
||||||
|
flow: MinecraftLogin,
|
||||||
|
) -> Result<Option<MinecraftCredentials>, String> {
|
||||||
let now = chrono::Utc::now();
|
let now = chrono::Utc::now();
|
||||||
|
|
||||||
if let Some(win) = handle.get_webview_window("login") {
|
if let Some(win) = handle.get_webview_window("login") {
|
||||||
|
|
@ -71,11 +77,11 @@ async fn spawn_webview(handle: AppHandle, flow: MinecraftLogin) -> Result<Option
|
||||||
.map_err(|err| err.to_string())?,
|
.map_err(|err| err.to_string())?,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.title("Log into OneLauncher")
|
.title("Log into OneLauncher")
|
||||||
.always_on_top(true)
|
.always_on_top(true)
|
||||||
.center()
|
.center()
|
||||||
.build()
|
.build()
|
||||||
.map_err(|err| err.to_string())?;
|
.map_err(|err| err.to_string())?;
|
||||||
|
|
||||||
win.request_user_attention(Some(tauri::UserAttentionType::Critical))
|
win.request_user_attention(Some(tauri::UserAttentionType::Critical))
|
||||||
.map_err(|err| err.to_string())?;
|
.map_err(|err| err.to_string())?;
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,13 @@
|
||||||
"overlayscrollbars": "^2.10.0",
|
"overlayscrollbars": "^2.10.0",
|
||||||
"overlayscrollbars-solid": "^0.5.5",
|
"overlayscrollbars-solid": "^0.5.5",
|
||||||
"pathe": "^1.1.2",
|
"pathe": "^1.1.2",
|
||||||
"solid-js": "^1.8.19",
|
"solid-js": "^1.8.20",
|
||||||
"solid-transition-group": "^0.2.3",
|
"solid-transition-group": "^0.2.3",
|
||||||
"uuid": "^10.0.0"
|
"uuid": "^10.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@solidjs/testing-library": "^0.8.9",
|
"@solidjs/testing-library": "^0.8.9",
|
||||||
"@tauri-apps/cli": "2.0.0-rc.0",
|
"@tauri-apps/cli": "2.0.0-rc.3",
|
||||||
"@testing-library/jest-dom": "^6.4.8",
|
"@testing-library/jest-dom": "^6.4.8",
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"jsdom": "^24.1.1",
|
"jsdom": "^24.1.1",
|
||||||
|
|
@ -49,6 +49,6 @@
|
||||||
"unocss": "^0.61.9",
|
"unocss": "^0.61.9",
|
||||||
"vite-plugin-solid": "^2.10.2",
|
"vite-plugin-solid": "^2.10.2",
|
||||||
"vite-plugin-solid-svg": "^0.8.1",
|
"vite-plugin-solid-svg": "^0.8.1",
|
||||||
"vite-tsconfig-paths": "^4.3.2"
|
"vite-tsconfig-paths": "^5.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,16 +18,16 @@ function App(props: ParentProps) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<GlobalContexts>
|
<GlobalContexts>
|
||||||
<main class="flex flex-col bg-primary w-full min-h-screen overflow-hidden h-screen max-h-screen text-fg-primary">
|
<main class="h-screen max-h-screen min-h-screen w-full flex flex-col overflow-hidden bg-primary text-fg-primary">
|
||||||
<WindowFrame />
|
<WindowFrame />
|
||||||
<div class="flex flex-col px-8">
|
<div class="flex flex-col px-8">
|
||||||
<Navbar />
|
<Navbar />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="relative h-full w-full overflow-hidden">
|
<div class="relative h-full w-full overflow-hidden">
|
||||||
<div class="absolute top-0 left-0 flex flex-col h-full w-full overflow-x-hidden">
|
<div class="absolute left-0 top-0 h-full w-full flex flex-col overflow-x-hidden">
|
||||||
<ErrorBoundary>
|
<ErrorBoundary>
|
||||||
<OverlayScrollbarsComponent class="os-hide-horizontal-scrollbar absolute top-0 left-0 flex flex-col h-full w-full overflow-x-hidden overflow-y-auto px-8 pb-8">
|
<OverlayScrollbarsComponent class="os-hide-horizontal-scrollbar absolute left-0 top-0 h-full w-full flex flex-col overflow-x-hidden overflow-y-auto px-8 pb-8">
|
||||||
<AnimatedRoutes>
|
<AnimatedRoutes>
|
||||||
{props.children}
|
{props.children}
|
||||||
</AnimatedRoutes>
|
</AnimatedRoutes>
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ function NavbarLink(props: NavbarLinkProps) {
|
||||||
return (
|
return (
|
||||||
<A
|
<A
|
||||||
href={props.path}
|
href={props.path}
|
||||||
class="text-lg px-4 py-2 hover:bg-component-bg-hover rounded-lg hover:text-fg-primary-hover"
|
class="rounded-lg px-4 py-2 text-lg hover:bg-component-bg-hover hover:text-fg-primary-hover"
|
||||||
inactiveClass="text-fg-secondary"
|
inactiveClass="text-fg-secondary"
|
||||||
activeClass="text-fg-primary"
|
activeClass="text-fg-primary"
|
||||||
end
|
end
|
||||||
|
|
@ -41,9 +41,9 @@ function Navbar() {
|
||||||
let notificationButton!: HTMLButtonElement;
|
let notificationButton!: HTMLButtonElement;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-row *:flex-1 items-center min-h-[60px] h-15">
|
<div class="h-15 min-h-[60px] flex flex-row items-center *:flex-1">
|
||||||
<div>
|
<div>
|
||||||
<div onClick={() => open(WEBSITE)} class="flex items-center justify-center active:scale-90 transition-transform w-min">
|
<div onClick={() => open(WEBSITE)} class="w-min flex items-center justify-center transition-transform active:scale-90">
|
||||||
<PolyfrostFull />
|
<PolyfrostFull />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -52,7 +52,7 @@ function Navbar() {
|
||||||
<NavbarLink path="/browser" label="Browser" />
|
<NavbarLink path="/browser" label="Browser" />
|
||||||
<NavbarLink path="/updates" label="Updates" />
|
<NavbarLink path="/updates" label="Updates" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row justify-end items-center gap-x-2 relative">
|
<div class="relative flex flex-row items-center justify-end gap-x-2">
|
||||||
<Button buttonStyle="icon">
|
<Button buttonStyle="icon">
|
||||||
<TerminalBrowserIcon />
|
<TerminalBrowserIcon />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
@ -65,7 +65,7 @@ function Navbar() {
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="icon"
|
buttonStyle="icon"
|
||||||
ref={notificationButton}
|
ref={notificationButton}
|
||||||
class="[&>div]:absolute relative"
|
class="relative [&>div]:absolute"
|
||||||
onClick={() => setNotificationMenuOpen(!notificationMenuOpen())}
|
onClick={() => setNotificationMenuOpen(!notificationMenuOpen())}
|
||||||
>
|
>
|
||||||
<Bell01Icon />
|
<Bell01Icon />
|
||||||
|
|
@ -82,7 +82,7 @@ function Navbar() {
|
||||||
onClick={() => setProfileMenuOpen(!profileMenuOpen())}
|
onClick={() => setProfileMenuOpen(!profileMenuOpen())}
|
||||||
class="hover:opacity-70"
|
class="hover:opacity-70"
|
||||||
>
|
>
|
||||||
<PlayerHead class="min-w-8 min-h-8 w-8 h-8 max-w-8 max-h-8 rounded-md" uuid={controller.defaultAccount()?.id} />
|
<PlayerHead class="h-8 max-h-8 max-w-8 min-h-8 min-w-8 w-8 rounded-md" uuid={controller.defaultAccount()?.id} />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ import type { ParentProps } from 'solid-js';
|
||||||
|
|
||||||
function ScrollableContainer(props: ParentProps) {
|
function ScrollableContainer(props: ParentProps) {
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-col flex-1 overflow-hidden w-[calc(100%+14px)]">
|
<div class="w-[calc(100%+14px)] flex flex-1 flex-col overflow-hidden">
|
||||||
<OverlayScrollbarsComponent class="os-hide-horizontal-scrollbar relative flex-1">
|
<OverlayScrollbarsComponent class="os-hide-horizontal-scrollbar relative flex-1">
|
||||||
<div class="flex flex-col absolute w-[calc(100%-14px)] h-full gap-1">
|
<div class="absolute h-full w-[calc(100%-14px)] flex flex-col gap-1">
|
||||||
{props.children}
|
{props.children}
|
||||||
</div>
|
</div>
|
||||||
</OverlayScrollbarsComponent>
|
</OverlayScrollbarsComponent>
|
||||||
|
|
|
||||||
|
|
@ -10,22 +10,22 @@ export type SettingsRowProps = ParentProps & {
|
||||||
function SettingsRow(props: SettingsRowProps) {
|
function SettingsRow(props: SettingsRowProps) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
class="flex flex-row bg-component-bg rounded-xl gap-3.5 p-4 items-center"
|
class="flex flex-row items-center gap-3.5 rounded-xl bg-component-bg p-4"
|
||||||
classList={{
|
classList={{
|
||||||
'bg-component-bg-disabled': props.disabled,
|
'bg-component-bg-disabled': props.disabled,
|
||||||
'text-fg-primary-disabled': props.disabled,
|
'text-fg-primary-disabled': props.disabled,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex justify-center items-center h-8 w-8">
|
<div class="h-8 w-8 flex items-center justify-center">
|
||||||
{props.icon}
|
{props.icon}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-col gap-2 flex-1">
|
<div class="flex flex-1 flex-col gap-2">
|
||||||
<h3 class="text-lg">{props.title}</h3>
|
<h3 class="text-lg">{props.title}</h3>
|
||||||
<p class="text-wrap text-sm">{props.description}</p>
|
<p class="text-wrap text-sm">{props.description}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex h-9 flex-row justify-center items-center gap-2">
|
<div class="h-9 flex flex-row items-center justify-center gap-2">
|
||||||
{props.children}
|
{props.children}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,12 @@ function Sidebar(props: SidebarProps) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-col w-52">
|
<div class="w-52 flex flex-col">
|
||||||
<For each={Object.keys(props.links)}>
|
<For each={Object.keys(props.links)}>
|
||||||
{section => (
|
{section => (
|
||||||
<div class="flex flex-col gap-y-2">
|
<div class="flex flex-col gap-y-2">
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-fg-secondary text-xs font-medium m-1.5 mt-5">{section.toUpperCase()}</h3>
|
<h3 class="m-1.5 mt-5 text-xs text-fg-secondary font-medium">{section.toUpperCase()}</h3>
|
||||||
<div class="flex flex-col gap-y-1 fill-fg-primary text-fg-primary font-medium">
|
<div class="flex flex-col gap-y-1 fill-fg-primary text-fg-primary font-medium">
|
||||||
<For each={props.links[section]}>
|
<For each={props.links[section]}>
|
||||||
{(link) => {
|
{(link) => {
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ interface TitlebarButtonProps {
|
||||||
|
|
||||||
function TitlebarButton(props: TitlebarButtonProps) {
|
function TitlebarButton(props: TitlebarButtonProps) {
|
||||||
return (
|
return (
|
||||||
<button class="flex items-center justify-center w-8 h-8 group" onClick={e => props.onClick(e)}>
|
<button class="group h-8 w-8 flex items-center justify-center" onClick={e => props.onClick(e)}>
|
||||||
<div class="rounded-lg group-hover:bg-primary p-1">
|
<div class="rounded-lg p-1 group-hover:bg-primary">
|
||||||
<props.icon class={`w-[18px] h-[18px] stroke-slate ${props.danger ? 'group-hover:stroke-danger' : 'group-hover:stroke-white'}`} />
|
<props.icon class={`w-[18px] h-[18px] stroke-slate ${props.danger ? 'group-hover:stroke-danger' : 'group-hover:stroke-white'}`} />
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -51,7 +51,7 @@ function WindowFrame() {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div data-tauri-drag-region class="z-[99999] flex flex-row justify-between items-center w-screen h-8 bg-secondary gap-0.5 pr-0.5">
|
<div data-tauri-drag-region class="z-[99999] h-8 w-screen flex flex-row items-center justify-between gap-0.5 bg-secondary pr-0.5">
|
||||||
<div class="flex flex-row items-center">
|
<div class="flex flex-row items-center">
|
||||||
<TitlebarButton icon={ChevronLeftIcon} onClick={() => history.back()} />
|
<TitlebarButton icon={ChevronLeftIcon} onClick={() => history.back()} />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ function Dropdown(props: DropdownProps) {
|
||||||
iconRight={<ChevronDownIcon />}
|
iconRight={<ChevronDownIcon />}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="flex-1 flex flex-row items-center text-nowrap gap-1 h-full overflow-hidden"
|
class="h-full flex flex-1 flex-row items-center gap-1 overflow-hidden text-nowrap"
|
||||||
>
|
>
|
||||||
<span>{split.text}</span>
|
<span>{split.text}</span>
|
||||||
{items()[selected()]}
|
{items()[selected()]}
|
||||||
|
|
@ -79,7 +79,7 @@ function Dropdown(props: DropdownProps) {
|
||||||
<Index each={items()}>
|
<Index each={items()}>
|
||||||
{(item, index) => (
|
{(item, index) => (
|
||||||
<div onClick={() => select(index)}>
|
<div onClick={() => select(index)}>
|
||||||
<div class="hover:bg-gray-05 p-2 rounded-lg flex flex-row gap-2 justify-between items-center">
|
<div class="flex flex-row items-center justify-between gap-2 rounded-lg p-2 hover:bg-gray-05">
|
||||||
{item()}
|
{item()}
|
||||||
<div class={styles.selected! + (selected() === index ? ` ${styles.visible}` : '')} />
|
<div class={styles.selected! + (selected() === index ? ` ${styles.visible}` : '')} />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ function FormattedLog(props: FormattedLogProps) {
|
||||||
const lines = createMemo(() => props.log.split('\n'));
|
const lines = createMemo(() => props.log.split('\n'));
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="bg-component-bg flex flex-1 h-full font-mono font-medium overflow-auto p-2 rounded-md mt-2">
|
<div class="mt-2 h-full flex flex-1 overflow-auto rounded-md bg-component-bg p-2 font-medium font-mono">
|
||||||
<OverlayScrollbarsComponent class="flex-1 h-full relative">
|
<OverlayScrollbarsComponent class="relative h-full flex-1">
|
||||||
<code class={styles.log}>
|
<code class={styles.log}>
|
||||||
<For each={lines()}>
|
<For each={lines()}>
|
||||||
{line => <Line line={line} />}
|
{line => <Line line={line} />}
|
||||||
|
|
|
||||||
|
|
@ -23,15 +23,15 @@ function ModCard(props: ManagedPackage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div onClick={redirect} class="flex flex-col overflow-hidden rounded-lg bg-component-bg max-w-53 min-w-53 w-full max-h-68 min-h-68 h-full">
|
<div onClick={redirect} class="h-full max-h-68 max-w-53 min-h-68 min-w-53 w-full flex flex-col overflow-hidden rounded-lg bg-component-bg">
|
||||||
<div class="relative h-28 overflow-hidden flex justify-center items-center">
|
<div class="relative h-28 flex items-center justify-center overflow-hidden">
|
||||||
<img class="absolute filter-blur-xl z-0 max-w-none w-7/6" src={props.icon_url || ''} alt={`Icon for ${props.title}`} />
|
<img class="absolute z-0 max-w-none w-7/6 filter-blur-xl" src={props.icon_url || ''} alt={`Icon for ${props.title}`} />
|
||||||
<img class="relative w-2/5 aspect-ratio-square z-1 rounded-md image-render-auto" src={props.icon_url || ''} alt={`Icon for ${props.title}`} />
|
<img class="relative z-1 aspect-ratio-square w-2/5 rounded-md image-render-auto" src={props.icon_url || ''} alt={`Icon for ${props.title}`} />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col flex-1 p-3 gap-4">
|
<div class="flex flex-1 flex-col gap-4 p-3">
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
<h5 class="font-medium text-fg-primary">{props.title}</h5>
|
<h5 class="text-fg-primary font-medium">{props.title}</h5>
|
||||||
<p class="text-fg-secondary text-xs">
|
<p class="text-xs text-fg-secondary">
|
||||||
By
|
By
|
||||||
{' '}
|
{' '}
|
||||||
<span class="text-fg-primary">Author TODO</span>
|
<span class="text-fg-primary">Author TODO</span>
|
||||||
|
|
@ -42,16 +42,16 @@ function ModCard(props: ManagedPackage) {
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="text-fg-secondary text-sm flex-1 max-h-13 overflow-hidden line-height-snug">{props.description}</p>
|
<p class="max-h-13 flex-1 overflow-hidden text-sm text-fg-secondary line-height-snug">{props.description}</p>
|
||||||
|
|
||||||
<div class="flex flex-row gap-4 text-xs">
|
<div class="flex flex-row gap-4 text-xs">
|
||||||
<div class="flex flex-row items-center gap-2">
|
<div class="flex flex-row items-center gap-2">
|
||||||
<Download01Icon class="w-4 h-4" />
|
<Download01Icon class="h-4 w-4" />
|
||||||
{abbreviateNumber(props.downloads)}
|
{abbreviateNumber(props.downloads)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center gap-2">
|
<div class="flex flex-row items-center gap-2">
|
||||||
<HeartIcon class="w-4 h-4" />
|
<HeartIcon class="h-4 w-4" />
|
||||||
{abbreviateNumber(props.followers)}
|
{abbreviateNumber(props.followers)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ function ContextMenu(props: ContextMenuProps) {
|
||||||
visible={props.visible}
|
visible={props.visible}
|
||||||
setVisible={props.setVisible}
|
setVisible={props.setVisible}
|
||||||
>
|
>
|
||||||
<div ref={setRef} class="bg-secondary rounded-xl border border-gray-05 p-1 shadow-md shadow-black/30">
|
<div ref={setRef} class="border border-gray-05 rounded-xl bg-secondary p-1 shadow-black/30 shadow-md">
|
||||||
<div class="flex flex-col gap-y-1 text-fg-primary">
|
<div class="flex flex-col gap-y-1 text-fg-primary">
|
||||||
{props.children}
|
{props.children}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -46,7 +46,7 @@ function ContextMenu(props: ContextMenuProps) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ContextMenu.Seperator = function () {
|
ContextMenu.Seperator = function () {
|
||||||
return <div class="border-b mx-1 border-gray-05" />;
|
return <div class="mx-1 border-b border-gray-05" />;
|
||||||
};
|
};
|
||||||
|
|
||||||
interface ContextMenuRowProps {
|
interface ContextMenuRowProps {
|
||||||
|
|
@ -59,7 +59,7 @@ ContextMenu.Row = function (props: ContextMenuRowProps) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
onClick={e => props.onClick?.(e)}
|
onClick={e => props.onClick?.(e)}
|
||||||
class="flex items-center gap-x-2 m-px px-1.5 py-0.5 rounded-lg hover:bg-gray-05 active:bg-gray-10 [&>svg]:w-[18px]"
|
class="m-px flex items-center gap-x-2 rounded-lg px-1.5 py-0.5 [&>svg]:w-[18px] active:bg-gray-10 hover:bg-gray-05"
|
||||||
>
|
>
|
||||||
{props.icon}
|
{props.icon}
|
||||||
{props.text}
|
{props.text}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ function FullscreenOverlay(props: FullscreenOverlayProps) {
|
||||||
class={`fixed top-0 left-0 w-screen h-screen bg-black/60 backdrop-blur-sm backdrop-grayscale transition-opacity ${props.visible() ? 'opacity-100 pointer-events-auto' : 'opacity-0 pointer-events-none'}`}
|
class={`fixed top-0 left-0 w-screen h-screen bg-black/60 backdrop-blur-sm backdrop-grayscale transition-opacity ${props.visible() ? 'opacity-100 pointer-events-auto' : 'opacity-0 pointer-events-none'}`}
|
||||||
>
|
>
|
||||||
|
|
||||||
<div class="absolute top-0 left-0 w-screen h-screen flex justify-center items-center" onClick={onBackdropClick}>
|
<div class="absolute left-0 top-0 h-screen w-screen flex items-center justify-center" onClick={onBackdropClick}>
|
||||||
{props.children}
|
{props.children}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ export type ModalProps = {
|
||||||
|
|
||||||
function Modal(props: ModalProps) {
|
function Modal(props: ModalProps) {
|
||||||
return (
|
return (
|
||||||
<div ref={mergeRefs(props.ref)} class="bg-primary border border-white/5 p-4 rounded-lg text-center flex flex-col gap-y-2 min-w-xs">
|
<div ref={mergeRefs(props.ref)} class="min-w-xs flex flex-col gap-y-2 border border-white/5 rounded-lg bg-primary p-4 text-center">
|
||||||
{props.children}
|
{props.children}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
@ -154,7 +154,7 @@ Modal.Simple = function (props: ModalSimpleProps) {
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
{split.children}
|
{split.children}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row gap-x-4 [&>*]:flex-1 mt-2">
|
<div class="mt-2 flex flex-row gap-x-4 [&>*]:flex-1">
|
||||||
<For each={split.buttons}>
|
<For each={split.buttons}>
|
||||||
{button => (
|
{button => (
|
||||||
<ModalButton props={button} />
|
<ModalButton props={button} />
|
||||||
|
|
@ -244,19 +244,19 @@ Modal.Delete = function (props: ModalDeleteProps) {
|
||||||
>
|
>
|
||||||
{split.children || (
|
{split.children || (
|
||||||
<>
|
<>
|
||||||
<div class="flex flex-col justify-center items-center gap-y-3">
|
<div class="flex flex-col items-center justify-center gap-y-3">
|
||||||
<p>Are you sure you want to delete this item?</p>
|
<p>Are you sure you want to delete this item?</p>
|
||||||
<p class="text-danger uppercase w-82 line-height-normal">
|
<p class="w-82 text-danger line-height-normal uppercase">
|
||||||
Doing this will
|
Doing this will
|
||||||
{' '}
|
{' '}
|
||||||
<span class="underline font-bold">delete</span>
|
<span class="font-bold underline">delete</span>
|
||||||
{' '}
|
{' '}
|
||||||
your entire
|
your entire
|
||||||
{' '}
|
{' '}
|
||||||
<br />
|
<br />
|
||||||
data
|
data
|
||||||
{' '}
|
{' '}
|
||||||
<span class="underline font-bold">FOREVER</span>
|
<span class="font-bold underline">FOREVER</span>
|
||||||
.
|
.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,11 @@ function AccountComponent(props: AccountComponentProps) {
|
||||||
onClick={login}
|
onClick={login}
|
||||||
class={`flex flex-row justify-between p-2 rounded-lg ${props.loggedIn !== true && 'hover:bg-gray-05 active:bg-gray-10 hover:text-fg-primary-hover'}`}
|
class={`flex flex-row justify-between p-2 rounded-lg ${props.loggedIn !== true && 'hover:bg-gray-05 active:bg-gray-10 hover:text-fg-primary-hover'}`}
|
||||||
>
|
>
|
||||||
<div class="flex flex-row justify-start flex-1 gap-x-3">
|
<div class="flex flex-1 flex-row justify-start gap-x-3">
|
||||||
<PlayerHead class="w-8 h-8 rounded-md" uuid={props.account!.id} />
|
<PlayerHead class="h-8 w-8 rounded-md" uuid={props.account!.id} />
|
||||||
<div class="flex flex-col items-center justify-center">
|
<div class="flex flex-col items-center justify-center">
|
||||||
<div class="flex flex-col items-start justify-between">
|
<div class="flex flex-col items-start justify-between">
|
||||||
<p class="font-semibold h-[18px]">{props.account!.username}</p>
|
<p class="h-[18px] font-semibold">{props.account!.username}</p>
|
||||||
{props.loggedIn && <p class="text-xs">Logged in</p>}
|
{props.loggedIn && <p class="text-xs">Logged in</p>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -60,7 +60,7 @@ function AccountPopup(props: Popup.PopupProps) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Popup {...props}>
|
<Popup {...props}>
|
||||||
<div class="bg-secondary rounded-xl border border-gray-10 w-72 p-2 shadow-md shadow-black/30">
|
<div class="w-72 border border-gray-10 rounded-xl bg-secondary p-2 shadow-black/30 shadow-md">
|
||||||
<div class="flex flex-col gap-y-2 text-fg-primary">
|
<div class="flex flex-col gap-y-2 text-fg-primary">
|
||||||
<Show when={controller.defaultAccount() !== null || controller.defaultAccount() !== undefined}>
|
<Show when={controller.defaultAccount() !== null || controller.defaultAccount() !== undefined}>
|
||||||
<AccountComponent
|
<AccountComponent
|
||||||
|
|
@ -76,7 +76,7 @@ function AccountPopup(props: Popup.PopupProps) {
|
||||||
)}
|
)}
|
||||||
</For>
|
</For>
|
||||||
</Show>
|
</Show>
|
||||||
<div class="w-full h-px bg-gray-05 rounded-md" />
|
<div class="h-px w-full rounded-md bg-gray-05" />
|
||||||
|
|
||||||
<div class="flex flex-row justify-between">
|
<div class="flex flex-row justify-between">
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ function AddAccountModal(p: AddAccountModalProps) {
|
||||||
/>,
|
/>,
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<div class="flex flex-col gap-y-3 max-w-120 line-height-normal">
|
<div class="max-w-120 flex flex-col gap-y-3 line-height-normal">
|
||||||
<Switch>
|
<Switch>
|
||||||
<Match when={stage() !== ModalStage.LoggingIn}>
|
<Match when={stage() !== ModalStage.LoggingIn}>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ function VersionSelector(props: { setVersion: (version: string) => any }) {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-row flex-1 gap-2">
|
<div class="flex flex-1 flex-row gap-2">
|
||||||
<SelectList
|
<SelectList
|
||||||
class="max-h-40 min-w-3/5"
|
class="max-h-40 min-w-3/5"
|
||||||
onChange={setVersion}
|
onChange={setVersion}
|
||||||
|
|
@ -144,7 +144,7 @@ function VersionSelector(props: { setVersion: (version: string) => any }) {
|
||||||
</Show>
|
</Show>
|
||||||
</SelectList>
|
</SelectList>
|
||||||
|
|
||||||
<div class="bg-component-bg rounded-lg overflow-hidden border border-gray-05 flex-1 p-2 flex flex-col gap-y-2">
|
<div class="flex flex-1 flex-col gap-y-2 overflow-hidden border border-gray-05 rounded-lg bg-component-bg p-2">
|
||||||
<For each={Object.keys(filters())}>
|
<For each={Object.keys(filters())}>
|
||||||
{name => (
|
{name => (
|
||||||
<Checkbox
|
<Checkbox
|
||||||
|
|
@ -169,7 +169,7 @@ function Option(props: OptionProps) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div {...rest} class={`flex flex-col gap-y-2 items-stretch ${split.class || ''}`}>
|
<div {...rest} class={`flex flex-col gap-y-2 items-stretch ${split.class || ''}`}>
|
||||||
<h3 class="text-md font-semibold uppercase text-fg-secondary text-left">{props.header}</h3>
|
<h3 class="text-left text-md text-fg-secondary font-semibold uppercase">{props.header}</h3>
|
||||||
{/* <div class="max-h-8"> */}
|
{/* <div class="max-h-8"> */}
|
||||||
{props.children}
|
{props.children}
|
||||||
{/* </div> */}
|
{/* </div> */}
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,8 @@ function ClusterProviderSelection(props: ClusterStepProps) {
|
||||||
const [selected, setSelected] = createSignal<number>();
|
const [selected, setSelected] = createSignal<number>();
|
||||||
|
|
||||||
const check = () => {
|
const check = () => {
|
||||||
|
// TODO: Add more stages
|
||||||
|
// eslint-disable-next-line solid/reactivity -- It's fine
|
||||||
props.setCanGoForward(() => {
|
props.setCanGoForward(() => {
|
||||||
const isTrue = selected() !== undefined;
|
const isTrue = selected() !== undefined;
|
||||||
|
|
||||||
|
|
@ -73,7 +75,7 @@ function ProviderCard(props: ProviderCardProps) {
|
||||||
onClick={() => props.setSelected()}
|
onClick={() => props.setSelected()}
|
||||||
class={`flex flex-col justify-center items-center gap-y-2 py-2 px-4 hover:bg-component-bg-hover active:bg-component-bg-pressed rounded-lg ${props.selected ? 'bg-component-bg' : ''}`}
|
class={`flex flex-col justify-center items-center gap-y-2 py-2 px-4 hover:bg-component-bg-hover active:bg-component-bg-pressed rounded-lg ${props.selected ? 'bg-component-bg' : ''}`}
|
||||||
>
|
>
|
||||||
<div class="[&>svg]:(w-8 h-8)">
|
<div class="[&>svg]:(h-8 w-8)">
|
||||||
{props.icon}
|
{props.icon}
|
||||||
</div>
|
</div>
|
||||||
<span>{props.name}</span>
|
<span>{props.name}</span>
|
||||||
|
|
|
||||||
|
|
@ -122,12 +122,12 @@ function NotificationOverlayComponent(props: NotificationComponentProps) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Show when={disappearing() === true && props.progress === undefined}>
|
<Show when={disappearing() === true && props.progress === undefined}>
|
||||||
<div class="w-full h-1.5 bg-brand-disabled">
|
<div class="h-1.5 w-full bg-brand-disabled">
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
width: `${(secondsLeft() / TOTAL_SECONDS) * 100}%`,
|
width: `${(secondsLeft() / TOTAL_SECONDS) * 100}%`,
|
||||||
}}
|
}}
|
||||||
class="transition-width h-1.5 bg-brand rounded-lg"
|
class="h-1.5 rounded-lg bg-brand transition-width"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
@ -139,31 +139,31 @@ function NotificationOverlayComponent(props: NotificationComponentProps) {
|
||||||
|
|
||||||
function NotificationPopupComponent(props: NotificationComponentProps) {
|
function NotificationPopupComponent(props: NotificationComponentProps) {
|
||||||
return (
|
return (
|
||||||
<div class="p-2 flex flex-col gap-y-1">
|
<div class="flex flex-col gap-y-1 p-2">
|
||||||
<div class="min-h-10 grid place-items-center grid-cols-[24px_1fr_auto] gap-3">
|
<div class="grid grid-cols-[24px_1fr_auto] min-h-10 place-items-center gap-3">
|
||||||
{IconFromNotificationType(props.notification_type)({
|
{IconFromNotificationType(props.notification_type)({
|
||||||
class: `w-6 h-6 ${ColorFromNotificationType(props.notification_type)}`,
|
class: `w-6 h-6 ${ColorFromNotificationType(props.notification_type)}`,
|
||||||
})}
|
})}
|
||||||
|
|
||||||
<div class="flex flex-col w-full">
|
<div class="w-full flex flex-col">
|
||||||
<span class={`font-medium ${ColorFromNotificationType(props.notification_type)}`}>{props.title}</span>
|
<span class={`font-medium ${ColorFromNotificationType(props.notification_type)}`}>{props.title}</span>
|
||||||
<span class="text-sm text-white/60">{props.message}</span>
|
<span class="text-sm text-white/60">{props.message}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Show when={props.overlay !== true}>
|
<Show when={props.overlay !== true}>
|
||||||
<div class="flex flex-row justify-end items-center gap-1">
|
<div class="flex flex-row items-center justify-end gap-1">
|
||||||
<span class="text-sm text-white/40">
|
<span class="text-sm text-white/40">
|
||||||
<TimeAgo timestamp={props.created_at * 1000} />
|
<TimeAgo timestamp={props.created_at * 1000} />
|
||||||
</span>
|
</span>
|
||||||
<span class="w-1.5 h-1.5 rounded-full bg-brand" />
|
<span class="h-1.5 w-1.5 rounded-full bg-brand" />
|
||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Show when={props.progress !== undefined}>
|
<Show when={props.progress !== undefined}>
|
||||||
<div class="rounded-full overflow-hidden h-1.5 bg-brand-disabled w-full">
|
<div class="h-1.5 w-full overflow-hidden rounded-full bg-brand-disabled">
|
||||||
<div
|
<div
|
||||||
class="rounded-full h-full min-w-0 max-w-full bg-brand transition-width"
|
class="h-full max-w-full min-w-0 rounded-full bg-brand transition-width"
|
||||||
style={{
|
style={{
|
||||||
width: `${Math.floor(props.progress! * 100)}%`,
|
width: `${Math.floor(props.progress! * 100)}%`,
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -35,19 +35,19 @@ function NotificationPopup(props: Popup.PopupProps) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Popup {...props}>
|
<Popup {...props}>
|
||||||
<div class="bg-secondary rounded-xl border border-gray-10 w-96 p-2 shadow-md shadow-black/30">
|
<div class="w-96 border border-gray-10 rounded-xl bg-secondary p-2 shadow-black/30 shadow-md">
|
||||||
<div class="overflow-hidden transition-height" ref={parent}>
|
<div class="overflow-hidden transition-height" ref={parent}>
|
||||||
<div class="flex flex-col justify-start items-stretch text-start gap-2" ref={inner}>
|
<div class="flex flex-col items-stretch justify-start gap-2 text-start" ref={inner}>
|
||||||
<p class="text-2lg px-2 pt-1">Notifications</p>
|
<p class="px-2 pt-1 text-2lg">Notifications</p>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Match when={notifications().length > 0}>
|
<Match when={notifications().length > 0}>
|
||||||
<OverlayScrollbarsComponent class="max-h-[min(500px,60vh)] overflow-auto">
|
<OverlayScrollbarsComponent class="max-h-[min(500px,60vh)] overflow-auto">
|
||||||
<div class="flex flex-col-reverse justify-center items-stretch ">
|
<div class="flex flex-col-reverse items-stretch justify-center">
|
||||||
<For each={notifications()}>
|
<For each={notifications()}>
|
||||||
{noti => (
|
{noti => (
|
||||||
<div class="flex flex-col w-full">
|
<div class="w-full flex flex-col">
|
||||||
<NotificationComponent {...noti} overlay={false} />
|
<NotificationComponent {...noti} overlay={false} />
|
||||||
<span class="bg-gray-05 h-px w-full" />
|
<span class="h-px w-full bg-gray-05" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</For>
|
</For>
|
||||||
|
|
@ -56,11 +56,11 @@ function NotificationPopup(props: Popup.PopupProps) {
|
||||||
</Match>
|
</Match>
|
||||||
<Match when={notifications().length === 0}>
|
<Match when={notifications().length === 0}>
|
||||||
<span class="px-2">You have no notifications</span>
|
<span class="px-2">You have no notifications</span>
|
||||||
<span class="bg-gray-05 h-px" />
|
<span class="h-px bg-gray-05" />
|
||||||
</Match>
|
</Match>
|
||||||
</Switch>
|
</Switch>
|
||||||
|
|
||||||
<div class="flex flex-row justify-between items-end">
|
<div class="flex flex-row items-end justify-between">
|
||||||
<Button onClick={() => {}} buttonStyle="ghost" iconLeft={<Trash01Icon />}>
|
<Button onClick={() => {}} buttonStyle="ghost" iconLeft={<Trash01Icon />}>
|
||||||
Clear Notifications
|
Clear Notifications
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
||||||
|
|
@ -101,17 +101,17 @@ function HomePage() {
|
||||||
// };
|
// };
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-col h-full gap-y-4 text-fg-primary">
|
<div class="h-full flex flex-col gap-y-4 text-fg-primary">
|
||||||
<Banner clusters={clusters()} />
|
<Banner clusters={clusters()} />
|
||||||
|
|
||||||
<div class="flex flex-row justify-between items-center">
|
<div class="flex flex-row items-center justify-between">
|
||||||
<div>
|
<div>
|
||||||
<TextField iconLeft={<SearchMdIcon />} placeholder="Search for clusters..." />
|
<TextField iconLeft={<SearchMdIcon />} placeholder="Search for clusters..." />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row gap-x-4">
|
<div class="flex flex-row gap-x-4">
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="primary"
|
buttonStyle="primary"
|
||||||
iconLeft={<PlusIcon class="!w-5 stroke-[2.2]" />}
|
iconLeft={<PlusIcon class="stroke-[2.2] !w-5" />}
|
||||||
children="New Cluster"
|
children="New Cluster"
|
||||||
onClick={newCluster}
|
onClick={newCluster}
|
||||||
/>
|
/>
|
||||||
|
|
@ -138,8 +138,8 @@ function HomePage() {
|
||||||
// </DragDropProvider>
|
// </DragDropProvider>
|
||||||
)}
|
)}
|
||||||
fallback={(
|
fallback={(
|
||||||
<div class="flex flex-col flex-1 gap-y-4 max-h-64 justify-center items-center">
|
<div class="max-h-64 flex flex-1 flex-col items-center justify-center gap-y-4">
|
||||||
<span class="text-lg font-bold uppercase text-fg-secondary">No clusters were found.</span>
|
<span class="text-lg text-fg-secondary font-bold uppercase">No clusters were found.</span>
|
||||||
<span class="text-xl font-bold">Create one now with the New Cluster button.</span>
|
<span class="text-xl font-bold">Create one now with the New Cluster button.</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
@ -217,9 +217,9 @@ function Banner(props: BannerProps) {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="relative w-full h-52 min-h-52 overflow-hidden rounded-xl">
|
<div class="relative h-52 min-h-52 w-full overflow-hidden rounded-xl">
|
||||||
<ClusterCover
|
<ClusterCover
|
||||||
class="absolute rounded-xl w-full h-52 object-cover"
|
class="absolute h-52 w-full rounded-xl object-cover"
|
||||||
linearBlur={{
|
linearBlur={{
|
||||||
degrees: 270,
|
degrees: 270,
|
||||||
blur: 30,
|
blur: 30,
|
||||||
|
|
@ -229,7 +229,7 @@ function Banner(props: BannerProps) {
|
||||||
fallback={BannerBackground}
|
fallback={BannerBackground}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="relative z-10 h-full px-8 py-6 text-fg-primary flex flex-col justify-between items-start">
|
<div class="relative z-10 h-full flex flex-col items-start justify-between px-8 py-6 text-fg-primary">
|
||||||
<div class="flex flex-col gap-y-2">
|
<div class="flex flex-col gap-y-2">
|
||||||
<h1>{cluster()?.meta.name || 'Create a cluster'}</h1>
|
<h1>{cluster()?.meta.name || 'Create a cluster'}</h1>
|
||||||
<Show when={cluster() !== undefined}>
|
<Show when={cluster() !== undefined}>
|
||||||
|
|
@ -249,7 +249,7 @@ function Banner(props: BannerProps) {
|
||||||
</p>
|
</p>
|
||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full flex-row justify-between items-end">
|
<div class="w-full flex flex-row items-end justify-between">
|
||||||
<div class="flex flex-row items-center gap-x-4">
|
<div class="flex flex-row items-center gap-x-4">
|
||||||
<Show
|
<Show
|
||||||
when={cluster() !== undefined}
|
when={cluster() !== undefined}
|
||||||
|
|
@ -299,22 +299,22 @@ function ClusterCard(props: Cluster) {
|
||||||
ref,
|
ref,
|
||||||
// sortable
|
// sortable
|
||||||
)}
|
)}
|
||||||
class="relative h-[152px] group flex flex-col rounded-xl bg-component-bg hover:bg-component-bg-hover active:bg-component-bg-pressed border border-gray-05"
|
class="group relative h-[152px] flex flex-col border border-gray-05 rounded-xl bg-component-bg active:bg-component-bg-pressed hover:bg-component-bg-hover"
|
||||||
>
|
>
|
||||||
<div class="flex-1 relative overflow-hidden rounded-t-xl">
|
<div class="relative flex-1 overflow-hidden rounded-t-xl">
|
||||||
<div
|
<div
|
||||||
class="absolute h-full w-full group-hover:!scale-110 transition-transform"
|
class="absolute h-full w-full transition-transform group-hover:!scale-110"
|
||||||
style={{ '-webkit-transform': 'translateZ(0)' }}
|
style={{ '-webkit-transform': 'translateZ(0)' }}
|
||||||
>
|
>
|
||||||
<ClusterCover
|
<ClusterCover
|
||||||
cluster={props}
|
cluster={props}
|
||||||
class="object-cover h-full w-full"
|
class="h-full w-full object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="z-10 p-3 flex flex-row gap-x-3 items-center justify-between">
|
<div class="z-10 flex flex-row items-center justify-between gap-x-3 p-3">
|
||||||
<div class="flex flex-col gap-1.5 overflow-hidden h-8">
|
<div class="h-8 flex flex-col gap-1.5 overflow-hidden">
|
||||||
<p class="h-4 font-medium text-ellipsis whitespace-nowrap">{props.meta.name}</p>
|
<p class="h-4 text-ellipsis whitespace-nowrap font-medium">{props.meta.name}</p>
|
||||||
<p class="h-4 text-xs">
|
<p class="h-4 text-xs">
|
||||||
{upperFirst(props.meta.loader)}
|
{upperFirst(props.meta.loader)}
|
||||||
{' '}
|
{' '}
|
||||||
|
|
@ -331,7 +331,7 @@ function ClusterCard(props: Cluster) {
|
||||||
ClusterRoot.launch(navigate, props.uuid);
|
ClusterRoot.launch(navigate, props.uuid);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<PlayIcon class="w-4! h-4!" />
|
<PlayIcon class="h-4! w-4!" />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -354,7 +354,7 @@ function ClusterGroup(props: ClusterGroupProps) {
|
||||||
class="flex flex-col gap-y-4"
|
class="flex flex-col gap-y-4"
|
||||||
>
|
>
|
||||||
<h4>{props.title}</h4>
|
<h4>{props.title}</h4>
|
||||||
<div class="grid grid-cols-4 2xl:grid-cols-6 gap-4 min-h-38">
|
<div class="grid grid-cols-4 min-h-38 gap-4 2xl:grid-cols-6">
|
||||||
{/* <SortableProvider ids={ids()}> */}
|
{/* <SortableProvider ids={ids()}> */}
|
||||||
<For each={props.clusters}>{item => <ClusterCard {...item} />}</For>
|
<For each={props.clusters}>{item => <ClusterCard {...item} />}</For>
|
||||||
{/* </SortableProvider> */}
|
{/* </SortableProvider> */}
|
||||||
|
|
|
||||||
|
|
@ -65,9 +65,9 @@ function BrowserMain() {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-col flex-1 h-full gap-2 relative">
|
<div class="relative h-full flex flex-1 flex-col gap-2">
|
||||||
<div class="flex flex-row justify-between sticky top-0 z-10 bg-primary">
|
<div class="sticky top-0 z-10 flex flex-row justify-between bg-primary">
|
||||||
<div class="flex flex-row gap-2 h-8">
|
<div class="h-8 flex flex-row gap-2">
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
iconLeft={<SearchMdIcon />}
|
iconLeft={<SearchMdIcon />}
|
||||||
|
|
@ -86,7 +86,7 @@ function BrowserMain() {
|
||||||
</Dropdown.Minimal>
|
</Dropdown.Minimal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row gap-2 justify-end">
|
<div class="flex flex-row justify-end gap-2">
|
||||||
<Button
|
<Button
|
||||||
iconLeft={<Download01Icon />}
|
iconLeft={<Download01Icon />}
|
||||||
children="From URL"
|
children="From URL"
|
||||||
|
|
@ -119,13 +119,13 @@ interface ModsRowProps {
|
||||||
|
|
||||||
function ModsRow(props: ModsRowProps) {
|
function ModsRow(props: ModsRowProps) {
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-col flex-1 gap-3">
|
<div class="flex flex-1 flex-col gap-3">
|
||||||
<div class="flex flex-row flex-1 justify-between">
|
<div class="flex flex-1 flex-row justify-between">
|
||||||
<h4>{props.header}</h4>
|
<h4>{props.header}</h4>
|
||||||
<A class="text-fg-secondary hover:text-fg-secondary-hover active:text-fg-secondary-pressed" href={`category?category=${props.category}`}>See all</A>
|
<A class="text-fg-secondary active:text-fg-secondary-pressed hover:text-fg-secondary-hover" href={`category?category=${props.category}`}>See all</A>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row gap-2 max-w-full flex-wrap">
|
<div class="max-w-full flex flex-row flex-wrap gap-2">
|
||||||
<For each={props.packages}>
|
<For each={props.packages}>
|
||||||
{mod => <ModCard {...mod} />}
|
{mod => <ModCard {...mod} />}
|
||||||
</For>
|
</For>
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,8 @@ function BrowserMod() {
|
||||||
<>
|
<>
|
||||||
<div class="flex flex-row gap-x-12">
|
<div class="flex flex-row gap-x-12">
|
||||||
<ModCard {...pkg()!} />
|
<ModCard {...pkg()!} />
|
||||||
<div class="flex flex-1 flex-col justify-between items-start bg-component-bg rounded-lg p-4 px-6">
|
<div class="flex flex-1 flex-col items-start justify-between rounded-lg bg-component-bg p-4 px-6">
|
||||||
<div class="flex w-full flex-row justify-between items-center">
|
<div class="w-full flex flex-row items-center justify-between">
|
||||||
<h1>{pkg()?.title}</h1>
|
<h1>{pkg()?.title}</h1>
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="primary"
|
buttonStyle="primary"
|
||||||
|
|
|
||||||
|
|
@ -64,9 +64,9 @@ function ClusterLogs() {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-col flex-1">
|
<div class="flex flex-1 flex-col">
|
||||||
<div class="flex flex-col flex-1 gap-y-2">
|
<div class="flex flex-1 flex-col gap-y-2">
|
||||||
<div class="flex flex-row justify-between items-center gap-x-1 h-10">
|
<div class="h-10 flex flex-row items-center justify-between gap-x-1">
|
||||||
<h1>Logs</h1>
|
<h1>Logs</h1>
|
||||||
<div class="flex flex-row gap-x-2">
|
<div class="flex flex-row gap-x-2">
|
||||||
<Button
|
<Button
|
||||||
|
|
|
||||||
|
|
@ -83,9 +83,9 @@ function ClusterMods() {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Sidebar.Page>
|
<Sidebar.Page>
|
||||||
<div class="flex flex-row justify-between w-full">
|
<div class="w-full flex flex-row justify-between">
|
||||||
<h1>Mods</h1>
|
<h1>Mods</h1>
|
||||||
<div class="flex flex-row justify-end items-center gap-x-2">
|
<div class="flex flex-row items-center justify-end gap-x-2">
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="secondary"
|
buttonStyle="secondary"
|
||||||
iconLeft={sortingAtoZ() ? <ChevronUpIcon /> : <ChevronDownIcon />}
|
iconLeft={sortingAtoZ() ? <ChevronUpIcon /> : <ChevronDownIcon />}
|
||||||
|
|
@ -108,7 +108,7 @@ function ClusterMods() {
|
||||||
</Match>
|
</Match>
|
||||||
|
|
||||||
<Match when={displayedMods().length === 0}>
|
<Match when={displayedMods().length === 0}>
|
||||||
<p class="text-2lg text-center my-4">No mods were found</p>
|
<p class="my-4 text-center text-2lg">No mods were found</p>
|
||||||
</Match>
|
</Match>
|
||||||
</Switch>
|
</Switch>
|
||||||
</ScrollableContainer>
|
</ScrollableContainer>
|
||||||
|
|
@ -131,16 +131,16 @@ interface ModEntryProps {
|
||||||
|
|
||||||
function ModEntry(props: ModEntryProps) {
|
function ModEntry(props: ModEntryProps) {
|
||||||
return (
|
return (
|
||||||
<div class="bg-component-bg hover:bg-component-bg-hover active:bg-component-bg-pressed p-3 gap-3 rounded-xl flex flex-row items-center">
|
<div class="flex flex-row items-center gap-3 rounded-xl bg-component-bg p-3 active:bg-component-bg-pressed hover:bg-component-bg-hover">
|
||||||
<div>
|
<div>
|
||||||
<img src={props.thumbnail} alt={props.name} class="aspect-ratio-square h-10 rounded-lg" />
|
<img src={props.thumbnail} alt={props.name} class="aspect-ratio-square h-10 rounded-lg" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col flex-1">
|
<div class="flex flex-1 flex-col">
|
||||||
<div class="flex flex-row justify-between items-center">
|
<div class="flex flex-row items-center justify-between">
|
||||||
<div class="flex flex-col items-start justify-center">
|
<div class="flex flex-col items-start justify-center">
|
||||||
<div class="flex flex-col items-start justify-center gap-y-2">
|
<div class="flex flex-col items-start justify-center gap-y-2">
|
||||||
<h4>{props.name}</h4>
|
<h4>{props.name}</h4>
|
||||||
<span class="h-2 flex flex-row items-center justify-start text-xs font-600 text-fg-secondary/50">
|
<span class="h-2 flex flex-row items-center justify-start text-xs text-fg-secondary/50 font-600">
|
||||||
{props.version}
|
{props.version}
|
||||||
{/* TODO: Add version checker */}
|
{/* TODO: Add version checker */}
|
||||||
{/* <Show when={props.version.includes()}> */}
|
{/* <Show when={props.version.includes()}> */}
|
||||||
|
|
@ -151,7 +151,7 @@ function ModEntry(props: ModEntryProps) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row gap-2 items-end justify-center">
|
<div class="flex flex-row items-end justify-center gap-2">
|
||||||
<Button buttonStyle="iconSecondary">
|
<Button buttonStyle="iconSecondary">
|
||||||
<Edit02Icon />
|
<Edit02Icon />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
||||||
|
|
@ -263,26 +263,26 @@ function Banner(props: BannerProps) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-row bg-component-bg rounded-xl p-2.5 gap-x-2.5 h-37">
|
<div class="h-37 flex flex-row gap-x-2.5 rounded-xl bg-component-bg p-2.5">
|
||||||
<div class="rounded-lg overflow-hidden border border-gray-10 relative h-full w-57 min-w-57 aspect-ratio-video">
|
<div class="relative aspect-ratio-video h-full min-w-57 w-57 overflow-hidden border border-gray-10 rounded-lg">
|
||||||
<Show when={props.editMode()}>
|
<Show when={props.editMode()}>
|
||||||
<div
|
<div
|
||||||
onClick={launchFilePicker}
|
onClick={launchFilePicker}
|
||||||
class="bg-black/50 opacity-50 hover:opacity-100 w-full h-full absolute flex justify-center items-center"
|
class="absolute h-full w-full flex items-center justify-center bg-black/50 opacity-50 hover:opacity-100"
|
||||||
>
|
>
|
||||||
<ImagePlusIcon class="w-12 h-12" />
|
<ImagePlusIcon class="h-12 w-12" />
|
||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
||||||
<ClusterCover override={props.newCover()} cluster={props.cluster} class="h-full w-full object-cover" />
|
<ClusterCover override={props.newCover()} cluster={props.cluster} class="h-full w-full object-cover" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-col w-full overflow-hidden gap-y-.5 justify-between text-fg-primary">
|
<div class="w-full flex flex-col justify-between gap-y-.5 overflow-hidden text-fg-primary">
|
||||||
<div>
|
<div>
|
||||||
<Show
|
<Show
|
||||||
when={props.editMode()}
|
when={props.editMode()}
|
||||||
fallback={
|
fallback={
|
||||||
<h2 class="text-2xl break-words text-wrap">{props.cluster.meta.name}</h2>
|
<h2 class="break-words text-wrap text-2xl">{props.cluster.meta.name}</h2>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<TextField
|
<TextField
|
||||||
|
|
@ -296,7 +296,7 @@ function Banner(props: BannerProps) {
|
||||||
|
|
||||||
<div class="flex flex-1 flex-row">
|
<div class="flex flex-1 flex-row">
|
||||||
<div
|
<div
|
||||||
class="flex flex-1 flex-col justify-between items-start"
|
class="flex flex-1 flex-col items-start justify-between"
|
||||||
classList={{
|
classList={{
|
||||||
'text-fg-primary-disabled': props.editMode(),
|
'text-fg-primary-disabled': props.editMode(),
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -37,12 +37,12 @@ function ClusterRoot(props: ParentProps) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ClusterProvider uuid={searchParams.id}>
|
<ClusterProvider uuid={searchParams.id}>
|
||||||
<div class="flex flex-row flex-1 h-full gap-x-7">
|
<div class="h-full flex flex-1 flex-row gap-x-7">
|
||||||
<div class="mt-8">
|
<div class="mt-8">
|
||||||
<ClusterSidebar />
|
<ClusterSidebar />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-col w-full h-full">
|
<div class="h-full w-full flex flex-col">
|
||||||
<AnimatedRoutes>
|
<AnimatedRoutes>
|
||||||
<ErrorBoundary>
|
<ErrorBoundary>
|
||||||
{props.children}
|
{props.children}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ function ClusterScreenshots() {
|
||||||
fallback={<div class="text-gray-400">No screenshots found. Press F2 in game to take a screenshot!</div>}
|
fallback={<div class="text-gray-400">No screenshots found. Press F2 in game to take a screenshot!</div>}
|
||||||
when={list() !== undefined && list()!.length > 0}
|
when={list() !== undefined && list()!.length > 0}
|
||||||
>
|
>
|
||||||
<div class="grid grid-cols-[repeat(auto-fill,minmax(350px,1fr))] w-full gap-2 transform-gpu">
|
<div class="grid grid-cols-[repeat(auto-fill,minmax(350px,1fr))] w-full transform-gpu gap-2">
|
||||||
<For each={list()!}>
|
<For each={list()!}>
|
||||||
{screenshot => (
|
{screenshot => (
|
||||||
<ScreenshotEntry path={screenshot} cluster_path={cluster()?.path || ''} />
|
<ScreenshotEntry path={screenshot} cluster_path={cluster()?.path || ''} />
|
||||||
|
|
@ -38,7 +38,7 @@ function ClusterScreenshots() {
|
||||||
</Show>
|
</Show>
|
||||||
</ScrollableContainer>
|
</ScrollableContainer>
|
||||||
|
|
||||||
<div class="flex flex-row justify-end items-end mt-2">
|
<div class="mt-2 flex flex-row items-end justify-end">
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="primary"
|
buttonStyle="primary"
|
||||||
iconLeft={<LinkExternal01Icon />}
|
iconLeft={<LinkExternal01Icon />}
|
||||||
|
|
@ -65,7 +65,7 @@ function ScreenshotEntry(props: { path: string; cluster_path: string }) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
class="bg-component-bg hover:bg-component-bg-hover hover:opacity-80 active:bg-component-bg-pressed p-3 gap-3 rounded-xl flex flex-col items-center"
|
class="flex flex-col items-center gap-3 rounded-xl bg-component-bg p-3 active:bg-component-bg-pressed hover:bg-component-bg-hover hover:opacity-80"
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
>
|
>
|
||||||
<img src={pathSrc()} alt={props.path} class="aspect-ratio-video w-full rounded-lg" />
|
<img src={pathSrc()} alt={props.path} class="aspect-ratio-video w-full rounded-lg" />
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ function ClusterWorlds() {
|
||||||
</Show>
|
</Show>
|
||||||
</ScrollableContainer>
|
</ScrollableContainer>
|
||||||
|
|
||||||
<div class="flex flex-row justify-end items-end mt-2">
|
<div class="mt-2 flex flex-row items-end justify-end">
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="primary"
|
buttonStyle="primary"
|
||||||
iconLeft={<LinkExternal01Icon />}
|
iconLeft={<LinkExternal01Icon />}
|
||||||
|
|
@ -83,18 +83,18 @@ function WorldEntry(props: { name: string; cluster_path: string }) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
class="bg-component-bg hover:bg-component-bg-hover active:bg-component-bg-pressed p-3 gap-3 rounded-xl flex flex-row justify-between items-center"
|
class="flex flex-row items-center justify-between gap-3 rounded-xl bg-component-bg p-3 active:bg-component-bg-pressed hover:bg-component-bg-hover"
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
>
|
>
|
||||||
<div class="flex flex-row items-center gap-x-3">
|
<div class="flex flex-row items-center gap-x-3">
|
||||||
<WorldIcon cluster_name={props.cluster_path} world_name={props.name} class="w-16 h-16 aspect-ratio-square" />
|
<WorldIcon cluster_name={props.cluster_path} world_name={props.name} class="aspect-ratio-square h-16 w-16" />
|
||||||
<div class="flex flex-col gap-y-2">
|
<div class="flex flex-col gap-y-2">
|
||||||
<h3>{props.name}</h3>
|
<h3>{props.name}</h3>
|
||||||
<p>Todo</p>
|
<p>Todo</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row justify-end items-center gap-x-3">
|
<div class="flex flex-row items-center justify-end gap-x-3">
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="iconDanger"
|
buttonStyle="iconDanger"
|
||||||
children={<Trash01Icon />}
|
children={<Trash01Icon />}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ function SettingsRoutes() {
|
||||||
|
|
||||||
function SettingsRoot(props: ParentProps) {
|
function SettingsRoot(props: ParentProps) {
|
||||||
return (
|
return (
|
||||||
<div class="flex flex-row flex-1 h-full gap-x-7">
|
<div class="h-full flex flex-1 flex-row gap-x-7">
|
||||||
<div class="mt-8 flex flex-col justify-between">
|
<div class="mt-8 flex flex-col justify-between">
|
||||||
<Sidebar
|
<Sidebar
|
||||||
base="/settings"
|
base="/settings"
|
||||||
|
|
@ -61,7 +61,7 @@ function SettingsRoot(props: ParentProps) {
|
||||||
<Info />
|
<Info />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-col w-full h-full">
|
<div class="h-full w-full flex flex-col">
|
||||||
<AnimatedRoutes>
|
<AnimatedRoutes>
|
||||||
<ErrorBoundary>
|
<ErrorBoundary>
|
||||||
{props.children}
|
{props.children}
|
||||||
|
|
@ -76,10 +76,10 @@ function Info() {
|
||||||
const [copied, setCopied] = createSignal(false);
|
const [copied, setCopied] = createSignal(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="mx-1 my-2 flex flex-col justify-center items-center relative">
|
<div class="relative mx-1 my-2 flex flex-col items-center justify-center">
|
||||||
<Tooltip text={copied() ? 'Copied to clipboard!' : 'Copy to clipboard'}>
|
<Tooltip text={copied() ? 'Copied to clipboard!' : 'Copy to clipboard'}>
|
||||||
<div
|
<div
|
||||||
class="whitespace-pre-line line-height-normal text-sm text-fg-secondary"
|
class="whitespace-pre-line text-sm text-fg-secondary line-height-normal"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
const info = e.target.innerHTML;
|
const info = e.target.innerHTML;
|
||||||
writeText(info)
|
writeText(info)
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ function SettingsChangelog() {
|
||||||
// TODO: Implement markdown support?
|
// TODO: Implement markdown support?
|
||||||
function UpdatePost() {
|
function UpdatePost() {
|
||||||
return (
|
return (
|
||||||
<div class="bg-component-bg p-4 rounded-xl flex-1 flex flex-col gap-2 line-height-relaxed whitespace-pre-line">
|
<div class="flex flex-1 flex-col gap-2 whitespace-pre-line rounded-xl bg-component-bg p-4 line-height-relaxed">
|
||||||
<h2>New Feature</h2>
|
<h2>New Feature</h2>
|
||||||
<p class="">
|
<p class="">
|
||||||
{`
|
{`
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ function SettingsAccounts() {
|
||||||
<ScrollableContainer>
|
<ScrollableContainer>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Match when={controller.accounts()?.length === 0}>
|
<Match when={controller.accounts()?.length === 0}>
|
||||||
<div class="flex flex-col h-full gap-y-4 max-h-64 justify-center items-center">
|
<div class="h-full max-h-64 flex flex-col items-center justify-center gap-y-4">
|
||||||
<span class="text-lg font-bold uppercase text-fg-secondary">No accounts added.</span>
|
<span class="text-lg text-fg-secondary font-bold uppercase">No accounts added.</span>
|
||||||
<span class="text-xl font-bold">Add one with the Add Account button.</span>
|
<span class="text-xl font-bold">Add one with the Add Account button.</span>
|
||||||
</div>
|
</div>
|
||||||
</Match>
|
</Match>
|
||||||
|
|
@ -50,7 +50,7 @@ function SettingsAccounts() {
|
||||||
</Switch>
|
</Switch>
|
||||||
</ScrollableContainer>
|
</ScrollableContainer>
|
||||||
|
|
||||||
<div class="flex flex-row justify-end items-end mt-2">
|
<div class="mt-2 flex flex-row items-end justify-end">
|
||||||
<Button
|
<Button
|
||||||
buttonStyle="primary"
|
buttonStyle="primary"
|
||||||
iconLeft={<UserPlus02Icon />}
|
iconLeft={<UserPlus02Icon />}
|
||||||
|
|
@ -79,9 +79,9 @@ function AccountRow(props: AccountRowProps) {
|
||||||
onClick={() => props.onClick(props.uuid)}
|
onClick={() => props.onClick(props.uuid)}
|
||||||
class={`flex flex-row bg-component-bg hover:bg-component-bg-hover active:bg-component-bg-pressed rounded-xl gap-3.5 p-4 items-center box-border border ${defaultProps.current ? 'border-brand' : 'border-transparent'}`}
|
class={`flex flex-row bg-component-bg hover:bg-component-bg-hover active:bg-component-bg-pressed rounded-xl gap-3.5 p-4 items-center box-border border ${defaultProps.current ? 'border-brand' : 'border-transparent'}`}
|
||||||
>
|
>
|
||||||
<div class="flex justify-center items-center h-12 w-12">
|
<div class="h-12 w-12 flex items-center justify-center">
|
||||||
<PlayerHead
|
<PlayerHead
|
||||||
class="w-12 h-12 rounded-md"
|
class="h-12 w-12 rounded-md"
|
||||||
uuid={props.uuid}
|
uuid={props.uuid}
|
||||||
onError={() => setErrored(true)}
|
onError={() => setErrored(true)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -94,7 +94,7 @@ function AccountRow(props: AccountRowProps) {
|
||||||
<Tooltip
|
<Tooltip
|
||||||
text="Could not fetch this account's game profile"
|
text="Could not fetch this account's game profile"
|
||||||
>
|
>
|
||||||
<InfoCircleIcon class="w-4 h-4" />
|
<InfoCircleIcon class="h-4 w-4" />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ function SettingsRow(props: SettingsRowProps & {
|
||||||
<BaseSettingsRow {...rest}>
|
<BaseSettingsRow {...rest}>
|
||||||
<Show when={split.isGlobal() === false}>
|
<Show when={split.isGlobal() === false}>
|
||||||
<div
|
<div
|
||||||
class="px-2 py-1 text-xs text-white bg-brand hover:bg-brand-hover active:bg-brand-pressed rounded-md font-italic font-medium"
|
class="rounded-md bg-brand px-2 py-1 text-xs text-white font-medium font-italic active:bg-brand-pressed hover:bg-brand-hover"
|
||||||
onClick={() => split.reset()}
|
onClick={() => split.reset()}
|
||||||
>
|
>
|
||||||
Reset
|
Reset
|
||||||
|
|
@ -130,7 +130,7 @@ export function GameSettings(props: {
|
||||||
isGlobal={props.resolution.isGlobal}
|
isGlobal={props.resolution.isGlobal}
|
||||||
reset={props.resolution.resetToFallback}
|
reset={props.resolution.resetToFallback}
|
||||||
>
|
>
|
||||||
<div class="grid grid-justify-center grid-items-center gap-2 grid-cols-[70px_16px_70px]">
|
<div class="grid grid-cols-[70px_16px_70px] gap-2 grid-justify-center grid-items-center">
|
||||||
<TextField.Number
|
<TextField.Number
|
||||||
class="text-center"
|
class="text-center"
|
||||||
value={props.resolution.get()[0]}
|
value={props.resolution.get()[0]}
|
||||||
|
|
@ -138,7 +138,7 @@ export function GameSettings(props: {
|
||||||
props.resolution.set([Number.parseInt(value), props.resolution.get()[1]]);
|
props.resolution.set([Number.parseInt(value), props.resolution.get()[1]]);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<XIcon class="w-4 h-4" />
|
<XIcon class="h-4 w-4" />
|
||||||
<TextField.Number
|
<TextField.Number
|
||||||
class="text-center"
|
class="text-center"
|
||||||
value={props.resolution.get()[1]}
|
value={props.resolution.get()[1]}
|
||||||
|
|
@ -156,7 +156,7 @@ export function GameSettings(props: {
|
||||||
isGlobal={props.memory.isGlobal}
|
isGlobal={props.memory.isGlobal}
|
||||||
reset={props.memory.resetToFallback}
|
reset={props.memory.resetToFallback}
|
||||||
>
|
>
|
||||||
<div class="flex flex-justify-center items-center gap-x-4">
|
<div class="flex items-center gap-x-4 flex-justify-center">
|
||||||
<div class="flex flex-row items-center gap-x-2">
|
<div class="flex flex-row items-center gap-x-2">
|
||||||
<span>Min:</span>
|
<span>Min:</span>
|
||||||
<TextField.Number
|
<TextField.Number
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ authors = { workspace = true }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
onelauncher = { workspace = true, features = [ "cli" ] }
|
onelauncher = { workspace = true, features = [ "cli" ] }
|
||||||
|
|
||||||
tokio = { workspace = true }
|
tokio = { workspace = true }
|
||||||
webbrowser = { workspace = true }
|
webbrowser = { workspace = true }
|
||||||
url = { workspace = true }
|
url = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,16 @@
|
||||||
// @ts-check
|
|
||||||
import { defineConfig } from '@flowr/eslint-config';
|
import { defineConfig } from '@flowr/eslint-config';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
typescript: true,
|
typescript: true,
|
||||||
solid: true,
|
solid: true,
|
||||||
unocss: false,
|
unocss: true,
|
||||||
toml: {
|
toml: true,
|
||||||
overrides: {
|
|
||||||
'toml/padding-line-between-pairs': 'off',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
gitignore: true,
|
gitignore: true,
|
||||||
ignores: [
|
ignores: [
|
||||||
'**/target',
|
|
||||||
'**/dist',
|
|
||||||
'**/types',
|
'**/types',
|
||||||
'**/cache',
|
'**/cache',
|
||||||
'**/.temp',
|
|
||||||
'**/*.svg',
|
'**/*.svg',
|
||||||
'**/gen',
|
'**/gen',
|
||||||
'*.rs',
|
'*.rs',
|
||||||
'pnpm-lock.yaml',
|
|
||||||
'**/node_modules',
|
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
19
package.json
19
package.json
|
|
@ -4,7 +4,7 @@
|
||||||
"version": "1.0.0-alpha.1",
|
"version": "1.0.0-alpha.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"engineStrict": true,
|
"engineStrict": true,
|
||||||
"packageManager": "pnpm@9.6.0",
|
"packageManager": "pnpm@9.7.0",
|
||||||
"description": "Next-generation open source Minecraft launcher and tools for interacting with Polyfrost",
|
"description": "Next-generation open source Minecraft launcher and tools for interacting with Polyfrost",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"homepage": "https://polyfrost.org",
|
"homepage": "https://polyfrost.org",
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
"bugs": "https://github.com/polyfrost/onelauncher/issues",
|
"bugs": "https://github.com/polyfrost/onelauncher/issues",
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"engines": {
|
"engines": {
|
||||||
"pnpm": "9.6.0",
|
"pnpm": "9.7.0",
|
||||||
"npm": "pnpm",
|
"npm": "pnpm",
|
||||||
"yarn": "pnpm",
|
"yarn": "pnpm",
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
"test:vi": "pnpm vitest run",
|
"test:vi": "pnpm vitest run",
|
||||||
"test:update": "pnpm vitest -u",
|
"test:update": "pnpm vitest -u",
|
||||||
"test:ui": "pnpm vitest --ui",
|
"test:ui": "pnpm vitest --ui",
|
||||||
"lint:es": "eslint . --cache",
|
"lint:es": "eslint . --cache --flag unstable_ts_config",
|
||||||
"format:es": "pnpm lint:es --fix",
|
"format:es": "pnpm lint:es --fix",
|
||||||
"lint:rs": "cargo +nightly fmt --check && cargo clippy -- -D warnings",
|
"lint:rs": "cargo +nightly fmt --check && cargo clippy -- -D warnings",
|
||||||
"format:rs": "cargo +nightly fmt && cargo clippy --fix",
|
"format:rs": "cargo +nightly fmt && cargo clippy --fix",
|
||||||
|
|
@ -52,17 +52,18 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@flowr/eslint-config": "^3.10.5",
|
"@flowr/eslint-config": "^3.11.3",
|
||||||
"@types/node": "^22.1.0",
|
"@types/node": "^22.2.0",
|
||||||
|
"@unocss/eslint-plugin": "^0.61.9",
|
||||||
"@vitest/ui": "^2.0.5",
|
"@vitest/ui": "^2.0.5",
|
||||||
"bumpp": "^9.4.2",
|
"bumpp": "^9.4.2",
|
||||||
"changelogen": "^0.5.5",
|
"eslint": "^9.9.0",
|
||||||
"eslint": "^9.8.0",
|
|
||||||
"eslint-plugin-solid": "^0.14.1",
|
"eslint-plugin-solid": "^0.14.1",
|
||||||
|
"jiti": "^1.21.6",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"tsx": "~4.16.5",
|
"tsx": "~4.17.0",
|
||||||
"typescript": "^5.5.4",
|
"typescript": "^5.5.4",
|
||||||
"vite": "^5.3.5",
|
"vite": "^5.4.0",
|
||||||
"vitest": "^2.0.5"
|
"vitest": "^2.0.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
"@tanstack/solid-query": "^5.51.21",
|
"@tanstack/solid-query": "^5.51.21",
|
||||||
"fast-equals": "^5.0.1",
|
"fast-equals": "^5.0.1",
|
||||||
"plausible-tracker": "^0.3.9",
|
"plausible-tracker": "^0.3.9",
|
||||||
"solid-js": "^1.8.19",
|
"solid-js": "^1.8.20",
|
||||||
"zod": "^3.23.8"
|
"zod": "^3.23.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,7 @@ specta = { workspace = true, optional = true }
|
||||||
|
|
||||||
# CLI-only deps
|
# CLI-only deps
|
||||||
indicatif = { workspace = true, optional = true }
|
indicatif = { workspace = true, optional = true }
|
||||||
|
|
||||||
interpulse = { workspace = true }
|
interpulse = { workspace = true }
|
||||||
|
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
tracing-subscriber = { workspace = true }
|
tracing-subscriber = { workspace = true }
|
||||||
tracing-error = { workspace = true }
|
tracing-error = { workspace = true }
|
||||||
|
|
@ -44,7 +42,6 @@ tracing-appender = { workspace = true }
|
||||||
notify = { workspace = true }
|
notify = { workspace = true }
|
||||||
notify-debouncer-mini = { workspace = true }
|
notify-debouncer-mini = { workspace = true }
|
||||||
iota_stronghold = { workspace = true }
|
iota_stronghold = { workspace = true }
|
||||||
|
|
||||||
zeroize = { workspace = true }
|
zeroize = { workspace = true }
|
||||||
tokio = { workspace = true }
|
tokio = { workspace = true }
|
||||||
serde = { workspace = true }
|
serde = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
pub mod logger;
|
pub mod logger;
|
||||||
pub mod screenshots;
|
pub mod screenshots;
|
||||||
pub mod worlds;
|
pub mod worlds;
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,12 @@
|
||||||
"int:prepare": "pnpm tsx prepare.ts"
|
"int:prepare": "pnpm tsx prepare.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@flowr/utils": "^3.10.5",
|
"@flowr/utils": "^3.11.3",
|
||||||
"execa": "^9.3.0",
|
"execa": "^9.3.0",
|
||||||
"mustache": "^4.2.0",
|
"mustache": "^4.2.0",
|
||||||
"pathe": "^1.1.2",
|
"pathe": "^1.1.2",
|
||||||
"semver": "^7.6.3",
|
"semver": "^7.6.3",
|
||||||
"undici": "^6.19.5"
|
"undici": "^6.19.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/iarna__toml": "^2.0.5",
|
"@types/iarna__toml": "^2.0.5",
|
||||||
|
|
|
||||||
1270
pnpm-lock.yaml
generated
1270
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,5 @@
|
||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "1.80"
|
channel = "1.80.1"
|
||||||
profile = "minimal"
|
profile = "minimal"
|
||||||
components = [
|
components = [
|
||||||
"cargo",
|
"cargo",
|
||||||
|
|
|
||||||
1
uno.config.ts
Normal file
1
uno.config.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from './apps/frontend/uno.config';
|
||||||
Loading…
Add table
Reference in a new issue