Skip to content

Commit df87184

Browse files
committed
feat: migrate to latest skeleton + cleanup
1 parent b3686a7 commit df87184

File tree

79 files changed

+1210
-1122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+1210
-1122
lines changed

.prettierrc.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,14 @@
77
"singleQuote": true,
88
"trailingComma": "none",
99
"useTabs": false,
10-
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"]
10+
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"],
11+
"overrides": [
12+
{
13+
"files": "*.svelte",
14+
"options": {
15+
"parser": "svelte"
16+
}
17+
}
18+
],
19+
"tailwindStylesheet": "./src/app.css"
1120
}

bun.lockb

7.28 KB
Binary file not shown.
File renamed without changes.

eslint.config.js

Lines changed: 86 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
import typescriptParser from '@typescript-eslint/parser';
2-
import typescriptPlugin from '@typescript-eslint/eslint-plugin';
3-
import sveltePlugin from "eslint-plugin-svelte";
4-
import svelteParser from "svelte-eslint-parser";
1+
import prettier from 'eslint-config-prettier';
2+
import { fileURLToPath } from 'node:url';
3+
import { includeIgnoreFile } from '@eslint/compat';
4+
import js from '@eslint/js';
5+
import svelte from 'eslint-plugin-svelte';
6+
import { defineConfig } from 'eslint/config';
7+
import globals from 'globals';
8+
import ts from 'typescript-eslint';
9+
import svelteConfig from './svelte.config.js';
510

611
const rules = {
712
'array-callback-return': 'error',
@@ -26,65 +31,93 @@ const rules = {
2631
'no-shadow': 'error',
2732
'no-use-before-define': 'error',
2833
'no-unused-vars': 'off',
29-
'@typescript-eslint/no-unused-vars': ['error', {
30-
varsIgnorePattern: '^_',
31-
argsIgnorePattern: '^_'
32-
}]
34+
'@typescript-eslint/no-unused-vars': [
35+
'error',
36+
{
37+
varsIgnorePattern: '^_',
38+
argsIgnorePattern: '^_'
39+
}
40+
],
41+
'svelte/no-navigation-without-resolve': 'off',
42+
'svelte/no-unused-props': [
43+
'error',
44+
{
45+
'allowUnusedNestedProperties': true,
46+
}
47+
]
3348
};
3449

35-
export default [
36-
{
37-
ignores: [
38-
".svelte-kit/**/*",
39-
"node_modules/**/*",
40-
"dist/**/*",
41-
"build/**/*",
42-
"src/i18n/**/*"
43-
],
44-
},
50+
const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url));
4551

52+
export default defineConfig(
53+
includeIgnoreFile(gitignorePath),
54+
js.configs.recommended,
55+
...ts.configs.recommended,
56+
...svelte.configs.recommended,
57+
prettier,
58+
...svelte.configs.prettier,
4659
{
47-
files: ["**/*.ts"],
48-
ignores: [
49-
"custom-theme.ts",
50-
"src/service-worker.ts",
51-
"tailwind.config.ts"
52-
],
5360
languageOptions: {
54-
parser: typescriptParser,
55-
parserOptions: {
56-
project: "./tsconfig.json",
57-
extraFileExtensions: [".svelte"],
58-
},
59-
},
60-
plugins: {
61-
"@typescript-eslint": typescriptPlugin,
61+
globals: { ...globals.browser, ...globals.node }
6262
},
6363
rules: {
64-
...typescriptPlugin.configs.recommended.rules,
64+
"no-undef": 'off',
6565
...rules
66-
},
66+
}
6767
},
68-
6968
{
70-
files: ["**/*.svelte"],
69+
files: [
70+
'**/*.svelte',
71+
'**/*.svelte.ts',
72+
'**/*.svelte.js'
73+
],
7174
languageOptions: {
72-
parser: svelteParser,
7375
parserOptions: {
74-
parser: typescriptParser,
75-
project: "./tsconfig.json",
76-
extraFileExtensions: [".svelte"],
77-
},
78-
},
79-
plugins: {
80-
svelte: sveltePlugin,
81-
"@typescript-eslint": typescriptPlugin,
82-
},
83-
rules: {
84-
...typescriptPlugin.configs.recommended.rules,
85-
...sveltePlugin.configs.recommended.rules,
86-
...rules,
87-
'svelte/no-at-html-tags': 'off'
88-
},
76+
projectService: true,
77+
extraFileExtensions: ['.svelte'],
78+
parser: ts.parser,
79+
svelteConfig
80+
}
81+
}
8982
},
90-
];
83+
84+
// {
85+
// files: ["**/*.ts"],
86+
// languageOptions: {
87+
// parser: typescriptParser,
88+
// parserOptions: {
89+
// project: "./tsconfig.json",
90+
// extraFileExtensions: [".svelte"],
91+
// },
92+
// },
93+
// plugins: {
94+
// "@typescript-eslint": typescriptPlugin,
95+
// },
96+
// rules: {
97+
// ...typescriptPlugin.configs.recommended.rules,
98+
// ...rules
99+
// },
100+
// },
101+
//
102+
// {
103+
// files: ["**/*.svelte"],
104+
// languageOptions: {
105+
// parser: svelteParser,
106+
// parserOptions: {
107+
// parser: typescriptParser,
108+
// project: "./tsconfig.json",
109+
// extraFileExtensions: [".svelte"],
110+
// },
111+
// },
112+
// plugins: {
113+
// svelte: sveltePlugin,
114+
// "@typescript-eslint": typescriptPlugin,
115+
// },
116+
// rules: {
117+
// ...typescriptPlugin.configs.recommended.rules,
118+
// ...sveltePlugin.configs.recommended.rules,
119+
// ...rules,
120+
// 'svelte/no-at-html-tags': 'off'
121+
// },
122+
// },
123+
);

mise.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tools]
2-
bun = "1.2.22"
2+
bun = "1.3.1"
33

44
[env]
55
PUBLIC_TOLGEE_API_URL = 'https://translate.ficsit.app'
@@ -9,5 +9,9 @@ PUBLIC_TOLGEE_API_KEY = 'tgpak_gjptqytrm5sgyy3ohfwdk2junf2wemtbnezts2lig5yte'
99
run = "bun run dev"
1010
env = { NODE_ENV = 'staging' }
1111

12+
[tasks.dev_staging_serve]
13+
run = "bun run dev:serve"
14+
env = { NODE_ENV = 'staging' }
15+
1216
[tasks.setup]
1317
run = "bun run translations"

package.json

Lines changed: 49 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -22,96 +22,100 @@
2222
"translations": "bash ./download_translations.sh"
2323
},
2424
"dependencies": {
25+
"@eslint/compat": "^1.4.0",
26+
"@eslint/js": "^9.38.0",
2527
"@felte/core": "^1.4.4",
2628
"@felte/reporter-svelte": "^1.2.0",
2729
"@felte/validator-zod": "^1.0.18",
2830
"@floating-ui/dom": "^1.7.4",
29-
"@tolgee/svelte": "^5.33.2",
30-
"@urql/core": "^5.2.0",
31-
"@urql/exchange-auth": "^2.2.1",
32-
"@urql/exchange-graphcache": "^7.2.4",
33-
"@urql/exchange-persisted": "^4.3.1",
31+
"@tolgee/svelte": "^6.2.7",
32+
"@urql/core": "^6.0.1",
33+
"@urql/exchange-auth": "^3.0.0",
34+
"@urql/exchange-graphcache": "^8.1.0",
35+
"@urql/exchange-persisted": "^5.0.1",
3436
"@urql/introspection": "^1.2.1",
35-
"@urql/svelte": "^4.2.3",
36-
"caniuse-lite": "^1.0.30001743",
37+
"@urql/svelte": "^5.0.0",
38+
"caniuse-lite": "^1.0.30001751",
3739
"custom-protocol-check": "^1.4.0",
38-
"dompurify": "^3.2.7",
40+
"dompurify": "^3.3.0",
3941
"felte": "^1.3.0",
42+
"globals": "^16.4.0",
4043
"graphql": "^16.11.0",
4144
"js-cookie": "^3.0.5",
42-
"jsdom": "^24.1.3",
45+
"jsdom": "^27.0.1",
4346
"jszip": "^3.10.1",
44-
"marked": "^13.0.3",
47+
"marked": "^16.4.1",
4548
"marked-gfm-heading-id": "^4.1.2",
4649
"marked-mangle": "^1.1.11",
4750
"prismjs": "^1.30.0",
48-
"semver": "^7.7.2",
51+
"semver": "^7.7.3",
4952
"socket.io-client": "^4.8.1",
5053
"thumbhash": "^0.1.1",
5154
"tslib": "^2.8.1",
55+
"typescript-eslint": "^8.46.2",
5256
"wonka": "^6.3.5",
53-
"zod": "^3.25.76"
57+
"zod": "^4.1.12"
5458
},
5559
"devDependencies": {
56-
"@cfworker/json-schema": "^1.12.8",
57-
"@commitlint/cli": "^19.8.1",
58-
"@commitlint/config-conventional": "^19.8.1",
60+
"@cfworker/json-schema": "^4.1.1",
61+
"@commitlint/cli": "^20.1.0",
62+
"@commitlint/config-conventional": "^20.0.0",
5963
"@eslint/eslintrc": "^3.3.1",
60-
"@graphql-codegen/add": "^5.0.3",
61-
"@graphql-codegen/cli": "^5.0.7",
62-
"@graphql-codegen/introspection": "^4.0.3",
63-
"@graphql-codegen/typed-document-node": "^5.1.2",
64-
"@graphql-codegen/typescript": "^4.1.6",
65-
"@graphql-codegen/typescript-document-nodes": "^4.0.16",
64+
"@graphql-codegen/add": "^6.0.0",
65+
"@graphql-codegen/cli": "^6.0.1",
66+
"@graphql-codegen/introspection": "^5.0.0",
67+
"@graphql-codegen/typed-document-node": "^6.0.2",
68+
"@graphql-codegen/typescript": "^5.0.2",
69+
"@graphql-codegen/typescript-document-nodes": "^5.0.2",
6670
"@graphql-codegen/typescript-graphql-files-modules": "^3.0.1",
67-
"@graphql-codegen/typescript-operations": "^4.6.1",
71+
"@graphql-codegen/typescript-operations": "^5.0.2",
6872
"@graphql-codegen/typescript-urql": "^4.0.1",
6973
"@graphql-codegen/urql-introspection": "^3.0.1",
7074
"@graphql-typed-document-node/core": "^3.2.0",
7175
"@parcel/watcher": "^2.5.1",
72-
"@skeletonlabs/skeleton": "^3.2.0",
73-
"@skeletonlabs/skeleton-svelte": "^1.5.1",
74-
"@sveltejs/adapter-node": "^5.3.2",
75-
"@sveltejs/adapter-static": "^3.0.9",
76-
"@sveltejs/kit": "^2.42.1",
77-
"@sveltejs/vite-plugin-svelte": "^6.2.0",
78-
"@tailwindcss/vite": "^4.1.13",
76+
"@skeletonlabs/skeleton": "^4.1.4",
77+
"@skeletonlabs/skeleton-svelte": "^4.1.4",
78+
"@sveltejs/adapter-node": "^5.4.0",
79+
"@sveltejs/adapter-static": "^3.0.10",
80+
"@sveltejs/kit": "^2.47.3",
81+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
82+
"@tailwindcss/vite": "^4.1.16",
7983
"@types/js-cookie": "^3.0.6",
8084
"@types/marked": "^6.0.0",
81-
"@types/node": "^20.19.16",
85+
"@types/node": "^24.9.1",
8286
"@types/prismjs": "^1.26.5",
8387
"@types/semver": "^7.7.1",
84-
"@typescript-eslint/eslint-plugin": "^8.44.0",
85-
"@typescript-eslint/parser": "^8.44.0",
88+
"@typescript-eslint/eslint-plugin": "^8.46.2",
89+
"@typescript-eslint/parser": "^8.46.2",
8690
"autoprefixer": "^10.4.21",
8791
"chokidar-cli": "^3.0.0",
88-
"concurrently": "^8.2.2",
92+
"concurrently": "^9.2.1",
8993
"cookieconsent": "^3.1.1",
90-
"cross-env": "^7.0.3",
94+
"cross-env": "^10.1.0",
9195
"cssnano": "^7.1.1",
9296
"cz-conventional-changelog": "^3.3.0",
9397
"dotenv-flow": "^4.1.0",
94-
"eslint": "^9.35.0",
98+
"eslint": "^9.38.0",
9599
"eslint-config-prettier": "^10.1.8",
96-
"eslint-plugin-svelte": "^3.12.3",
100+
"eslint-plugin-svelte": "^3.12.5",
97101
"graphql-tag": "^2.12.6",
98102
"husky": "^9.1.7",
99103
"prettier": "^3.6.2",
100104
"prettier-plugin-svelte": "^3.4.0",
101-
"prettier-plugin-tailwindcss": "^0.6.14",
105+
"prettier-plugin-tailwindcss": "^0.7.1",
102106
"rimraf": "^6.0.1",
103107
"schema-dts": "^1.1.5",
104-
"svelte": "^5.38.10",
105-
"svelte-adapter-bun": "^0.5.2",
106-
"svelte-check": "^4.3.1",
108+
"svelte": "^5.42.2",
109+
"svelte-adapter-bun": "^1.0.1",
110+
"svelte-check": "^4.3.3",
107111
"svelte-preprocess": "^6.0.3",
108-
"tailwindcss": "^4.1.13",
109-
"typescript": "^5.9.2",
110-
"urql": "^4.2.2",
111-
"vite": "^7.1.5"
112+
"tailwindcss": "^4.1.16",
113+
"typescript": "^5.9.3",
114+
"urql": "^5.0.1",
115+
"vite": "^7.1.12"
112116
},
113117
"type": "module",
114-
"packageManager": "bun@1.2.22",
118+
"packageManager": "bun@1.3.1",
115119
"trustedDependencies": [
116120
"@parcel/watcher",
117121
"@sveltejs/kit",

src/app.css

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
@import 'https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible&family=Roboto&family=Roboto+Mono&family=Material+Icons&family=Noto+Color+Emoji&display=swap';
22

33
@import '@skeletonlabs/skeleton';
4-
@import '@skeletonlabs/skeleton/optional/presets';
54
@import './theme.css';
65

76
@import 'tailwindcss';
87

98
@import '../node_modules/prismjs/themes/prism-okaidia.css';
109
@import '../node_modules/cookieconsent/build/cookieconsent.min.css';
1110

11+
@import '@skeletonlabs/skeleton-svelte';
12+
1213
@theme {
1314
--font-flow: Flow;
1415

@@ -282,3 +283,7 @@ body.accessibility {
282283
.validation-message {
283284
color: red;
284285
}
286+
287+
.selected-tag {
288+
@apply border border-primary-500 preset-tonal-primary hover:preset-outlined-primary-500;
289+
}

src/app.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!doctype html>
2-
<html lang="en" class="dark" data-theme="ficsit-theme">
2+
<html lang="en" class="dark" data-theme="ficsittheme">
33
<head>
44
<meta charset="utf-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1" />

src/lib/components/announcements/AnnouncementHeader.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
importance={AnnouncementImportance.Warning} />
2121
{:else if $announcements && $announcements.data && $announcements.data.getAnnouncements}
2222
<div class="mt-3 mr-3 mb-3 ml-3 flex max-h-96 flex-col gap-2 overflow-y-auto xl:mb-0 xl:ml-0">
23-
{#each $announcements?.data?.getAnnouncements as announcement}
23+
{#each $announcements?.data?.getAnnouncements as announcement (announcement.id)}
2424
<AnnouncementRow message={announcement.message} importance={announcement.importance} />
2525
{/each}
2626
</div>

0 commit comments

Comments
 (0)