diff --git a/.deepsource.toml b/.deepsource.toml deleted file mode 100644 index e5ec308..0000000 --- a/.deepsource.toml +++ /dev/null @@ -1,7 +0,0 @@ -version = 1 - -[[analyzers]] -name = "javascript" - - [analyzers.meta] - environment = ["nodejs"] \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index d5d7902..a30146c 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/eslint.config.js b/eslint.config.js index 0405ce8..45f0fab 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,28 +1,23 @@ -import comments from "@eslint-community/eslint-plugin-eslint-comments/configs"; import { fixupPluginRules } from "@eslint/compat"; -import js from "@eslint/js"; +import eslint from "@eslint/js"; import deprecationPlugin from "eslint-plugin-deprecation"; -import importPlugin from "eslint-plugin-import"; +import eslintPluginReadableTailwind from "eslint-plugin-readable-tailwind"; import simpleImportSortPlugin from "eslint-plugin-simple-import-sort"; import tailwind from "eslint-plugin-tailwindcss"; import globals from "globals"; import tseslint from "typescript-eslint"; - export default tseslint.config( - js.configs.recommended, - importPlugin.flatConfigs.recommended, - comments.recommended, + eslint.configs.recommended, ...tseslint.configs.recommended, ...tailwind.configs["flat/recommended"], { plugins: { - "@typescript-eslint": tseslint.plugin, deprecation: fixupPluginRules(deprecationPlugin), - import: fixupPluginRules(importPlugin), "simple-import-sort": simpleImportSortPlugin, + "readable-tailwind": eslintPluginReadableTailwind, }, - ignores: ["**/node_modules/**", "**/public/**"], + ignores: ["**/node_modules/**"], languageOptions: { parserOptions: { projectService: true, @@ -36,12 +31,20 @@ export default tseslint.config( ...globals.browser, }, }, - files: ["**/*.{js,mjs,cjs}"], + files: ["**/*.{js,mjs,cjs,tsx,ts}"], rules: { - "tailwindcss/no-custom-classname": [ - "error", + ...eslintPluginReadableTailwind.configs.warning.rules, + "tailwindcss/classnames-order": "off", + "readable-tailwind/multiline": [ + "warn", + { + group: "newLine", + printWidth: 100, + }, + ], + "tailwindcss/no-custom-classname": [ + "warn", { - config: "./tailwind.config.js", whitelist: [ "select_container", "convert_to_popup", @@ -51,7 +54,6 @@ export default tseslint.config( ], }, ], - "import/no-named-as-default": "off", }, }, -); \ No newline at end of file +); diff --git a/package.json b/package.json index 9df3eae..20776fa 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,12 @@ "scripts": { "dev": "bun run --watch src/index.tsx", "hot": "bun run --hot src/index.tsx", - "format": "biome format --write ./src", - "build": "postcss ./src/main.css -o ./src/public/generated.css", + "format": "eslint --fix .", + "build": "postcss ./src/main.css -o ./src/public/generated.css", "lint": "run-p 'lint:*'", "lint:tsc": "tsc --noEmit", "lint:knip": "knip", - "lint:biome": "biome lint --error-on-warnings ./src" + "lint:eslint": "eslint ." }, "dependencies": { "@elysiajs/cookie": "^0.8.0", @@ -24,13 +24,10 @@ "start": "bun run src/index.tsx" }, "devDependencies": { - "@biomejs/biome": "1.9.3", - "@eslint-community/eslint-plugin-eslint-comments": "^4.4.0", "@eslint/compat": "^1.1.1", - "@eslint/js": "^9.11.1", + "@eslint/js": "^9.12.0", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@kitajs/ts-html-plugin": "^4.1.0", - "@picocss/pico": "^2.0.6", "@total-typescript/ts-reset": "^0.6.1", "@types/bun": "^1.1.10", "@types/eslint": "^9.6.1", @@ -41,12 +38,12 @@ "@typescript-eslint/parser": "^8.7.0", "autoprefixer": "^10.4.20", "cssnano": "^7.0.6", - "eslint": "^9.11.1", + "eslint": "^9.12.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-import": "^2.30.0", "eslint-plugin-isaacscript": "^4.0.0", "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-readable-tailwind": "^1.8.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-tailwindcss": "^3.17.4", "globals": "^15.9.0", @@ -59,9 +56,6 @@ "tailwind-scrollbar": "^3.1.0", "tailwindcss": "^3.4.13", "typescript": "^5.6.2", - "typescript-eslint": "^8.7.0" - }, - "trustedDependencies": [ - "@biomejs/biome" - ] + "typescript-eslint": "^8.8.0" + } } \ No newline at end of file diff --git a/postcss.config.cjs b/postcss.config.cjs index f8fd003..b18fd44 100644 --- a/postcss.config.cjs +++ b/postcss.config.cjs @@ -1,9 +1,9 @@ -// eslint-disable-next-line no-undef + module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, - // eslint-disable-next-line no-undef + ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}) } } \ No newline at end of file diff --git a/renovate.json b/renovate.json index 5db72dd..83ae79a 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:recommended" + "config:recommended", + ":disableDependencyDashboard" ] -} +} \ No newline at end of file diff --git a/src/components/header.tsx b/src/components/header.tsx index 500d182..5526d89 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -5,17 +5,23 @@ export const Header = ({ let rightNav: JSX.Element; if (loggedIn) { rightNav = ( -