diff --git a/.github/stale.yml b/.github/stale.yml index 102a5d72a..7f194bc66 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -7,7 +7,7 @@ exemptLabels: - pinned - security # Label to use when marking an issue as stale -staleLabel: +staleLabel: # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > This issue has been automatically marked as stale because it has not had diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..da1ee7803 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,39 @@ +name: CI + +on: + push: + branches: + - "master" + pull_request: + branches: + - "master" + +env: + HUSKY: 0 + +jobs: + ci: + name: CI + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + cache: "pnpm" + + - name: Install Dependencies + shell: bash + run: pnpm install --frozen-lockfile + + - name: Format + run: | + pnpm run format diff --git a/.github/workflows/lock-issue.yml b/.github/workflows/lock-issue.yml index d0e6cbe43..c7b87af73 100644 --- a/.github/workflows/lock-issue.yml +++ b/.github/workflows/lock-issue.yml @@ -1,9 +1,9 @@ -name: 'Lock Issues' +name: "Lock Issues" on: workflow_dispatch: schedule: - - cron: '0 0,6,12,18 * * *' + - cron: "0 0,6,12,18 * * *" permissions: issues: write diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..f812e4592 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.18.1 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..eeeb7be52 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +pnpm-lock.yaml \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 48e90e8d4..51a0e9f52 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,5 @@ { + "$schema": "https://json.schemastore.org/prettierrc", "endOfLine": "lf", "semi": false, "singleQuote": false, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a5949c268..a07d492ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -56,7 +56,7 @@ React Hook Form uses prettier. If possible, enable the prettier plugin in your editor to get real-time feedback. The formatting can be run manually with the following command: ```shellscript -pnpm run format +pnpm run format:fix ``` ## License diff --git a/package.json b/package.json index acf704136..925ccbd74 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.3", "lint-staged": "^13.2.2", - "prettier": "^2.8.8", + "prettier": "^3.4.2", "typescript": "^5.1.3" }, "keywords": [ @@ -58,7 +58,8 @@ "analyze": "cross-env ANALYZE=true next build", "build": "next build", "dev": "next dev", - "format": "prettier --write", + "format": "prettier . --check", + "format:fix": "prettier . --write", "lint": "next lint --fix", "now-build": "pnpm run build", "start": "next start", @@ -67,7 +68,8 @@ }, "lint-staged": { "*.{ts,tsx,mdx,css,json}": [ - "pnpm run format" + "pnpm run format:fix" ] - } + }, + "packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a58591f85..f0acb94f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: dependencies: '@hookform/devtools': specifier: 4.3.1 - version: 4.3.1(react-dom@18.2.0)(react@18.2.0) + version: 4.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mdx-js/loader': specifier: ^2.3.0 - version: 2.3.0(webpack@5.95.0) + version: 2.3.0(webpack@5.95.0(esbuild@0.24.0)) '@mdx-js/react': specifier: ^2.3.0 version: 2.3.0(react@18.2.0) '@next/mdx': specifier: ^13.4.5 - version: 13.5.7(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0) + version: 13.5.7(@mdx-js/loader@2.3.0(webpack@5.95.0(esbuild@0.24.0)))(@mdx-js/react@2.3.0(react@18.2.0)) '@types/node': specifier: ^20.3.1 version: 20.16.13 @@ -40,13 +40,13 @@ importers: version: 4.8.0(react@18.2.0) next: specifier: ^14.1.1 - version: 14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-contentlayer: specifier: ^0.3.3 - version: 0.3.4(contentlayer@0.3.4)(esbuild@0.24.0)(next@14.2.15)(react-dom@18.2.0)(react@18.2.0) + version: 0.3.4(contentlayer@0.3.4(esbuild@0.24.0))(esbuild@0.24.0)(next@14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@14.2.15)(react-dom@18.2.0)(react@18.2.0) + version: 0.2.1(next@14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) prism-react-renderer: specifier: ^2.0.5 version: 2.4.0(react@18.2.0) @@ -67,13 +67,13 @@ importers: version: 7.44.3(react@18.2.0) react-simple-animate: specifier: ^3.5.2 - version: 3.5.2(react-dom@18.2.0) + version: 3.5.2(react-dom@18.2.0(react@18.2.0)) react-simple-img: specifier: 3.0.0 - version: 3.0.0(react-dom@18.2.0)(react@18.2.0) + version: 3.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-sortablejs: specifier: 1.5.1 - version: 1.5.1(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0) + version: 1.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sortablejs@1.15.0) rehype-mdx-code-props: specifier: ^1.0.0 version: 1.0.0 @@ -98,7 +98,7 @@ importers: version: 6.1.11 '@typescript-eslint/eslint-plugin': specifier: ^5.59.11 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.6.3) + version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^5.59.11 version: 5.62.0(eslint@8.57.1)(typescript@5.6.3) @@ -130,8 +130,8 @@ importers: specifier: ^13.2.2 version: 13.3.0 prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.4.2 + version: 3.4.2 typescript: specifier: ^5.1.3 version: 5.6.3 @@ -211,10 +211,6 @@ packages: peerDependencies: '@effect-ts/otel-node': '*' peerDependenciesMeta: - '@effect-ts/core': - optional: true - '@effect-ts/otel': - optional: true '@effect-ts/otel-node': optional: true @@ -2609,9 +2605,9 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} + engines: {node: '>=14'} hasBin: true prism-react-renderer@2.4.0: @@ -3353,7 +3349,6 @@ snapshots: '@contentlayer/utils': 0.3.4 camel-case: 4.1.2 comment-json: 4.2.5 - esbuild: 0.24.0 gray-matter: 4.0.3 mdx-bundler: 9.2.1(esbuild@0.24.0) rehype-stringify: 9.0.4 @@ -3363,6 +3358,8 @@ snapshots: source-map-support: 0.5.21 type-fest: 3.13.1 unified: 10.1.2 + optionalDependencies: + esbuild: 0.24.0 transitivePeerDependencies: - '@effect-ts/otel-node' - supports-color @@ -3400,9 +3397,9 @@ snapshots: '@contentlayer/utils@0.3.4': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/sdk-trace-base@1.26.0) - '@effect-ts/otel-exporter-trace-otlp-grpc': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/exporter-trace-otlp-grpc@0.39.1)(@opentelemetry/sdk-trace-base@1.26.0) - '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/sdk-trace-base@1.26.0)(@opentelemetry/sdk-trace-node@1.26.0) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) + '@effect-ts/otel-exporter-trace-otlp-grpc': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/exporter-trace-otlp-grpc@0.39.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) + '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.26.0(@opentelemetry/api@1.9.0)) '@js-temporal/polyfill': 0.4.4 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) @@ -3423,25 +3420,25 @@ snapshots: dependencies: '@effect-ts/system': 0.57.5 - '@effect-ts/otel-exporter-trace-otlp-grpc@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/exporter-trace-otlp-grpc@0.39.1)(@opentelemetry/sdk-trace-base@1.26.0)': + '@effect-ts/otel-exporter-trace-otlp-grpc@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/exporter-trace-otlp-grpc@0.39.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/sdk-trace-base@1.26.0) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-grpc': 0.39.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) - '@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/sdk-trace-base@1.26.0)(@opentelemetry/sdk-trace-node@1.26.0)': + '@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.26.0(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/sdk-trace-base@1.26.0) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.26.0(@opentelemetry/api@1.9.0) - '@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0)(@opentelemetry/sdk-trace-base@1.26.0)': + '@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 '@opentelemetry/api': 1.9.0 @@ -3506,7 +3503,7 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.13.0(@emotion/react@11.13.3)(react@18.2.0)': + '@emotion/styled@11.13.0(@emotion/react@11.13.3(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.25.7 '@emotion/babel-plugin': 11.12.0 @@ -3648,16 +3645,16 @@ snapshots: protobufjs: 7.4.0 yargs: 17.7.2 - '@hookform/devtools@4.3.1(react-dom@18.2.0)(react@18.2.0)': + '@hookform/devtools@4.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@emotion/react': 11.13.3(react@18.2.0) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(react@18.2.0) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(react@18.2.0))(react@18.2.0) '@types/lodash': 4.17.12 little-state-machine: 4.8.0(react@18.2.0) lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-simple-animate: 3.5.2(react-dom@18.2.0) + react-simple-animate: 3.5.2(react-dom@18.2.0(react@18.2.0)) use-deep-compare-effect: 1.8.1(react@18.2.0) uuid: 8.3.2 transitivePeerDependencies: @@ -3714,7 +3711,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/loader@2.3.0(webpack@5.95.0)': + '@mdx-js/loader@2.3.0(webpack@5.95.0(esbuild@0.24.0))': dependencies: '@mdx-js/mdx': 2.3.0 source-map: 0.7.4 @@ -3763,11 +3760,12 @@ snapshots: dependencies: glob: 7.1.7 - '@next/mdx@13.5.7(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0)': + '@next/mdx@13.5.7(@mdx-js/loader@2.3.0(webpack@5.95.0(esbuild@0.24.0)))(@mdx-js/react@2.3.0(react@18.2.0))': dependencies: - '@mdx-js/loader': 2.3.0(webpack@5.95.0) - '@mdx-js/react': 2.3.0(react@18.2.0) source-map: 0.7.4 + optionalDependencies: + '@mdx-js/loader': 2.3.0(webpack@5.95.0(esbuild@0.24.0)) + '@mdx-js/react': 2.3.0(react@18.2.0) '@next/swc-darwin-arm64@14.2.15': optional: true @@ -4022,7 +4020,7 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) @@ -4036,6 +4034,7 @@ snapshots: natural-compare-lite: 1.4.0 semver: 7.6.3 tsutils: 3.21.0(typescript@5.6.3) + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4047,6 +4046,7 @@ snapshots: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) debug: 4.3.7 eslint: 8.57.1 + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4063,6 +4063,7 @@ snapshots: debug: 4.3.7 eslint: 8.57.1 tsutils: 3.21.0(typescript@5.6.3) + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4078,6 +4079,7 @@ snapshots: is-glob: 4.0.3 semver: 7.6.3 tsutils: 3.21.0(typescript@5.6.3) + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4772,11 +4774,12 @@ snapshots: '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) eslint-plugin-react: 7.37.1(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -4795,38 +4798,39 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -4835,7 +4839,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -4846,6 +4850,8 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -6121,12 +6127,12 @@ snapshots: neo-async@2.6.2: {} - next-contentlayer@0.3.4(contentlayer@0.3.4)(esbuild@0.24.0)(next@14.2.15)(react-dom@18.2.0)(react@18.2.0): + next-contentlayer@0.3.4(contentlayer@0.3.4(esbuild@0.24.0))(esbuild@0.24.0)(next@14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@contentlayer/core': 0.3.4(esbuild@0.24.0) '@contentlayer/utils': 0.3.4 contentlayer: 0.3.4(esbuild@0.24.0) - next: 14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -6135,16 +6141,15 @@ snapshots: - markdown-wasm - supports-color - next-themes@0.2.1(next@14.2.15)(react-dom@18.2.0)(react@18.2.0): + next-themes@0.2.1(next@14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - next: 14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - next@14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0): + next@14.2.15(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@next/env': 14.2.15 - '@opentelemetry/api': 1.9.0 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001669 @@ -6163,6 +6168,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.15 '@next/swc-win32-ia32-msvc': 14.2.15 '@next/swc-win32-x64-msvc': 14.2.15 + '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -6331,7 +6337,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@2.8.8: {} + prettier@3.4.2: {} prism-react-renderer@2.4.0(react@18.2.0): dependencies: @@ -6389,16 +6395,16 @@ snapshots: react-is@16.13.1: {} - react-simple-animate@3.5.2(react-dom@18.2.0): + react-simple-animate@3.5.2(react-dom@18.2.0(react@18.2.0)): dependencies: react-dom: 18.2.0(react@18.2.0) - react-simple-img@3.0.0(react-dom@18.2.0)(react@18.2.0): + react-simple-img@3.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-sortablejs@1.5.1(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0): + react-sortablejs@1.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sortablejs@1.15.0): dependencies: prop-types: 15.8.1 react: 18.2.0 @@ -6761,15 +6767,16 @@ snapshots: tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(esbuild@0.24.0)(webpack@5.95.0): + terser-webpack-plugin@5.3.10(esbuild@0.24.0)(webpack@5.95.0(esbuild@0.24.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 - esbuild: 0.24.0 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 webpack: 5.95.0(esbuild@0.24.0) + optionalDependencies: + esbuild: 0.24.0 terser@5.36.0: dependencies: @@ -7001,7 +7008,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.24.0)(webpack@5.95.0) + terser-webpack-plugin: 5.3.10(esbuild@0.24.0)(webpack@5.95.0(esbuild@0.24.0)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/src/components/Watcher.tsx b/src/components/Watcher.tsx index 832dc0d6c..8bec409ac 100644 --- a/src/components/Watcher.tsx +++ b/src/components/Watcher.tsx @@ -70,20 +70,20 @@ const Watcher = ({ isPlayWatch }: { isPlayWatch: boolean }) => { i === 13 ? "W" : i === 14 - ? "Wa" - : i === 15 - ? "Wat" - : i === 16 - ? "Watc" - : i === 17 - ? "Watch" - : i === 18 - ? "Watchi" - : i === 19 - ? "Watchin" - : i === 20 - ? "Watching" - : "Watching." + ? "Wa" + : i === 15 + ? "Wat" + : i === 16 + ? "Watc" + : i === 17 + ? "Watch" + : i === 18 + ? "Watchi" + : i === 19 + ? "Watchin" + : i === 20 + ? "Watching" + : "Watching." ) } diff --git a/src/components/layout.css b/src/components/layout.css index 971372c35..7e4ce1ed5 100644 --- a/src/components/layout.css +++ b/src/components/layout.css @@ -523,11 +523,17 @@ a.skip-main:active { width: 1px; height: 1px; border: 1px solid transparent; - box-shadow: -2px 0 0 -1px currentColor, 2px 0 0 -1px currentColor, - 0 -2px 0 -1px currentColor, 0 2px 0 -1px currentColor, - -6px 0 0 -1px currentColor, 6px 0 0 -1px currentColor, - -4px -2px 0 -1px currentColor, -4px 2px 0 -1px currentColor, - 4px -2px 0 -1px currentColor, 4px 2px 0 -1px currentColor; + box-shadow: + -2px 0 0 -1px currentColor, + 2px 0 0 -1px currentColor, + 0 -2px 0 -1px currentColor, + 0 2px 0 -1px currentColor, + -6px 0 0 -1px currentColor, + 6px 0 0 -1px currentColor, + -4px -2px 0 -1px currentColor, + -4px 2px 0 -1px currentColor, + 4px -2px 0 -1px currentColor, + 4px 2px 0 -1px currentColor; } .keyboard.icon:after { diff --git a/src/components/sponsorsList.tsx b/src/components/sponsorsList.tsx index d27f4d8e5..c85a6744c 100644 --- a/src/components/sponsorsList.tsx +++ b/src/components/sponsorsList.tsx @@ -11,7 +11,7 @@ export function SponsorsList() { target="_blank" rel="noopener noreferrer" > - Casino Reviews + Casino Reviews - route4me + route4me - + console.log(data) - const { register, reset } = methods; + const { register, reset } = methods useEffect(() => { reset({ - name: 'data' + name: "data", }) - }, [reset]); // ❌ never put `methods` as the deps + }, [reset]) // ❌ never put `methods` as the deps return ( // pass all methods into the context
- +
diff --git a/src/content/docs/usecontroller/controller.mdx b/src/content/docs/usecontroller/controller.mdx index 1d9d010bc..66f9e9cc6 100644 --- a/src/content/docs/usecontroller/controller.mdx +++ b/src/content/docs/usecontroller/controller.mdx @@ -35,7 +35,7 @@ The following table contains information about properties which `Controller` pro | `field` | `onChange` | `(value: any) => void` | A function which sends the input's value to the library.

_It should be assigned to the `onChange` prop of the input and value should **not be `undefined`**._
This prop update [formState](/docs/useform/formstate) and you should avoid manually invoke [setValue](/docs/useform/setvalue) or other API related to field update. | | `field` | `onBlur` | `() => void` | A function which sends the input's onBlur event to the library. It should be assigned to the input's `onBlur` prop. | | `field` | `value` | unknown | The current value of the controlled component. | -| `field` | `disabled` | boolean | The disabled state of the input. | +| `field` | `disabled` | boolean | The disabled state of the input. | | `field` | `name` | string | Input's name being registered. | | `field` | `ref` | React.ref | A ref used to connect hook form to the input. Assign `ref` to component's input ref to allow hook form to focus the error input. | | `fieldState` | `invalid` | boolean | Invalid state for current input. | diff --git a/src/content/docs/useform.mdx b/src/content/docs/useform.mdx index 7981e9c1a..9a3b436b3 100644 --- a/src/content/docs/useform.mdx +++ b/src/content/docs/useform.mdx @@ -154,8 +154,11 @@ useForm({ - There are other options for including form data: ```javascript + // adding a hidden input + ``` + ```javascript // include data onSubmit const onSubmit = (data) => { const output = { @@ -731,7 +734,7 @@ const methods = useForm() useEffect(() => { methods.reset({ ... }) -}, [methods.reset]} +}, [methods.reset]) ``` diff --git a/src/content/docs/useform/form.mdx b/src/content/docs/useform/form.mdx index d317b1c9d..012d5a652 100644 --- a/src/content/docs/useform/form.mdx +++ b/src/content/docs/useform/form.mdx @@ -33,16 +33,16 @@ By default, we will send a POST request with your form submission data as [FormD All props are optional -| Name | Type | Description | Example | -| ---------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -| `control` | `Control` | [`control`](/docs/useform/control) object provided by invoking `useForm`. Optional when using `FormProvider`. | | -| `children` | `React.ReactNode` | | -| `render` | `Function` | Render prop function suitable for headless component. | | -| `onSubmit` | `Function` | Function invoked after successful validation. | | -| `onSuccess` | `Function` | Function called after successful request to the server. | | +| Name | Type | Description | Example | +| ---------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | +| `control` | `Control` | [`control`](/docs/useform/control) object provided by invoking `useForm`. Optional when using `FormProvider`. | | +| `children` | `React.ReactNode` | | +| `render` | `Function` | Render prop function suitable for headless component. | | +| `onSubmit` | `Function` | Function invoked after successful validation. | | +| `onSuccess` | `Function` | Function called after successful request to the server. | | | `onError` | `Function` | Function called after failed request to the server.

`setError` function will be called to update errors state. `root.server` will be used as error key. | | -| `headers` | `Record` | Request headers object. | | -| `validateStatus` | `(status: number) => boolean` | Function to validate status code. | | +| `headers` | `Record` | Request headers object. | | +| `validateStatus` | `(status: number) => boolean` | Function to validate status code. | | @@ -67,7 +67,7 @@ All props are optional
-
+ // Renders @@ -114,7 +114,8 @@ function App() { {" "} {isSubmitSuccessful &&

Form submit successful.

} - {errors?.root?.server &&

Form submit failed.

} + {errors?.root?.server &&

Form submit failed.

} + // Manual form submission
+ return ``` diff --git a/src/content/docs/useform/reset.mdx b/src/content/docs/useform/reset.mdx index 01d231e16..d05813620 100644 --- a/src/content/docs/useform/reset.mdx +++ b/src/content/docs/useform/reset.mdx @@ -42,13 +42,13 @@ Reset the entire form state, fields reference, and subscriptions. There are opti ``` - It's fine to run `reset` without argument as long as you have provided a `defaultValues` at useForm. - ```javascript - reset(); // update form back to default values + ```javascript + reset() // update form back to default values - reset({ test: 'test' }); // update your defaultValues && form values + reset({ test: "test" }) // update your defaultValues && form values - reset(undefined, { keepDirtyValues: true }); // reset other form state but keep defaultValues and form values - ``` + reset(undefined, { keepDirtyValues: true }) // reset other form state but keep defaultValues and form values + ``` diff --git a/src/content/docs/useform/seterror.mdx b/src/content/docs/useform/seterror.mdx index 9c0b744de..51bf44552 100644 --- a/src/content/docs/useform/seterror.mdx +++ b/src/content/docs/useform/seterror.mdx @@ -22,8 +22,8 @@ The function allows you to manually set one or more errors. - This method will not persist the associated input error if the input passes `register`'s associated rules. ```javascript - register('registerInput', { minLength: 4 }); - setError('registerInput', { type: 'custom', message: 'custom message' }); + register("registerInput", { minLength: 4 }) + setError("registerInput", { type: "custom", message: "custom message" }) // validation will pass as long as minLength requirement pass ``` - An error that is not associated with an input field will be persisted until cleared with `clearErrors`. This behaviour is only applicable for built-in validation at field level. diff --git a/src/content/docs/useformcontext.mdx b/src/content/docs/useformcontext.mdx index 02fddbe25..0fb44267c 100644 --- a/src/content/docs/useformcontext.mdx +++ b/src/content/docs/useformcontext.mdx @@ -36,20 +36,20 @@ import { useForm, FormProvider, useFormContext } from "react-hook-form" export default function App() { const methods = useForm() const onSubmit = (data) => console.log(data) - const { register, reset } = methods; + const { register, reset } = methods useEffect(() => { reset({ - name: 'data' + name: "data", }) - }, [reset]); // ❌ never put `methods` as the deps + }, [reset]) // ❌ never put `methods` as the deps return ( // pass all methods into the context - +
diff --git a/src/content/ts.mdx b/src/content/ts.mdx index 082b4bcc1..5fcc45981 100644 --- a/src/content/ts.mdx +++ b/src/content/ts.mdx @@ -244,7 +244,7 @@ export type UseFormProps< > = Partial<{ mode: Mode disabled: boolean - reValidateMode: Exclude + reValidateMode: Exclude defaultValues: DefaultValues | AsyncDefaultValues values: TFieldValues errors: FieldErrors @@ -267,8 +267,9 @@ export type UseFormProps< ```typescript copy export type UseFieldArrayReturn< TFieldValues extends FieldValues = FieldValues, - TFieldArrayName extends FieldArrayPath = FieldArrayPath, - TKeyName extends string = "id" + TFieldArrayName extends + FieldArrayPath = FieldArrayPath, + TKeyName extends string = "id", > = { swap: UseFieldArraySwap move: UseFieldArrayMove @@ -317,7 +318,7 @@ export type UseFieldArrayProps< ```typescript copy export type UseControllerReturn< TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath + TName extends FieldPath = FieldPath, > = { field: ControllerRenderProps formState: UseFormStateReturn @@ -332,7 +333,7 @@ export type UseControllerReturn< ```typescript copy export type UseControllerProps< TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath + TName extends FieldPath = FieldPath, > = { name: TName rules?: Omit< @@ -433,9 +434,8 @@ export type FieldArrayWithId< TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath = FieldArrayPath, - TKeyName extends string = 'id', + TKeyName extends string = "id", > = FieldArray & Record - ``` --- @@ -509,7 +509,6 @@ export type FormStateProxy = { errors: boolean isValid: boolean } - ``` --- diff --git a/src/data/api.tsx b/src/data/api.tsx index 643b81b59..b7a96da9e 100644 --- a/src/data/api.tsx +++ b/src/data/api.tsx @@ -787,11 +787,7 @@ setValue('test', '') Set to true during validation. ), - validatingFields: ( - <> - Capture fields which are getting async validation. - - ), + validatingFields: <>Capture fields which are getting async validation., disabled: ( <> Set to true if the form is disabled via the{" "} @@ -2205,8 +2201,8 @@ setValue('notRegisteredInput', { test: '1', test2: '2' }); // ✅ sugar syntax t

Update input/inputs at a particular position, updated fields will - get unmounted and remounted. If this is not desired behavior, please - use{" "} + get unmounted and remounted. If this is not desired behavior, + please use{" "} setValue {" "} diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx index 36459d8ef..3a0f228cf 100644 --- a/src/pages/_document.tsx +++ b/src/pages/_document.tsx @@ -13,7 +13,12 @@ export default function Document() { strategy="afterInteractive" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js" /> -