110 Commits

Author SHA1 Message Date
61fb17f984 fix(deps): update dependency recharts to v3
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Failing after 24s
Lint / Lint and Typecheck (pull_request) Failing after 24s
2025-11-15 16:03:07 +00:00
8006a65e88 linter issues
Some checks failed
Lint / Lint and Typecheck (push) Failing after 27s
2025-11-15 16:43:44 +01:00
fe4783ae97 fix eslint 2025-11-15 16:43:16 +01:00
d880b3fc26 tailwind 4 2025-11-15 16:40:44 +01:00
299de302d4 prettier file 2025-11-15 16:40:29 +01:00
96a3c13cc7 next16 2025-11-15 16:12:28 +01:00
782ba7b911 chore(deps): update pnpm to v10.22.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 30s
2025-11-15 14:02:23 +00:00
201f133863 chore(deps): update pnpm to v10.21.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 27s
2025-11-15 07:02:47 +00:00
d46fea9ea3 chore(deps): update dependency @types/react-dom to v19.2.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 28s
2025-11-15 06:03:37 +00:00
7811949cc4 chore(deps): update dependency tailwind-merge to v3.4.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 27s
2025-11-15 04:02:50 +00:00
9cdedf2bf9 chore(deps): update dependency typescript-eslint to v8.46.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 25s
2025-11-15 03:03:24 +00:00
5720571416 chore(deps): update dependency next-plausible to v3.12.5
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 25s
2025-11-15 02:03:20 +00:00
22e7a6903b chore(deps): update dependency @types/react to v19.2.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 30s
2025-11-15 01:03:31 +00:00
22d4d65ad8 chore(deps): update dependency @types/node to v24.10.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint and Typecheck (push) Successful in 27s
2025-11-15 00:03:01 +00:00
85b9cdb28f fix(deps): update dependency lucide-react to ^0.553.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 37s
2025-11-08 05:03:01 +00:00
67d73ad308 chore(deps): update dependency @types/node to v24.10.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-11-08 04:03:08 +00:00
03d556fd92 chore(deps): update tailwindcss monorepo to v4.1.17
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-11-08 03:16:06 +00:00
095c681401 chore(deps): update radix-ui-primitives monorepo
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-11-08 02:04:17 +00:00
e9fcc24e65 chore(deps): update dependency typescript-eslint to v8.46.3
Some checks failed
Lint / Lint and Typecheck (push) Failing after 12m4s
2025-11-08 01:04:17 +00:00
a811f31238 chore(deps): update dependency eslint to v9.39.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-11-08 00:03:26 +00:00
28ffd7f7d2 chore(deps): update dependency node to v24
All checks were successful
Lint / Lint and Typecheck (pull_request) Successful in 27s
Lint / Lint and Typecheck (push) Successful in 26s
2025-11-01 07:52:42 +01:00
06ca97dd36 chore(deps): update actions/setup-node action to v6 (#11)
All checks were successful
Lint / Lint and Typecheck (push) Successful in 33s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://github.com/actions/setup-node) | action | major | `v5` -> `v6` |

---

### Release Notes

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

### [`v6`](https://github.com/actions/setup-node/compare/v5...v6)

[Compare Source](https://github.com/actions/setup-node/compare/v5...v6)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #11
Co-authored-by: Renovate Bot <renovatebot@schulze.network>
Co-committed-by: Renovate Bot <renovatebot@schulze.network>
2025-11-01 07:51:30 +01:00
f359566266 fix(deps): update dependency lucide-react to ^0.552.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-11-01 04:03:16 +00:00
7f009e5cb3 chore(deps): update pnpm to v10.20.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 33s
2025-11-01 03:03:32 +00:00
a1c92b5cce chore(deps): update dependency react-hook-form to v7.66.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-11-01 02:04:04 +00:00
7d6af6734a chore(deps): update dependency eslint to v9.39.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-11-01 01:04:17 +00:00
9fa7693d31 chore(deps): update dependency @types/node to v22.18.13
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-11-01 00:03:41 +00:00
c31198ac43 fix(deps): update dependency lucide-react to ^0.548.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-10-25 04:02:51 +00:00
a636d280f0 chore(deps): update pnpm to v10.19.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-10-25 03:03:00 +00:00
43db22f9a3 chore(deps): update tailwindcss monorepo to v4.1.16
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-10-25 02:03:14 +00:00
17e56aad5d chore(deps): update dependency typescript-eslint to v8.46.2
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-10-25 01:03:22 +00:00
a7cbaf4290 chore(deps): update dependency @types/node to v22.18.12
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-10-25 00:03:11 +00:00
77d296b2b4 fix(deps): update dependency lucide-react to ^0.546.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-10-18 07:01:07 +00:00
a34a4237d0 chore(deps): update dependency prettier-plugin-tailwindcss to v0.7.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 36s
2025-10-18 06:01:30 +00:00
705fd2ae52 chore(deps): update dependency eslint to v9.38.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-10-18 05:01:51 +00:00
374b52497f chore(deps): update pnpm to v10.18.3
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-10-18 04:02:15 +00:00
4c1f070b2f chore(deps): update nextjs monorepo to v15.5.6
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-10-18 03:02:33 +00:00
8f354a03ff chore(deps): update dependency typescript-eslint to v8.46.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-10-18 02:02:39 +00:00
d0e9cc5627 chore(deps): update dependency @types/react-dom to v19.2.2
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-10-18 01:03:09 +00:00
ccc31c27ec chore(deps): update dependency @types/node to v22.18.11
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-10-18 00:02:31 +00:00
ad49570b89 chore(deps): update dependency @types/node to v22.18.10
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-10-11 15:02:01 +00:00
7efdfbaf69 fix(deps): update dependency lucide-react to ^0.545.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-10-11 07:02:49 +00:00
4e0289b82b chore(deps): update dependency typescript-eslint to v8.46.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-10-11 06:03:00 +00:00
4d98281cc2 chore(deps): update dependency react-hook-form to v7.65.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 32s
2025-10-11 05:03:05 +00:00
47c1e72c1f chore(deps): update react monorepo
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-10-11 04:03:24 +00:00
82ef0e626a chore(deps): update pnpm to v10.18.2
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-10-11 03:03:46 +00:00
8b2b8359c8 chore(deps): update dependency zod to v4.1.12
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-10-11 02:03:44 +00:00
8c61d3b7fb chore(deps): update dependency @types/node to v22.18.9
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-10-11 01:04:19 +00:00
d47a50d715 chore(deps): update pnpm/action-setup digest to 41ff726
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-10-11 00:03:18 +00:00
98b4e88cc9 chore(deps): update react monorepo to v19.2.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-10-04 07:02:50 +00:00
4a87f8d20b chore(deps): update pnpm to v10.18.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-10-04 06:02:48 +00:00
6858054bee chore(deps): update dependency typescript-eslint to v8.45.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-10-04 05:03:07 +00:00
ec3511f109 chore(deps): update dependency react-hook-form to v7.64.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-10-04 04:03:14 +00:00
0688838a08 chore(deps): update dependency eslint to v9.37.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-10-04 03:03:33 +00:00
838983f9f0 chore(deps): update tailwindcss monorepo to v4.1.14
All checks were successful
Lint / Lint and Typecheck (push) Successful in 25s
2025-10-04 02:03:41 +00:00
4aac8fcb3a chore(deps): update dependency typescript to v5.9.3
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-10-04 01:04:06 +00:00
8b04f3125e chore(deps): update dependency @types/node to v22.18.8
All checks were successful
Lint / Lint and Typecheck (push) Successful in 45s
2025-10-04 00:03:13 +00:00
57e21b36a5 chore(deps): update dependency @types/react to v19.1.15
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-28 12:01:19 +00:00
e80ee03b5f chore(deps): update dependency tw-animate-css to v1.4.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-09-27 04:01:43 +00:00
6166f3045b chore(deps): update pnpm to v10.17.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-27 03:02:16 +00:00
fc76248c2a chore(deps): update nextjs monorepo to v15.5.4
All checks were successful
Lint / Lint and Typecheck (push) Successful in 25s
2025-09-27 02:02:18 +00:00
1224c87729 chore(deps): update dependency typescript-eslint to v8.44.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-09-27 01:02:36 +00:00
29a9d1e889 chore(deps): update dependency @types/react to v19.1.14
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-09-27 00:02:01 +00:00
b6de96d11b chore(deps): update actions/checkout action to v5 (#8)
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

### [`v5`](https://github.com/actions/checkout/compare/v4...v5)

[Compare Source](https://github.com/actions/checkout/compare/v4...v5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #8
Co-authored-by: Renovate Bot <renovatebot@schulze.network>
Co-committed-by: Renovate Bot <renovatebot@schulze.network>
2025-09-21 22:45:58 +02:00
1ce7f5c2dd chore(deps): update actions/setup-node action to v5
All checks were successful
Lint / Lint and Typecheck (pull_request) Successful in 27s
Lint / Lint and Typecheck (push) Successful in 28s
2025-09-21 21:45:42 +02:00
a3053ef2bc fix(deps): update dependency zod to v4.1.11
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-20 18:01:23 +00:00
8365d4a740 fix(deps): update dependency react-hook-form to v7.63.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-09-20 05:01:40 +00:00
b6acad8e42 chore(deps): update pnpm to v10.17.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-20 04:01:47 +00:00
ae1fba6f91 chore(deps): update dependency typescript-eslint to v8.44.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-20 03:02:05 +00:00
aff4d0cc4c chore(deps): update dependency eslint to v9.36.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-20 02:02:29 +00:00
27fbe99a8e fix(deps): update dependency zod to v4.1.9
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-09-20 01:02:35 +00:00
29fa053677 chore(deps): update dependency @types/node to v22.18.6
All checks were successful
Lint / Lint and Typecheck (push) Successful in 32s
2025-09-20 00:02:11 +00:00
d2e6c6019c fix(deps): update dependency @hookform/resolvers to v5.2.2
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-14 09:01:27 +00:00
d721116100 chore(deps): update pnpm to v10.16.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-13 18:01:17 +00:00
02455423e2 fix(deps): update dependency lucide-react to ^0.544.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 32s
2025-09-13 06:01:33 +00:00
77a467c1db chore(deps): update pnpm to v10.16.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-09-13 05:01:55 +00:00
2b0e714713 chore(deps): update dependency typescript-eslint to v8.43.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-09-13 04:02:30 +00:00
c1191b4753 fix(deps): update nextjs monorepo to v15.5.3
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-13 03:02:37 +00:00
324c48fe4d fix(deps): update dependency zod to v4.1.8
All checks were successful
Lint / Lint and Typecheck (push) Successful in 25s
2025-09-13 02:02:41 +00:00
afb32d59b6 chore(deps): update dependency @types/node to v22.18.3
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-09-13 01:03:15 +00:00
cafb1a19a5 chore(deps): update dependency @types/react to v19.1.13
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-09-13 00:02:29 +00:00
4b6f79017e chore(deps): update dependency typescript-eslint to v8.42.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 34s
2025-09-06 05:01:09 +00:00
6399c38b97 chore(deps): update dependency eslint to v9.35.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 35s
2025-09-06 04:01:38 +00:00
b0b88132dc chore(deps): update tailwindcss monorepo to v4.1.13
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-09-06 03:01:50 +00:00
2c6ed4b196 chore(deps): update pnpm to v10.15.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-09-06 02:02:01 +00:00
457cfeed6d chore(deps): update dependency tw-animate-css to v1.3.8
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-09-06 01:02:27 +00:00
1bcb7420ef chore(deps): update dependency @types/node to v22.18.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-09-06 00:01:55 +00:00
4d09aba1ff fix(deps): update dependency lucide-react to ^0.542.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-08-30 05:01:39 +00:00
4c8b4bb4d5 chore(deps): update dependency typescript-eslint to v8.41.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-08-30 04:02:01 +00:00
18c7a5f2cb chore(deps): update dependency @types/node to v22.18.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 25s
2025-08-30 03:02:34 +00:00
7502069d16 fix(deps): update nextjs monorepo to v15.5.2
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-08-30 02:02:43 +00:00
45d57471d9 fix(deps): update dependency zod to v4.1.5
All checks were successful
Lint / Lint and Typecheck (push) Successful in 27s
2025-08-30 01:02:44 +00:00
9d23916eb2 chore(deps): update react monorepo
All checks were successful
Lint / Lint and Typecheck (push) Successful in 32s
2025-08-30 00:02:10 +00:00
47b5100611 fix(deps): update dependency zod to v4.1.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 28s
2025-08-24 07:01:14 +00:00
007353e2ab fix(deps): update dependency zod to v4.1.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 25s
2025-08-23 08:01:33 +00:00
d1fe3b29c3 fix(deps): update nextjs monorepo to v15.5.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-08-23 05:01:59 +00:00
a4ba1bdc67 fix(deps): update dependency lucide-react to ^0.541.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 25s
2025-08-23 04:02:19 +00:00
414eee9591 chore(deps): update pnpm to v10.15.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 29s
2025-08-23 03:02:24 +00:00
8e8652e2aa chore(deps): update dependency typescript-eslint to v8.40.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 26s
2025-08-23 02:02:48 +00:00
8d9b0e3792 chore(deps): update dependency eslint to v9.34.0
All checks were successful
Lint / Lint and Typecheck (push) Successful in 30s
2025-08-23 01:03:08 +00:00
0408287300 chore(deps): update dependency @types/react to v19.1.11
All checks were successful
Lint / Lint and Typecheck (push) Successful in 31s
2025-08-23 00:02:28 +00:00
bb30c066df chore(deps): update dependency tw-animate-css to v1.3.7
All checks were successful
Lint / Lint and Typecheck (push) Successful in 56s
2025-08-16 16:01:43 +00:00
fcf5caee46 fix(deps): update react monorepo
All checks were successful
Lint / Lint and Typecheck (push) Successful in 1m11s
2025-08-16 11:03:31 +00:00
de3a06384e fix(deps): update nextjs monorepo to v15.4.6
All checks were successful
Lint / Lint and Typecheck (push) Successful in 54s
2025-08-16 10:32:00 +00:00
cfb594ef15 fix(deps): update radix-ui-primitives monorepo
All checks were successful
Lint / Lint and Typecheck (push) Successful in 57s
2025-08-16 04:04:22 +00:00
cbdc49328a chore(deps): update tailwindcss monorepo to v4.1.12
All checks were successful
Lint / Lint and Typecheck (push) Successful in 57s
2025-08-16 03:04:43 +00:00
8dbc2c5de6 chore(deps): update dependency typescript-eslint to v8.39.1
All checks were successful
Lint / Lint and Typecheck (push) Successful in 54s
2025-08-16 02:05:17 +00:00
c3771f85e0 chore(deps): update dependency @types/node to v22.17.2
All checks were successful
Lint / Lint and Typecheck (push) Successful in 52s
2025-08-16 01:06:16 +00:00
1c68d65539 chore(deps): update actions/checkout digest to 08eba0b
All checks were successful
Lint / Lint and Typecheck (push) Successful in 51s
2025-08-16 00:04:28 +00:00
d58a5bb2bb fix(deps): update dependency zod to v4.0.17
All checks were successful
Lint / Lint and Typecheck (push) Successful in 49s
2025-08-09 18:02:49 +00:00
18 changed files with 1582 additions and 1333 deletions

View File

@@ -13,19 +13,19 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- name: Install pnpm
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version: 22
node-version: 24
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Run check
run: pnpm run check
- name: Run lint
run: pnpm run lint

6
.prettierrc Normal file
View File

@@ -0,0 +1,6 @@
{
"tabWidth": 2,
"singleQuote": true,
"printWidth": 105,
"plugins": ["prettier-plugin-tailwindcss"]
}

View File

@@ -1,48 +0,0 @@
import { FlatCompat } from "@eslint/eslintrc";
import tseslint from "typescript-eslint";
const compat = new FlatCompat({
baseDirectory: import.meta.dirname,
});
export default tseslint.config(
{
ignores: [".next"],
},
...compat.extends("next/core-web-vitals"),
{
files: ["**/*.ts", "**/*.tsx"],
extends: [
...tseslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
...tseslint.configs.stylisticTypeChecked,
],
rules: {
"@typescript-eslint/array-type": "off",
"@typescript-eslint/consistent-type-definitions": "off",
"@typescript-eslint/consistent-type-imports": [
"warn",
{ prefer: "type-imports", fixStyle: "inline-type-imports" },
],
"@typescript-eslint/no-unused-vars": [
"warn",
{ argsIgnorePattern: "^_" },
],
"@typescript-eslint/require-await": "off",
"@typescript-eslint/no-misused-promises": [
"error",
{ checksVoidReturn: { attributes: false } },
],
},
},
{
linterOptions: {
reportUnusedDisableDirectives: true,
},
languageOptions: {
parserOptions: {
projectService: true,
},
},
},
);

37
eslint.config.mjs Normal file
View File

@@ -0,0 +1,37 @@
// @ts-check
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";
import tseslint from "typescript-eslint";
const eslintConfig = defineConfig([
// Next.js core-web-vitals and TypeScript configs
...nextVitals,
...nextTs,
// Add strict TypeScript rules on top
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
// Configure TypeScript parser options
{
files: ["**/*.{ts,tsx}"],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
// Override default ignores of eslint-config-next
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
// Additional ignores:
"*.mjs",
"tailwind.config.ts",
]),
]);
export default eslintConfig;

View File

@@ -2,7 +2,7 @@
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
* for Docker builds.
*/
import "./src/env.js";
import './src/env.ts';
/** @type {import("next").NextConfig} */
const config = {};

View File

@@ -9,7 +9,7 @@
"dev": "next dev --turbopack",
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
"lint:fix": "next lint --fix",
"lint": "next typegen && eslint . && npx tsc --noEmit",
"preview": "next build && next start",
"start": "next start"
},
@@ -23,35 +23,41 @@
"@t3-oss/env-nextjs": "^0.13.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^0.539.0",
"next": "^15.4.1",
"lucide-react": "^0.553.0",
"next": "16.0.3",
"next-plausible": "^3.12.4",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react": "19.2.0",
"react-dom": "19.2.0",
"react-hook-form": "^7.56.1",
"recharts": "^2.15.3",
"recharts": "^3.0.0",
"tailwind-merge": "^3.2.0",
"zod": "^4.0.0"
},
"devDependencies": {
"@eslint/eslintrc": "3.3.1",
"@tailwindcss/postcss": "4.1.11",
"@types/node": "22.17.1",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"eslint": "9.33.0",
"eslint-config-next": "15.4.4",
"@tailwindcss/postcss": "4.1.17",
"@types/node": "24.10.1",
"@types/react": "19.2.5",
"@types/react-dom": "19.2.3",
"eslint": "9.39.1",
"eslint-config-next": "16.0.3",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-react-hooks": "5.2.0",
"postcss": "8.5.6",
"prettier": "3.6.2",
"prettier-plugin-tailwindcss": "0.6.14",
"tailwindcss": "4.1.11",
"tw-animate-css": "1.3.6",
"typescript": "5.9.2",
"typescript-eslint": "8.39.0"
"prettier-plugin-tailwindcss": "0.7.1",
"tailwindcss": "4.1.17",
"tw-animate-css": "1.4.0",
"typescript": "5.9.3",
"typescript-eslint": "8.46.4"
},
"ct3aMetadata": {
"initVersion": "7.39.3"
},
"packageManager": "pnpm@10.14.0"
"packageManager": "pnpm@10.22.0",
"pnpm": {
"overrides": {
"@types/react": "19.2.5",
"@types/react-dom": "19.2.3"
}
}
}

2681
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +0,0 @@
/** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions} */
export default {
plugins: ["prettier-plugin-tailwindcss"],
};

View File

@@ -124,7 +124,7 @@ export default function MultiIconPattern({ opacity = 0.2, spacing = 160 }) {
for (let x = 0; x < columns; x++) {
// Pick a random icon component from the array
const randomIndex = Math.floor(Math.random() * iconComponents.length);
const IconComponent = iconComponents[randomIndex]!;
const IconComponent = iconComponents[randomIndex];
// Slightly randomize size and position for more organic feel
const size = 28 + Math.floor(Math.random() * 8);

View File

@@ -648,7 +648,7 @@ export default function FireCalculatorForm() {
)}
{result && (
<Button
onClick={() => setShowing4percent(!showing4percent)}
onClick={() => { setShowing4percent(!showing4percent); }}
variant={showing4percent ? "secondary" : "default"}
size={"sm"}
>

View File

@@ -66,7 +66,7 @@ export default function HomePage() {
};
return (
<main className="text-primary-foreground to-destructive from-secondary flex min-h-screen flex-col items-center bg-gradient-to-b p-2">
<main className="text-primary-foreground to-destructive from-secondary flex min-h-screen flex-col items-center bg-linear-to-b p-2">
<BackgroundPattern />
<div className="z-10 mx-auto flex flex-col items-center justify-center gap-4 text-center">
<div className="mt-8 flex flex-row flex-wrap items-center justify-center gap-4 align-middle">
@@ -78,7 +78,7 @@ export default function HomePage() {
width={100}
height={100}
/>
<h1 className="from-primary via-primary-foreground to-primary bg-gradient-to-r bg-clip-text text-5xl font-extrabold tracking-tight text-transparent drop-shadow-md sm:text-[5rem]">
<h1 className="from-primary via-primary-foreground to-primary bg-linear-to-r bg-clip-text text-5xl font-extrabold tracking-tight text-transparent drop-shadow-md sm:text-[5rem]">
InvestingFIRE
</h1>
</div>

View File

@@ -20,9 +20,9 @@ export type ChartConfig = Record<
)
>;
type ChartContextProps = {
interface ChartContextProps {
config: ChartConfig;
};
}
const ChartContext = React.createContext<ChartContextProps | null>(null);
@@ -175,7 +175,7 @@ function ChartTooltipContent({
return (
<div
className={cn(
"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
"border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
className,
)}
>
@@ -207,7 +207,7 @@ function ChartTooltipContent({
!hideIndicator && (
<div
className={cn(
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
"shrink-0 rounded-[2px] border-border bg-(--color-bg)",
{
"h-2.5 w-2.5": indicator === "dot",
"w-1": indicator === "line",

View File

@@ -18,12 +18,12 @@ import { Label } from "@/components/ui/label";
const Form = FormProvider;
type FormFieldContextValue<
interface FormFieldContextValue<
TFieldValues extends FieldValues = FieldValues,
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
> = {
> {
name: TName;
};
}
const FormFieldContext = React.createContext<FormFieldContextValue>(
{} as FormFieldContextValue,
@@ -61,9 +61,9 @@ const useFormField = () => {
};
};
type FormItemContextValue = {
interface FormItemContextValue {
id: string;
};
}
const FormItemContext = React.createContext<FormItemContextValue>(
{} as FormItemContextValue,
@@ -110,7 +110,7 @@ function FormControl({ ...props }: React.ComponentProps<typeof Slot>) {
id={formItemId}
aria-describedby={
!error
? `${formDescriptionId}`
? formDescriptionId
: `${formDescriptionId} ${formMessageId}`
}
aria-invalid={!!error}

View File

@@ -37,7 +37,7 @@ function SelectTrigger({
data-slot="select-trigger"
data-size={size}
className={cn(
"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
"border-input data-placeholder:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
className,
)}
{...props}
@@ -61,7 +61,7 @@ function SelectContent({
<SelectPrimitive.Content
data-slot="select-content"
className={cn(
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
position === "popper" &&
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
className,
@@ -74,7 +74,7 @@ function SelectContent({
className={cn(
"p-1",
position === "popper" &&
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1",
"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1",
)}
>
{children}
@@ -107,7 +107,7 @@ function SelectItem({
<SelectPrimitive.Item
data-slot="select-item"
className={cn(
"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
className,
)}
{...props}

View File

@@ -31,7 +31,7 @@ function Slider({
min={min}
max={max}
className={cn(
"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
className,
)}
{...props}

View File

@@ -1,42 +1,35 @@
{
"compilerOptions": {
/* Base Options: */
"esModuleInterop": true,
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": false,
"skipLibCheck": true,
"target": "es2022",
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"isolatedModules": true,
"verbatimModuleSyntax": true,
/* Strictness */
"strict": true,
"noUncheckedIndexedAccess": true,
"checkJs": true,
/* Bundled projects */
"lib": ["dom", "dom.iterable", "ES2022"],
"noEmit": true,
"module": "ESNext",
"moduleResolution": "Bundler",
"jsx": "preserve",
"plugins": [{ "name": "next" }],
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx",
"incremental": true,
/* Path Aliases */
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"target": "ES2022",
"forceConsistentCasingInFileNames": true,
"verbatimModuleSyntax": true,
"noUncheckedIndexedAccess": false,
"exactOptionalPropertyTypes": false,
"noImplicitReturns": false,
"plugins": [{ "name": "next" }]
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
"**/*.cjs",
"**/*.js",
".next/types/**/*.ts"
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": ["node_modules"]
}