diff --git a/.changeset/sparkly-beans-wear.md b/.changeset/sparkly-beans-wear.md new file mode 100644 index 00000000..3cc30867 --- /dev/null +++ b/.changeset/sparkly-beans-wear.md @@ -0,0 +1,5 @@ +--- +"openscript-ch-website": patch +--- + +Enhance technologies section responsiveness diff --git a/package.json b/package.json index dccce120..a6c3e844 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@openscript/unplugin-favicons": "^1.1.8", "@types/mdast": "^4.0.4", "@types/node": "^24.7.0", - "@typescript-eslint/parser": "^8.45.0", + "@typescript-eslint/parser": "^8.46.0", "@vitest/coverage-v8": "3.2.4", "astro-eslint-parser": "^1.2.2", "eslint": "^9.37.0", @@ -72,7 +72,7 @@ "prettier-plugin-astro": "^0.14.1", "sirv": "^3.0.2", "typescript": "^5.9.3", - "typescript-eslint": "^8.45.0", + "typescript-eslint": "^8.46.0", "vitest": "3.2.4" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6fd1d2e2..31cdca1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,8 +91,8 @@ importers: specifier: ^24.7.0 version: 24.7.0 '@typescript-eslint/parser': - specifier: ^8.45.0 - version: 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.46.0 + version: 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: 3.2.4 version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1)) @@ -136,8 +136,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.45.0 - version: 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.46.0 + version: 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) vitest: specifier: 3.2.4 version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) @@ -1230,63 +1230,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.45.0': - resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==} + '@typescript-eslint/eslint-plugin@8.46.0': + resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.45.0 + '@typescript-eslint/parser': ^8.46.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.45.0': - resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==} + '@typescript-eslint/parser@8.46.0': + resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.45.0': - resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==} + '@typescript-eslint/project-service@8.46.0': + resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.45.0': - resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==} + '@typescript-eslint/scope-manager@8.46.0': + resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.45.0': - resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==} + '@typescript-eslint/tsconfig-utils@8.46.0': + resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.45.0': - resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==} + '@typescript-eslint/type-utils@8.46.0': + resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.45.0': - resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==} + '@typescript-eslint/types@8.46.0': + resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.45.0': - resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==} + '@typescript-eslint/typescript-estree@8.46.0': + resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.45.0': - resolution: {integrity: sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==} + '@typescript-eslint/utils@8.46.0': + resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.45.0': - resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==} + '@typescript-eslint/visitor-keys@8.46.0': + resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -2379,8 +2379,8 @@ packages: resolution: {integrity: sha512-DeykBc4XmfAWsnN+Y1Svi9uaQnnz21Q/ARuGWvIBxP1iUFeMIWL41DfVkgTh7tU23LFIbmIBO2Bk17BTPu0kVA==} engines: {node: '>=4'} - hosted-git-info@9.0.0: - resolution: {integrity: sha512-gEf705MZLrDPkbbhi8PnoO4ZwYgKoNL+ISZ3AjZMht2r3N5tuTwncyDi6Fv2/qDnMmZxgs0yI8WDOyR8q3G+SQ==} + hosted-git-info@9.0.1: + resolution: {integrity: sha512-FLN0k/CSIHgTZr46YbK5od55jQEzWNGCNl8AufispkkTwcIpnxG1NMH52+O7lu0z3mI9bjPfGzcO7MhDesQ1kw==} engines: {node: ^20.17.0 || >=22.9.0} html-escaper@2.0.2: @@ -2395,8 +2395,8 @@ packages: http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - human-id@4.1.1: - resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + human-id@4.1.2: + resolution: {integrity: sha512-v/J+4Z/1eIJovEBdlV5TYj1IR+ZiohcYGRY+qN/oC9dAfKzVT023N/Bgw37hrKCoVRBvk3bqyzpr2PP5YeTMSg==} hasBin: true iconv-lite@0.7.0: @@ -3457,8 +3457,8 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -3795,8 +3795,8 @@ packages: typescript-auto-import-cache@0.3.6: resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - typescript-eslint@8.45.0: - resolution: {integrity: sha512-qzDmZw/Z5beNLUrXfd0HIW6MzIaAV5WNDxmMs9/3ojGOpYavofgNAAD/nC6tGV2PczIi0iw8vot2eAe/sBn7zg==} + typescript-eslint@8.46.0: + resolution: {integrity: sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4472,7 +4472,7 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 '@changesets/assemble-release-plan@6.0.9': dependencies: @@ -4481,7 +4481,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.2 + semver: 7.7.3 '@changesets/changelog-git@0.2.1': dependencies: @@ -4514,7 +4514,7 @@ snapshots: package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 spawndamnit: 3.0.1 term-size: 2.2.1 transitivePeerDependencies: @@ -4539,7 +4539,7 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.2 + semver: 7.7.3 '@changesets/get-release-plan@4.0.13': dependencies: @@ -4599,7 +4599,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 fs-extra: 7.0.1 - human-id: 4.1.1 + human-id: 4.1.2 prettier: 2.8.8 '@colors/colors@1.6.0': {} @@ -5083,7 +5083,7 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.2 + semver: 7.7.3 '@openscript/unplugin-favicons@1.1.8(@types/node@24.7.0)(esbuild@0.25.10)(favicons@7.2.0)(rollup@4.52.4)(vite@6.3.6(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1))(yaml@2.8.1)': dependencies: @@ -5360,14 +5360,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.45.0 - '@typescript-eslint/type-utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.45.0 + '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/type-utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.0 eslint: 9.37.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -5377,41 +5377,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.45.0 - '@typescript-eslint/types': 8.45.0 - '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.45.0 + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.0 debug: 4.4.3 eslint: 9.37.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.45.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.46.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3) - '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) + '@typescript-eslint/types': 8.46.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.45.0': + '@typescript-eslint/scope-manager@8.46.0': dependencies: - '@typescript-eslint/types': 8.45.0 - '@typescript-eslint/visitor-keys': 8.45.0 + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/visitor-keys': 8.46.0 - '@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.45.0 - '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.37.0(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) @@ -5419,38 +5419,38 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.45.0': {} + '@typescript-eslint/types@8.46.0': {} - '@typescript-eslint/typescript-estree@8.45.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.45.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3) - '@typescript-eslint/types': 8.45.0 - '@typescript-eslint/visitor-keys': 8.45.0 + '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/visitor-keys': 8.46.0 debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.45.0 - '@typescript-eslint/types': 8.45.0 - '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) eslint: 9.37.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.45.0': + '@typescript-eslint/visitor-keys@8.46.0': dependencies: - '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/types': 8.46.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -5703,8 +5703,8 @@ snapshots: astro-eslint-parser@1.2.2: dependencies: '@astrojs/compiler': 2.13.0 - '@typescript-eslint/scope-manager': 8.45.0 - '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/types': 8.46.0 astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.13.0) debug: 4.4.3 entities: 6.0.1 @@ -5713,7 +5713,7 @@ snapshots: espree: 10.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -5781,7 +5781,7 @@ snapshots: picomatch: 4.0.3 prompts: 2.4.2 rehype: 13.0.2 - semver: 7.7.2 + semver: 7.7.3 shiki: 3.13.0 smol-toml: 1.4.2 tinyexec: 0.3.2 @@ -6368,7 +6368,7 @@ snapshots: eslint-compat-utils@0.6.5(eslint@9.37.0(jiti@2.6.1)): dependencies: eslint: 9.37.0(jiti@2.6.1) - semver: 7.7.2 + semver: 7.7.3 eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.1)): dependencies: @@ -6378,7 +6378,7 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 - '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/types': 8.46.0 astro-eslint-parser: 1.2.2 eslint: 9.37.0(jiti@2.6.1) eslint-compat-utils: 0.6.5(eslint@9.37.0(jiti@2.6.1)) @@ -6922,7 +6922,7 @@ snapshots: hepburn@1.2.2: {} - hosted-git-info@9.0.0: + hosted-git-info@9.0.1: dependencies: lru-cache: 11.2.2 @@ -6934,7 +6934,7 @@ snapshots: http-cache-semantics@4.2.0: {} - human-id@4.1.1: {} + human-id@4.1.2: {} iconv-lite@0.7.0: dependencies: @@ -7257,7 +7257,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 markdown-extensions@2.0.0: {} @@ -7782,8 +7782,8 @@ snapshots: normalize-package-data@8.0.0: dependencies: - hosted-git-info: 9.0.0 - semver: 7.7.2 + hosted-git-info: 9.0.1 + semver: 7.7.3 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -8342,7 +8342,7 @@ snapshots: sax@1.4.1: {} - semver@7.7.2: {} + semver@7.7.3: {} set-function-length@1.2.2: dependencies: @@ -8370,7 +8370,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.1.2 - semver: 7.7.2 + semver: 7.7.3 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -8396,7 +8396,7 @@ snapshots: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 - semver: 7.7.2 + semver: 7.7.3 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.4 '@img/sharp-darwin-x64': 0.34.4 @@ -8773,14 +8773,14 @@ snapshots: typescript-auto-import-cache@0.3.6: dependencies: - semver: 7.7.2 + semver: 7.7.3 - typescript-eslint@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.37.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -9060,7 +9060,7 @@ snapshots: volar-service-typescript@0.0.62(@volar/language-service@2.4.23): dependencies: path-browserify: 1.0.1 - semver: 7.7.2 + semver: 7.7.3 typescript-auto-import-cache: 0.3.6 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 diff --git a/src/content.config.ts b/src/content.config.ts index bb3e53f9..972a3000 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -98,6 +98,18 @@ const questionsCollection = defineCollection({ ), }); +const technologiesCollection = defineCollection({ + loader: i18nFileLoader("./src/content/technologies/index.yaml"), + schema: extendI18nLoaderSchema( + z.object({ + id: z.string(), + label: localized(z.string()), + logo: z.string(), + url: z.string().url(), + }), + ), +}); + const teamCollection = defineCollection({ loader: i18nFileLoader("./src/content/team/index.yaml"), schema: ({ image }) => @@ -133,6 +145,7 @@ export const collections = { referenceCompanies: referenceCompaniesCollection, referenceProjects: referenceProjectsCollection, questions: questionsCollection, + technologies: technologiesCollection, team: teamCollection, galleries: galleriesCollection, }; diff --git a/src/content/technologies/index.yaml b/src/content/technologies/index.yaml new file mode 100644 index 00000000..5c74e2cb --- /dev/null +++ b/src/content/technologies/index.yaml @@ -0,0 +1,96 @@ +- id: astro + label: + en: Astro - The web framework for content-driven sites + de: Astro - Das Web-Framework für inhaltsorientierte Seiten + logo: logo-astro + url: https://astro.build +- id: css + label: + en: CSS - Cascading Style Sheets for styling the web + de: CSS - Cascading Style Sheets für das Webdesign + logo: logo-css + url: https://www.w3.org/Style/CSS/Overview.en.html +- id: docker + label: + en: Docker - Develop, ship, and run applications in containers + de: Docker - Anwendungen in Containern entwickeln, ausliefern und betreiben + logo: logo-docker + url: https://www.docker.com +- id: forgejo + label: + en: Forgejo - Beyond coding. We forge. + de: Forgejo - Mehr als Programmieren. Wir schmieden. + logo: logo-forgejo + url: https://forgejo.org +- id: graphql + label: + en: GraphQL - A query language for your API + de: GraphQL - Eine Abfragesprache für Ihre API + logo: logo-graphql + url: https://graphql.org +- id: html5 + label: + en: HTML5 - The standard markup language for the web + de: HTML5 - Die Standard-Auszeichnungssprache fürs Web + logo: logo-html5 + url: https://developer.mozilla.org/en-US/docs/Web/HTML +- id: kubernetes + label: + en: Kubernetes - Production-grade container orchestration + de: Kubernetes - Container-Orchestrierung für den produktiven Einsatz + logo: logo-kubernetes + url: https://kubernetes.io +- id: mantine + label: + en: Mantine - React components and hooks library + de: Mantine - Komponenten- und Hook-Bibliothek für React + logo: logo-mantine + url: https://mantine.dev +- id: nestjs + label: + en: NestJS - A progressive Node.js framework + de: NestJS - Ein fortschrittliches Node.js-Framework + logo: logo-nestjs + url: https://nestjs.com +- id: php + label: + en: PHP - Popular general-purpose scripting language + de: PHP - Beliebte universelle Skriptsprache + logo: logo-php + url: https://www.php.net +- id: postgresql + label: + en: PostgreSQL - The world's most advanced open-source database + de: PostgreSQL - Die fortschrittlichste Open-Source-Datenbank + logo: logo-postgresql + url: https://www.postgresql.org +- id: react + label: + en: React - A JavaScript library for building user interfaces + de: React - JavaScript-Bibliothek für Benutzeroberflächen + logo: logo-react + url: https://react.dev +- id: ruby + label: + en: Ruby - A dynamic, open-source programming language + de: Ruby - Dynamische, quelloffene Programmiersprache + logo: logo-ruby + url: https://www.ruby-lang.org +- id: rubyonrails + label: + en: Ruby on Rails - A web application framework for Ruby + de: Ruby on Rails - Webframework für Ruby + logo: logo-rubyonrails + url: https://rubyonrails.org +- id: supabase + label: + en: Supabase - Open-source Firebase alternative + de: Supabase - Open-Source-Alternative zu Firebase + logo: logo-supabase + url: https://supabase.com +- id: typescript + label: + en: TypeScript - JavaScript with syntax for types + de: TypeScript - JavaScript mit Syntax für Typen + logo: logo-typescript + url: https://www.typescriptlang.org diff --git a/src/layouts/sections/ToolsSection.astro b/src/layouts/sections/ToolsSection.astro index b0c4aa9f..8469bd7d 100644 --- a/src/layouts/sections/ToolsSection.astro +++ b/src/layouts/sections/ToolsSection.astro @@ -1,103 +1,18 @@ --- +import { currentLocale } from "astro-nanostores-i18n:runtime"; +import { getCollection } from "astro:content"; import Sprite from "../../components/Sprite.astro"; import SpriteData from "../../../res/sprite/sprite.json"; -type LogoItem = { - logo: keyof typeof SpriteData; - url: string; - label: string; -}; - -const logos: LogoItem[] = [ - { - logo: "logo-astro", - url: "https://astro.build", - label: "Astro - The web framework for content-driven sites", - }, - { - logo: "logo-css", - url: "https://www.w3.org/Style/CSS/Overview.en.html", - label: "CSS - Cascading Style Sheets for styling the web", - }, - { - logo: "logo-docker", - url: "https://www.docker.com", - label: "Docker - Develop, ship, and run applications in containers", - }, - { - logo: "logo-forgejo", - url: "https://forgejo.org", - label: "Forgejo - Beyond coding. We forge.", - }, - { - logo: "logo-graphql", - url: "https://graphql.org", - label: "GraphQL - A query language for your API", - }, - { - logo: "logo-html5", - url: "https://developer.mozilla.org/en-US/docs/Web/HTML", - label: "HTML5 - The standard markup language for the web", - }, - { - logo: "logo-kubernetes", - url: "https://kubernetes.io", - label: "Kubernetes - Production-grade container orchestration", - }, - { - logo: "logo-mantine", - url: "https://mantine.dev", - label: "Mantine - React components and hooks library", - }, - { - logo: "logo-nestjs", - url: "https://nestjs.com", - label: "NestJS - A progressive Node.js framework", - }, - { - logo: "logo-php", - url: "https://www.php.net", - label: "PHP - Popular general-purpose scripting language", - }, - { - logo: "logo-postgresql", - url: "https://www.postgresql.org", - label: "PostgreSQL - The world's most advanced open-source database", - }, - { - logo: "logo-react", - url: "https://react.dev", - label: "React - A JavaScript library for building user interfaces", - }, - { - logo: "logo-ruby", - url: "https://www.ruby-lang.org", - label: "Ruby - A dynamic, open-source programming language", - }, - { - logo: "logo-rubyonrails", - url: "https://rubyonrails.org", - label: "Ruby on Rails - A web application framework for Ruby", - }, - { - logo: "logo-supabase", - url: "https://supabase.com", - label: "Supabase - Open-source Firebase alternative", - }, - { - logo: "logo-typescript", - url: "https://www.typescriptlang.org", - label: "TypeScript - JavaScript with syntax for types", - }, -]; - -const randomNumber = (min: number, max: number) => Math.floor(Math.random() * (max - min + 1)) + min; - type Props = { class?: string; }; const { class: className } = Astro.props; +const locale = currentLocale.get(); +const technologies = await getCollection("technologies", (entry) => entry.data.locale === locale); + +const randomNumber = (min: number, max: number) => Math.floor(Math.random() * (max - min + 1)) + min; ---
@@ -106,9 +21,13 @@ const { class: className } = Astro.props;
{ - logos.map((item) => ( - - + technologies.map(({ data: item }) => ( + + )) } @@ -169,6 +88,7 @@ const { class: className } = Astro.props; font-size: 1.125rem; svg { + margin-block-start: var(--size-gutter-big); width: 4rem; height: auto; fill: var(--color-secondary); @@ -181,6 +101,27 @@ const { class: className } = Astro.props; } @media screen and (max-width: 800px) { + section { + grid-template-areas: + "header" + "main" + "tools"; + grid-template-columns: 1fr; + } + + .tools-content { + svg { + align-self: center; + rotate: 0deg; + } + } + + .tools-grid { + grid-template-columns: repeat(4, 1fr); + } + } + + @media screen and (max-width: 600px) { .tools-grid { grid-template-columns: repeat(2, 1fr); } diff --git a/src/site.config.ts b/src/site.config.ts index ccbd5550..6bd3355f 100644 --- a/src/site.config.ts +++ b/src/site.config.ts @@ -31,7 +31,7 @@ export const C = { GITHUB: "https://github.com/openscript-ch", }, BROWSER: { - THEME_COLOR: "#663399", + THEME_COLOR: "#fa5100", }, }, } as const;