From d9e56896897388c71b90e71a704bb8f7d59bc165 Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Sun, 22 Mar 2026 15:47:36 +0100 Subject: [PATCH 1/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Create=20shared=20Type?= =?UTF-8?q?Script=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/admin.checks.yml | 11 +++----- .github/workflows/admin.deploy.yml | 11 +++----- .github/workflows/show.checks.yml | 11 +++----- .github/workflows/show.deploy.yml | 11 +++----- .github/workflows/website.checks.yml | 11 +++----- .github/workflows/website.deploy.yml | 11 +++----- apps/admin/Dockerfile | 3 +- apps/admin/package.json | 1 - apps/admin/src/types.d.ts | 7 +++-- apps/admin/tsconfig.json | 6 ++-- apps/show/Dockerfile | 3 +- apps/show/package.json | 1 - apps/show/src/global.d.ts | 1 - apps/show/tsconfig.json | 6 ++-- apps/show/tsconfig.server.json | 11 ++++---- apps/website/Dockerfile | 3 +- apps/website/package.json | 1 - apps/website/src/types.d.ts | 7 +++-- apps/website/tsconfig.json | 6 ++-- libs/core/tsconfig.json | 6 ++-- libs/dev-tools/package.json | 6 +++- libs/dev-tools/reset.d.ts | 1 + libs/dev-tools/tsconfig.app.json | 8 ++++++ .../dev-tools/tsconfig.base.json | 4 +-- libs/dev-tools/tsconfig.json | 12 ++++++++ .../dev-tools/tsconfig.lib.json | 0 libs/file-storage/package.json | 1 - libs/file-storage/tsconfig.json | 6 ++-- libs/file-storage/types.d.ts | 1 - libs/files-io/tsconfig.json | 6 ++-- libs/form-data/tsconfig.json | 6 ++-- libs/password/tsconfig.json | 6 ++-- libs/prisma/tsconfig.json | 6 ++-- libs/react-primitives/tsconfig.json | 6 ++-- libs/search-params-io/tsconfig.json | 6 ++-- libs/tailwind-animation/tsconfig.json | 6 ++-- libs/zod-utils/package.json | 1 - libs/zod-utils/src/types.d.ts | 1 - libs/zod-utils/tsconfig.json | 6 ++-- pnpm-lock.yaml | 28 ++++++------------- pnpm-workspace.yaml | 2 +- scripts/package.json | 2 +- scripts/tsconfig.json | 6 ++-- 43 files changed, 139 insertions(+), 116 deletions(-) delete mode 100644 apps/show/src/global.d.ts create mode 100644 libs/dev-tools/reset.d.ts create mode 100644 libs/dev-tools/tsconfig.app.json rename tsconfig.base.json => libs/dev-tools/tsconfig.base.json (84%) create mode 100644 libs/dev-tools/tsconfig.json rename tsconfig.libs.json => libs/dev-tools/tsconfig.lib.json (100%) delete mode 100644 libs/file-storage/types.d.ts delete mode 100644 libs/zod-utils/src/types.d.ts diff --git a/.github/workflows/admin.checks.yml b/.github/workflows/admin.checks.yml index 8b97cfeb..85d788f2 100644 --- a/.github/workflows/admin.checks.yml +++ b/.github/workflows/admin.checks.yml @@ -5,20 +5,17 @@ on: branches: - dev paths: + - apps/admin/** + - libs/** - .dockerignore - - .eslintignore - - .eslintrc.json - .github/workflows/admin.checks.yml - .gitignore - .prettierignore - - .prettierrc.json - - apps/admin/** - - libs/** + - eslint.config.js - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - tsconfig.base.json - - tsconfig.libs.json + - prettier.config.js concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/admin.deploy.yml b/.github/workflows/admin.deploy.yml index cf691f44..12259fb5 100644 --- a/.github/workflows/admin.deploy.yml +++ b/.github/workflows/admin.deploy.yml @@ -7,20 +7,17 @@ on: - main - dev paths: + - apps/admin/** + - libs/** - .dockerignore - - .eslintignore - - .eslintrc.json - .github/workflows/admin.deploy.yml - .gitignore - .prettierignore - - .prettierrc.json - - apps/admin/** - - libs/** + - eslint.config.js - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - tsconfig.base.json - - tsconfig.libs.json + - prettier.config.js concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/show.checks.yml b/.github/workflows/show.checks.yml index a287f5af..b27bc9f6 100644 --- a/.github/workflows/show.checks.yml +++ b/.github/workflows/show.checks.yml @@ -5,20 +5,17 @@ on: branches: - dev paths: + - apps/show/** + - libs/** - .dockerignore - - .eslintignore - - .eslintrc.json - .github/workflows/show.checks.yml - .gitignore - .prettierignore - - .prettierrc.json - - apps/show/** - - libs/** + - eslint.config.js - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - tsconfig.base.json - - tsconfig.libs.json + - prettier.config.js concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/show.deploy.yml b/.github/workflows/show.deploy.yml index 08d60344..c907f970 100644 --- a/.github/workflows/show.deploy.yml +++ b/.github/workflows/show.deploy.yml @@ -7,20 +7,17 @@ on: - main - dev paths: + - apps/show/** + - libs/** - .dockerignore - - .eslintignore - - .eslintrc.json - .github/workflows/show.deploy.yml - .gitignore - .prettierignore - - .prettierrc.json - - apps/show/** - - libs/** + - eslint.config.js - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - tsconfig.base.json - - tsconfig.libs.json + - prettier.config.js concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/website.checks.yml b/.github/workflows/website.checks.yml index bed82c54..da9cbb91 100644 --- a/.github/workflows/website.checks.yml +++ b/.github/workflows/website.checks.yml @@ -5,20 +5,17 @@ on: branches: - dev paths: + - apps/website/** + - libs/** - .dockerignore - - .eslintignore - - .eslintrc.json - .github/workflows/website.checks.yml - .gitignore - .prettierignore - - .prettierrc.json - - apps/website/** - - libs/** + - eslint.config.js - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - tsconfig.base.json - - tsconfig.libs.json + - prettier.config.js concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/website.deploy.yml b/.github/workflows/website.deploy.yml index 679f34e4..0e3bcf1c 100644 --- a/.github/workflows/website.deploy.yml +++ b/.github/workflows/website.deploy.yml @@ -7,20 +7,17 @@ on: - main - dev paths: + - apps/website/** + - libs/** - .dockerignore - - .eslintignore - - .eslintrc.json - .github/workflows/website.deploy.yml - .gitignore - .prettierignore - - .prettierrc.json - - apps/website/** - - libs/** + - eslint.config.js - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - tsconfig.base.json - - tsconfig.libs.json + - prettier.config.js concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/apps/admin/Dockerfile b/apps/admin/Dockerfile index 58e80fc3..192fcb4b 100644 --- a/apps/admin/Dockerfile +++ b/apps/admin/Dockerfile @@ -33,6 +33,7 @@ FROM base AS packages-json COPY package.json ./ COPY libs/core/package.json libs/core/ +COPY libs/dev-tools/package.json libs/dev-tools/ COPY libs/file-storage/package.json libs/file-storage/ COPY libs/form-data/package.json libs/form-data/ COPY libs/password/package.json libs/password/ @@ -52,8 +53,8 @@ COPY --from=packages-json /workspace ./ RUN pnpm install --frozen-lockfile --offline -COPY tsconfig.base.json tsconfig.libs.json ./ COPY libs/core libs/core +COPY libs/dev-tools libs/dev-tools COPY libs/file-storage libs/file-storage COPY libs/form-data libs/form-data COPY libs/password libs/password diff --git a/apps/admin/package.json b/apps/admin/package.json index 0d602e79..0023b1fa 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -91,7 +91,6 @@ "@faker-js/faker": "catalog:", "@remix-run/dev": "catalog:", "@tailwindcss/container-queries": "catalog:", - "@total-typescript/ts-reset": "catalog:", "@types/autosize": "catalog:", "@types/cookie-signature": "catalog:", "@types/d3-dsv": "catalog:", diff --git a/apps/admin/src/types.d.ts b/apps/admin/src/types.d.ts index 748b3a4d..7b93e2ea 100644 --- a/apps/admin/src/types.d.ts +++ b/apps/admin/src/types.d.ts @@ -1,5 +1,3 @@ -import "@total-typescript/ts-reset" - // Add a custom CSS variables here. // https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors declare module "@types/react" { @@ -7,3 +5,8 @@ declare module "@types/react" { "--header-height"?: `${number}px` } } + +// Files containing module augmentation must be modules (as opposed to scripts). +// The difference between modules and scripts is that modules have at least one +// import/export statement. +export {} diff --git a/apps/admin/tsconfig.json b/apps/admin/tsconfig.json index cb791988..17bd46f1 100644 --- a/apps/admin/tsconfig.json +++ b/apps/admin/tsconfig.json @@ -1,11 +1,13 @@ { - "extends": "../../tsconfig.base.json", + "extends": "@animeaux/dev-tools/tsconfig.app", "include": ["./env.d.ts", "./**/*.ts", "./**/*.tsx"], "exclude": ["./node_modules"], "compilerOptions": { "rootDir": "./", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/apps/show/Dockerfile b/apps/show/Dockerfile index aee1b2db..cfa4fc24 100644 --- a/apps/show/Dockerfile +++ b/apps/show/Dockerfile @@ -33,6 +33,7 @@ FROM base AS packages-json COPY package.json ./ COPY libs/core/package.json libs/core/ +COPY libs/dev-tools/package.json libs/dev-tools/ COPY libs/file-storage/package.json libs/file-storage/ COPY libs/files-io/package.json libs/files-io/ COPY libs/prisma/package.json libs/prisma/ @@ -50,8 +51,8 @@ COPY --from=packages-json /workspace ./ RUN pnpm install --frozen-lockfile --offline -COPY tsconfig.base.json tsconfig.libs.json ./ COPY libs/core libs/core +COPY libs/dev-tools libs/dev-tools COPY libs/file-storage libs/file-storage COPY libs/files-io libs/files-io COPY libs/prisma libs/prisma diff --git a/apps/show/package.json b/apps/show/package.json index c2fe2c60..6410b766 100644 --- a/apps/show/package.json +++ b/apps/show/package.json @@ -88,7 +88,6 @@ "devDependencies": { "@animeaux/dev-tools": "workspace:*", "@remix-run/dev": "catalog:", - "@total-typescript/ts-reset": "catalog:", "@types/compression": "catalog:", "@types/express": "catalog:", "@types/lodash.chunk": "catalog:", diff --git a/apps/show/src/global.d.ts b/apps/show/src/global.d.ts deleted file mode 100644 index e547e84a..00000000 --- a/apps/show/src/global.d.ts +++ /dev/null @@ -1 +0,0 @@ -import "@total-typescript/ts-reset" diff --git a/apps/show/tsconfig.json b/apps/show/tsconfig.json index cb791988..17bd46f1 100644 --- a/apps/show/tsconfig.json +++ b/apps/show/tsconfig.json @@ -1,11 +1,13 @@ { - "extends": "../../tsconfig.base.json", + "extends": "@animeaux/dev-tools/tsconfig.app", "include": ["./env.d.ts", "./**/*.ts", "./**/*.tsx"], "exclude": ["./node_modules"], "compilerOptions": { "rootDir": "./", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/apps/show/tsconfig.server.json b/apps/show/tsconfig.server.json index cb5461c3..119bf304 100644 --- a/apps/show/tsconfig.server.json +++ b/apps/show/tsconfig.server.json @@ -1,12 +1,13 @@ { - "extends": "../../tsconfig.base.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", + "files": ["./server.ts"], "exclude": ["./node_modules"], "compilerOptions": { - // Transpiling with TypeScript. - "module": "ESNext", - "moduleResolution": "node", - "noEmit": false + "rootDir": "./", + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/apps/website/Dockerfile b/apps/website/Dockerfile index 8fa4e799..649a3b60 100644 --- a/apps/website/Dockerfile +++ b/apps/website/Dockerfile @@ -33,6 +33,7 @@ FROM base AS packages-json COPY package.json ./ COPY libs/core/package.json libs/core/ +COPY libs/dev-tools/package.json libs/dev-tools/ COPY libs/prisma/package.json libs/prisma/ COPY libs/search-params-io/package.json libs/search-params-io/ COPY libs/zod-utils/package.json libs/zod-utils/ @@ -47,8 +48,8 @@ COPY --from=packages-json /workspace ./ RUN pnpm install --frozen-lockfile --offline -COPY tsconfig.base.json tsconfig.libs.json ./ COPY libs/core libs/core +COPY libs/dev-tools libs/dev-tools COPY libs/prisma libs/prisma COPY libs/search-params-io libs/search-params-io COPY libs/zod-utils libs/zod-utils diff --git a/apps/website/package.json b/apps/website/package.json index 38bba5bc..22224f47 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -57,7 +57,6 @@ "devDependencies": { "@animeaux/dev-tools": "workspace:*", "@remix-run/dev": "catalog:", - "@total-typescript/ts-reset": "catalog:", "@types/body-scroll-lock": "catalog:", "@types/lodash.orderby": "catalog:", "@types/luxon": "catalog:", diff --git a/apps/website/src/types.d.ts b/apps/website/src/types.d.ts index 748b3a4d..7b93e2ea 100644 --- a/apps/website/src/types.d.ts +++ b/apps/website/src/types.d.ts @@ -1,5 +1,3 @@ -import "@total-typescript/ts-reset" - // Add a custom CSS variables here. // https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors declare module "@types/react" { @@ -7,3 +5,8 @@ declare module "@types/react" { "--header-height"?: `${number}px` } } + +// Files containing module augmentation must be modules (as opposed to scripts). +// The difference between modules and scripts is that modules have at least one +// import/export statement. +export {} diff --git a/apps/website/tsconfig.json b/apps/website/tsconfig.json index cb791988..17bd46f1 100644 --- a/apps/website/tsconfig.json +++ b/apps/website/tsconfig.json @@ -1,11 +1,13 @@ { - "extends": "../../tsconfig.base.json", + "extends": "@animeaux/dev-tools/tsconfig.app", "include": ["./env.d.ts", "./**/*.ts", "./**/*.tsx"], "exclude": ["./node_modules"], "compilerOptions": { "rootDir": "./", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/core/tsconfig.json b/libs/core/tsconfig.json index 9d0e2543..b8b2bd01 100644 --- a/libs/core/tsconfig.json +++ b/libs/core/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["node", "@animeaux/dev-tools/reset"] } } diff --git a/libs/dev-tools/package.json b/libs/dev-tools/package.json index 49b4ffc2..df11768e 100644 --- a/libs/dev-tools/package.json +++ b/libs/dev-tools/package.json @@ -6,7 +6,10 @@ "type": "module", "exports": { "./eslint": "./eslint.config.js", - "./prettier": "./prettier.config.js" + "./prettier": "./prettier.config.js", + "./reset": "./reset.d.ts", + "./tsconfig.app": "./tsconfig.app.json", + "./tsconfig.lib": "./tsconfig.lib.json" }, "scripts": { "lint": "run-p --continue-on-error --print-label lint:*", @@ -20,6 +23,7 @@ "prettier-plugin-tailwindcss": "catalog:" }, "dependencies": { + "@total-typescript/ts-reset": "catalog:", "eslint": "catalog:", "eslint-plugin-import-x": "catalog:", "eslint-plugin-jsx-a11y": "catalog:", diff --git a/libs/dev-tools/reset.d.ts b/libs/dev-tools/reset.d.ts new file mode 100644 index 00000000..19091891 --- /dev/null +++ b/libs/dev-tools/reset.d.ts @@ -0,0 +1 @@ +import "@total-typescript/ts-reset/dom" diff --git a/libs/dev-tools/tsconfig.app.json b/libs/dev-tools/tsconfig.app.json new file mode 100644 index 00000000..0dab49ce --- /dev/null +++ b/libs/dev-tools/tsconfig.app.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + // We are not transpiling with TypeScript. + "noEmit": true + } +} diff --git a/tsconfig.base.json b/libs/dev-tools/tsconfig.base.json similarity index 84% rename from tsconfig.base.json rename to libs/dev-tools/tsconfig.base.json index d360fdcf..80376a3a 100644 --- a/tsconfig.base.json +++ b/libs/dev-tools/tsconfig.base.json @@ -11,12 +11,10 @@ "target": "ES2022", "verbatimModuleSyntax": true, - // Not transpiling with TypeScript. "module": "ESNext", "moduleResolution": "Bundler", - "noEmit": true, - // Options for a more strict type checking. + // Strictness. "forceConsistentCasingInFileNames": true, "noImplicitOverride": true, "noUncheckedIndexedAccess": true, diff --git a/libs/dev-tools/tsconfig.json b/libs/dev-tools/tsconfig.json new file mode 100644 index 00000000..82121f30 --- /dev/null +++ b/libs/dev-tools/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": ["./tsconfig.lib.json"], + + "include": ["./**/*.ts"], + "exclude": ["./node_modules"], + + "compilerOptions": { + "rootDir": "./", + + "types": ["./reset.d.ts"] + } +} diff --git a/tsconfig.libs.json b/libs/dev-tools/tsconfig.lib.json similarity index 100% rename from tsconfig.libs.json rename to libs/dev-tools/tsconfig.lib.json diff --git a/libs/file-storage/package.json b/libs/file-storage/package.json index f30f9fce..7fe2d45c 100644 --- a/libs/file-storage/package.json +++ b/libs/file-storage/package.json @@ -50,7 +50,6 @@ }, "devDependencies": { "@animeaux/dev-tools": "workspace:*", - "@total-typescript/ts-reset": "catalog:", "@types/node": "catalog:", "@types/uuid": "catalog:", "eslint": "catalog:", diff --git a/libs/file-storage/tsconfig.json b/libs/file-storage/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/file-storage/tsconfig.json +++ b/libs/file-storage/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/file-storage/types.d.ts b/libs/file-storage/types.d.ts deleted file mode 100644 index e547e84a..00000000 --- a/libs/file-storage/types.d.ts +++ /dev/null @@ -1 +0,0 @@ -import "@total-typescript/ts-reset" diff --git a/libs/files-io/tsconfig.json b/libs/files-io/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/files-io/tsconfig.json +++ b/libs/files-io/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/form-data/tsconfig.json b/libs/form-data/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/form-data/tsconfig.json +++ b/libs/form-data/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/password/tsconfig.json b/libs/password/tsconfig.json index 9d0e2543..b8b2bd01 100644 --- a/libs/password/tsconfig.json +++ b/libs/password/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["node", "@animeaux/dev-tools/reset"] } } diff --git a/libs/prisma/tsconfig.json b/libs/prisma/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/prisma/tsconfig.json +++ b/libs/prisma/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/react-primitives/tsconfig.json b/libs/react-primitives/tsconfig.json index 35bd8687..c1598883 100644 --- a/libs/react-primitives/tsconfig.json +++ b/libs/react-primitives/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts", "./**/*.tsx"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/search-params-io/tsconfig.json b/libs/search-params-io/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/search-params-io/tsconfig.json +++ b/libs/search-params-io/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/tailwind-animation/tsconfig.json b/libs/tailwind-animation/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/tailwind-animation/tsconfig.json +++ b/libs/tailwind-animation/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/libs/zod-utils/package.json b/libs/zod-utils/package.json index 188461c6..e8664f79 100644 --- a/libs/zod-utils/package.json +++ b/libs/zod-utils/package.json @@ -45,7 +45,6 @@ }, "devDependencies": { "@animeaux/dev-tools": "workspace:*", - "@total-typescript/ts-reset": "catalog:", "@types/luxon": "catalog:", "eslint": "catalog:", "npm-run-all": "catalog:", diff --git a/libs/zod-utils/src/types.d.ts b/libs/zod-utils/src/types.d.ts deleted file mode 100644 index e547e84a..00000000 --- a/libs/zod-utils/src/types.d.ts +++ /dev/null @@ -1 +0,0 @@ -import "@total-typescript/ts-reset" diff --git a/libs/zod-utils/tsconfig.json b/libs/zod-utils/tsconfig.json index 9d0e2543..2036e51d 100644 --- a/libs/zod-utils/tsconfig.json +++ b/libs/zod-utils/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.libs.json", + "extends": "@animeaux/dev-tools/tsconfig.lib", "include": ["./**/*.ts"], "exclude": ["./node_modules", "./build"], @@ -7,6 +7,8 @@ "compilerOptions": { "rootDir": "./", "outDir": "./build", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c82b76f..1ee671bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,8 +95,8 @@ catalogs: specifier: ^0.1.1 version: 0.1.1 '@total-typescript/ts-reset': - specifier: ^0.5.1 - version: 0.5.1 + specifier: ^0.6.1 + version: 0.6.1 '@types/autosize': specifier: ^4.0.1 version: 4.0.3 @@ -613,9 +613,6 @@ importers: '@tailwindcss/container-queries': specifier: 'catalog:' version: 0.1.1(tailwindcss@3.4.3) - '@total-typescript/ts-reset': - specifier: 'catalog:' - version: 0.5.1 '@types/autosize': specifier: 'catalog:' version: 4.0.3 @@ -860,9 +857,6 @@ importers: '@remix-run/dev': specifier: 'catalog:' version: 2.9.2(@remix-run/react@2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5))(@remix-run/serve@2.9.2(typescript@5.4.5))(@types/node@22.8.7)(typescript@5.4.5)(vite@5.2.12(@types/node@22.8.7)) - '@total-typescript/ts-reset': - specifier: 'catalog:' - version: 0.5.1 '@types/compression': specifier: 'catalog:' version: 1.7.5 @@ -1014,9 +1008,6 @@ importers: '@remix-run/dev': specifier: 'catalog:' version: 2.9.2(@remix-run/react@2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5))(@remix-run/serve@2.9.2(typescript@5.4.5))(@types/node@22.8.7)(typescript@5.4.5)(vite@5.2.12(@types/node@22.8.7)) - '@total-typescript/ts-reset': - specifier: 'catalog:' - version: 0.5.1 '@types/body-scroll-lock': specifier: 'catalog:' version: 3.1.2 @@ -1135,6 +1126,9 @@ importers: libs/dev-tools: dependencies: + '@total-typescript/ts-reset': + specifier: 'catalog:' + version: 0.6.1 eslint: specifier: 'catalog:' version: 9.39.3(jiti@2.6.1) @@ -1225,9 +1219,6 @@ importers: '@animeaux/dev-tools': specifier: workspace:* version: link:../dev-tools - '@total-typescript/ts-reset': - specifier: 'catalog:' - version: 0.5.1 '@types/node': specifier: 'catalog:' version: 22.8.7 @@ -1545,9 +1536,6 @@ importers: '@animeaux/dev-tools': specifier: workspace:* version: link:../dev-tools - '@total-typescript/ts-reset': - specifier: 'catalog:' - version: 0.5.1 '@types/luxon': specifier: 'catalog:' version: 3.4.2 @@ -3439,8 +3427,8 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@total-typescript/ts-reset@0.5.1': - resolution: {integrity: sha512-AqlrT8YA1o7Ff5wPfMOL0pvL+1X+sw60NN6CcOCqs658emD6RfiXhF7Gu9QcfKBH7ELY2nInLhKSCWVoNL70MQ==} + '@total-typescript/ts-reset@0.6.1': + resolution: {integrity: sha512-cka47fVSo6lfQDIATYqb/vO1nvFfbPw7uWLayIXIhGETj0wcOOlrlkobOMDNQOFr9QOafegUPq13V2+6vtD7yg==} '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -10506,7 +10494,7 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@total-typescript/ts-reset@0.5.1': {} + '@total-typescript/ts-reset@0.6.1': {} '@tybys/wasm-util@0.10.1': dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8d985eee..4235630a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -47,7 +47,7 @@ catalog: "@remix-run/serve": ~2.9.2 "@sentry/remix": ^8.37.1 "@tailwindcss/container-queries": ^0.1.1 - "@total-typescript/ts-reset": ^0.5.1 + "@total-typescript/ts-reset": ^0.6.1 "@types/autosize": ^4.0.1 "@types/body-scroll-lock": ^3.1.0 "@types/compression": ^1.7.0 diff --git a/scripts/package.json b/scripts/package.json index 02e3213f..66cf675d 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -13,7 +13,7 @@ "lint": "run-p --continue-on-error --print-label lint:*", "lint:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --max-warnings 0 .", "lint:prettier": "prettier --list-different .", - "lint:tsx": "tsc --noEmit", + "lint:tsc": "tsc --noEmit", "lint-fix": "run-s --print-label lint-fix:eslint lint-fix:prettier", "lint-fix:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --fix .", "lint-fix:prettier": "prettier --write ." diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json index c3f04648..43ec1257 100644 --- a/scripts/tsconfig.json +++ b/scripts/tsconfig.json @@ -1,11 +1,13 @@ { - "extends": "../tsconfig.base.json", + "extends": "@animeaux/dev-tools/tsconfig.app", "include": ["./**/*.ts"], "exclude": ["./node_modules"], "compilerOptions": { "rootDir": "./", - "paths": { "#i/*": ["./src/*"] } + "paths": { "#i/*": ["./src/*"] }, + + "types": ["@animeaux/dev-tools/reset"] } } From 8e7ef27e7be1ece8522980df1b51f0ce32becc70 Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Sun, 22 Mar 2026 22:06:07 +0100 Subject: [PATCH 2/8] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Simplify=20scripts=20p?= =?UTF-8?q?ackage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/package.json | 8 ++------ scripts/src/{ => core}/env.ts | 0 scripts/{bin => src}/generate-image-placeholder.ts | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) rename scripts/src/{ => core}/env.ts (100%) rename scripts/{bin => src}/generate-image-placeholder.ts (94%) mode change 100755 => 100644 diff --git a/scripts/package.json b/scripts/package.json index 66cf675d..bbba42e1 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -2,14 +2,10 @@ "name": "@animeaux/scripts", "version": "1.0.0", "private": true, + "sideEffects": false, "type": "module", - "bin": { - "generate-image-placeholder": "./bin/generate-image-placeholder.ts" - }, - "imports": { - "#*": "./src/*" - }, "scripts": { + "generate-image-placeholder": "tsx ./src/generate-image-placeholder.ts", "lint": "run-p --continue-on-error --print-label lint:*", "lint:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --max-warnings 0 .", "lint:prettier": "prettier --list-different .", diff --git a/scripts/src/env.ts b/scripts/src/core/env.ts similarity index 100% rename from scripts/src/env.ts rename to scripts/src/core/env.ts diff --git a/scripts/bin/generate-image-placeholder.ts b/scripts/src/generate-image-placeholder.ts old mode 100755 new mode 100644 similarity index 94% rename from scripts/bin/generate-image-placeholder.ts rename to scripts/src/generate-image-placeholder.ts index 5a9bedaa..9d74e663 --- a/scripts/bin/generate-image-placeholder.ts +++ b/scripts/src/generate-image-placeholder.ts @@ -1,6 +1,4 @@ -#!/usr/bin/env tsx - -import "#i/env.js" +import "#i/core/env.js" import { ImageUrl } from "@animeaux/core" import { getPixels } from "@unpic/pixels" From 8dc4fc8ce1f6493a3276cfce7a6ba412703201ac Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Sun, 22 Mar 2026 22:19:08 +0100 Subject: [PATCH 3/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Force=20file=20extensi?= =?UTF-8?q?on=20in=20import=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/scripts/generate-icon-sprite.ts | 2 +- apps/admin/scripts/generate-theme.ts | 4 +- apps/admin/src/activity/db.server.ts | 8 +- apps/admin/src/activity/filter-form.tsx | 24 ++--- apps/admin/src/activity/search-params.ts | 4 +- apps/admin/src/animals/adoption.tsx | 2 +- apps/admin/src/animals/age.tsx | 2 +- apps/admin/src/animals/agreements.tsx | 4 +- apps/admin/src/animals/avatar.tsx | 8 +- apps/admin/src/animals/creation-steps.tsx | 4 +- apps/admin/src/animals/db.server.ts | 24 ++--- apps/admin/src/animals/filter-form.tsx | 40 ++++---- apps/admin/src/animals/gender.tsx | 2 +- apps/admin/src/animals/item.tsx | 28 +++--- apps/admin/src/animals/pick-up.ts | 2 +- apps/admin/src/animals/pictures/db.server.ts | 8 +- .../src/animals/pictures/drag-and-drop.tsx | 6 +- apps/admin/src/animals/pictures/form.tsx | 18 ++-- apps/admin/src/animals/profile/db.server.ts | 6 +- apps/admin/src/animals/profile/form.tsx | 31 +++--- apps/admin/src/animals/screening.ts | 2 +- apps/admin/src/animals/search-params.ts | 2 +- apps/admin/src/animals/situation/db.server.ts | 8 +- apps/admin/src/animals/situation/form.tsx | 39 ++++---- apps/admin/src/animals/situation/health.ts | 2 +- apps/admin/src/animals/species.tsx | 4 +- apps/admin/src/animals/status.tsx | 6 +- apps/admin/src/breeds/db.server.ts | 10 +- apps/admin/src/breeds/filter-form.tsx | 16 +-- apps/admin/src/breeds/form.tsx | 17 ++-- apps/admin/src/colors/db.server.ts | 10 +- apps/admin/src/colors/filter-form.tsx | 14 +-- apps/admin/src/colors/form.tsx | 10 +- apps/admin/src/core/actions.tsx | 4 +- apps/admin/src/core/base-link.tsx | 4 +- apps/admin/src/core/controllers/filters.tsx | 6 +- apps/admin/src/core/controllers/paginator.tsx | 6 +- .../sort-and-filters-floating-action.tsx | 6 +- apps/admin/src/core/controllers/steps.tsx | 6 +- apps/admin/src/core/crons/crons.server.ts | 2 +- apps/admin/src/core/data-display/chip.tsx | 4 +- .../src/core/data-display/error-page.tsx | 8 +- apps/admin/src/core/data-display/errors.tsx | 4 +- .../admin/src/core/data-display/file-item.tsx | 4 +- apps/admin/src/core/data-display/helper.tsx | 8 +- .../src/core/data-display/icon-inline.tsx | 2 +- apps/admin/src/core/data-display/image.tsx | 8 +- .../src/core/data-display/instance-color.tsx | 4 +- apps/admin/src/core/data-display/markdown.tsx | 4 +- apps/admin/src/core/db.server.ts | 18 ++-- apps/admin/src/core/drag-and-drop.tsx | 4 +- .../core/form-elements/base-text-input.tsx | 2 +- .../admin/src/core/form-elements/checkbox.tsx | 2 +- .../core/form-elements/controlled-input.tsx | 6 +- .../core/form-elements/field-checkboxes.tsx | 11 ++- .../src/core/form-elements/field-date.tsx | 8 +- .../src/core/form-elements/field-decimal.tsx | 8 +- .../core/form-elements/field-error-helper.tsx | 2 +- .../src/core/form-elements/field-list.tsx | 10 +- .../src/core/form-elements/field-numeric.tsx | 8 +- .../src/core/form-elements/field-on-off.tsx | 11 ++- .../src/core/form-elements/field-radios.tsx | 11 ++- .../src/core/form-elements/field-switch.tsx | 8 +- .../src/core/form-elements/field-text.tsx | 8 +- .../src/core/form-elements/field-textarea.tsx | 8 +- .../src/core/form-elements/field-url.tsx | 8 +- apps/admin/src/core/form-elements/form.tsx | 2 +- .../src/core/form-elements/image-input.tsx | 12 +-- .../src/core/form-elements/input-choice.tsx | 6 +- apps/admin/src/core/form-elements/input.tsx | 4 +- .../src/core/form-elements/password-input.tsx | 4 +- .../src/core/form-elements/resource-input.tsx | 17 ++-- .../admin/src/core/form-elements/textarea.tsx | 4 +- .../src/core/form-elements/toggle-input.tsx | 4 +- apps/admin/src/core/is-defined.server.ts | 2 +- apps/admin/src/core/layout/auth-page.tsx | 2 +- apps/admin/src/core/layout/avatar-card.tsx | 6 +- apps/admin/src/core/layout/page.tsx | 2 +- apps/admin/src/core/layout/side-bar.tsx | 6 +- apps/admin/src/core/layout/tab-bar.tsx | 10 +- apps/admin/src/core/navigation.ts | 4 +- apps/admin/src/core/popovers/dialog.tsx | 10 +- .../src/core/popovers/dropdown-sheet.tsx | 4 +- apps/admin/src/core/screen-size.tsx | 4 +- apps/admin/src/current-user/db.server.ts | 17 ++-- apps/admin/src/current-user/groups.server.ts | 4 +- apps/admin/src/entry.client.tsx | 4 +- apps/admin/src/entry.server.tsx | 12 +-- apps/admin/src/events/avatar.tsx | 2 +- apps/admin/src/events/db.server.ts | 6 +- apps/admin/src/events/form.tsx | 24 ++--- .../src/foster-families/availability.tsx | 2 +- apps/admin/src/foster-families/avatar.tsx | 6 +- .../admin/src/foster-families/crons.server.ts | 4 +- apps/admin/src/foster-families/db.server.ts | 8 +- .../admin/src/foster-families/filter-form.tsx | 22 ++--- apps/admin/src/foster-families/form.tsx | 24 ++--- apps/admin/src/foster-families/housing.tsx | 2 +- apps/admin/src/foster-families/item.tsx | 4 +- .../src/mocks/cloudinary/cloudinary.client.ts | 2 +- apps/admin/src/mocks/mocks.client.ts | 2 +- apps/admin/src/mocks/mocks.server.ts | 2 +- apps/admin/src/press-articles/db.server.ts | 4 +- apps/admin/src/press-articles/form.tsx | 18 ++-- apps/admin/src/root.tsx | 8 +- apps/admin/src/routes/[manifest.json].tsx | 6 +- apps/admin/src/routes/_index.tsx | 4 +- apps/admin/src/routes/_layout.$.tsx | 8 +- .../_layout.activity.$id/card-details.tsx | 2 +- .../routes/_layout.activity.$id/card-diff.tsx | 2 +- .../routes/_layout.activity.$id/header.tsx | 2 +- .../_layout.activity.$id/loader.server.ts | 2 +- .../src/routes/_layout.activity.$id/route.tsx | 10 +- .../_layout.activity._index/card-list.tsx | 8 +- .../routes/_layout.activity._index/item.tsx | 2 +- .../_layout.activity._index/loader.server.ts | 6 +- .../routes/_layout.activity._index/route.tsx | 14 +-- apps/admin/src/routes/_layout.animals.$.tsx | 8 +- .../_layout.animals.$id._index/route.tsx | 64 ++++++------ .../situation-card.tsx | 41 ++++---- .../_layout.animals.$id.edit.pictures.tsx | 28 +++--- .../_layout.animals.$id.edit.profile.tsx | 28 +++--- .../_layout.animals.$id.edit.situation.tsx | 31 +++--- .../src/routes/_layout.animals._index.tsx | 36 +++---- .../routes/_layout.animals.new.pictures.tsx | 20 ++-- .../routes/_layout.animals.new.profile.tsx | 20 ++-- .../routes/_layout.animals.new.situation.tsx | 23 +++-- .../src/routes/_layout.breeds.$id.edit.tsx | 24 ++--- .../src/routes/_layout.breeds._index.tsx | 40 ++++---- apps/admin/src/routes/_layout.breeds.new.tsx | 18 ++-- .../src/routes/_layout.colors.$id.edit.tsx | 24 ++--- .../src/routes/_layout.colors._index.tsx | 38 +++---- apps/admin/src/routes/_layout.colors.new.tsx | 18 ++-- .../_layout.dashboard/card-active-animals.tsx | 18 ++-- .../card-animals-to-sterilize.tsx | 18 ++-- .../card-animals-to-vaccinate.tsx | 18 ++-- .../card-dogs-to-diagnose.tsx | 18 ++-- .../card-managed-animals.tsx | 18 ++-- .../card-stand-size-booking.tsx | 2 +- .../card-untreated-applications.tsx | 2 +- .../_layout.dashboard/loader.animal.server.ts | 8 +- .../routes/_layout.dashboard/loader.server.ts | 10 +- .../_layout.dashboard/loader.show.server.ts | 2 +- .../src/routes/_layout.dashboard/route.tsx | 24 ++--- .../src/routes/_layout.events.$id._index.tsx | 40 ++++---- .../src/routes/_layout.events.$id.edit.tsx | 28 +++--- .../src/routes/_layout.events._index.tsx | 30 +++--- apps/admin/src/routes/_layout.events.new.tsx | 20 ++-- .../contact-card.tsx | 16 +-- .../route.tsx | 50 +++++----- .../situation-card.tsx | 25 ++--- .../action.server.ts | 16 +-- .../card-form.tsx | 6 +- .../loader.server.ts | 12 +-- .../route.tsx | 6 +- .../routes/_layout.foster-families._index.tsx | 38 +++---- .../action.server.ts | 14 +-- .../_layout.foster-families.new/card-form.tsx | 6 +- .../loader.server.ts | 4 +- .../_layout.foster-families.new/route.tsx | 6 +- .../src/routes/_layout.foster-families.tsx | 2 +- apps/admin/src/routes/_layout.me._index.tsx | 36 +++---- .../src/routes/_layout.me.change-password.tsx | 18 ++-- .../src/routes/_layout.me.edit-profile.tsx | 20 ++-- .../routes/_layout.press-articles._index.tsx | 32 +++--- .../src/routes/_layout.press-articles.add.tsx | 18 ++-- .../admin/src/routes/_layout.show.$/route.tsx | 8 +- .../src/routes/_layout.show._index/route.tsx | 6 +- .../card-activity-description.tsx | 6 +- .../card-comments.tsx | 6 +- .../card-contact.tsx | 8 +- .../card-discovery-source.tsx | 10 +- .../card-motivation.tsx | 6 +- .../card-participation.tsx | 8 +- .../card-situation-refusal-message.tsx | 6 +- .../card-situation.tsx | 16 +-- .../card-sponsorship.tsx | 8 +- .../card-structure.tsx | 18 ++-- .../header.tsx | 6 +- .../loader.server.ts | 8 +- .../route.tsx | 34 +++---- .../route.tsx | 37 +++---- .../card-list.tsx | 16 +-- .../_layout.show.applications._index/item.tsx | 18 ++-- .../route.tsx | 20 ++-- .../card-details.tsx | 2 +- .../card-exhibitor-list.tsx | 8 +- .../card-situation.tsx | 2 +- .../exhibitor-item.tsx | 2 +- .../loader.server.ts | 6 +- .../route.tsx | 16 +-- .../card-list.tsx | 8 +- .../item.tsx | 2 +- .../route.tsx | 4 +- .../action.server.ts | 4 +- .../card-billing.tsx | 8 +- .../card-contact.tsx | 8 +- .../card-description.tsx | 12 +-- .../card-documents.tsx | 20 ++-- .../card-dogs-configuration.tsx | 4 +- .../card-on-stage-animations.tsx | 6 +- .../card-on-stand-animations.tsx | 18 ++-- .../card-perks.tsx | 14 +-- .../card-price.tsx | 4 +- .../card-profile.tsx | 26 ++--- .../card-situation.tsx | 20 ++-- .../card-stand-configuration.tsx | 22 ++--- .../card-structure.tsx | 18 ++-- .../loader.server.ts | 6 +- .../route.tsx | 44 ++++----- .../action.ts | 2 +- .../fieldset-description.tsx | 8 +- .../fieldset-status.tsx | 12 +-- .../form.ts | 6 +- .../route.tsx | 24 ++--- .../action.ts | 2 +- .../fieldset-documents.tsx | 10 +- .../fieldset-status.tsx | 12 +-- .../form.ts | 6 +- .../route.tsx | 24 ++--- .../action.ts | 2 +- .../fieldset-status.tsx | 12 +-- .../form.ts | 6 +- .../route.tsx | 6 +- .../action.ts | 2 +- .../fieldset-on-stand-animation.tsx | 10 +- .../fieldset-status.tsx | 12 +-- .../form.ts | 6 +- .../route.tsx | 24 ++--- .../action-schema.ts | 2 +- .../action.server.ts | 6 +- .../fieldset-perks.tsx | 6 +- .../fieldset-price-details.tsx | 2 +- .../fieldset-status.tsx | 12 +-- .../form.ts | 2 +- .../loader.server.ts | 4 +- .../route.tsx | 18 ++-- .../action.ts | 6 +- .../fieldset-profile.tsx | 22 ++--- .../fieldset-status.tsx | 12 +-- .../form.ts | 6 +- .../route.tsx | 24 ++--- .../action-schema.ts | 2 +- .../action.server.ts | 10 +- .../fieldset-situation.tsx | 16 +-- .../form.ts | 10 +- .../loader.server.ts | 6 +- .../route.tsx | 18 ++-- .../action.server.ts | 6 +- .../action.ts | 6 +- .../fieldset-configuration.tsx | 16 +-- .../fieldset-price-details.tsx | 2 +- .../fieldset-status.tsx | 12 +-- .../form.ts | 4 +- .../loader.server.ts | 4 +- .../route.tsx | 18 ++-- .../fieldset-structure.tsx | 8 +- .../form.ts | 6 +- .../route.tsx | 22 ++--- .../action.server.ts | 4 +- .../form.ts | 4 +- .../loader.server.ts | 2 +- .../route.tsx | 8 +- .../action.server.ts | 4 +- .../form.ts | 6 +- .../loader.server.ts | 2 +- .../route.tsx | 8 +- .../card-list.tsx | 16 +-- .../loader.server.ts | 8 +- .../_layout.show.exhibitors._index/route.tsx | 12 +-- .../_layout.show.exhibitors._index/rows.tsx | 10 +- .../card-profile.tsx | 12 +-- .../card-situation.tsx | 18 ++-- .../route.tsx | 18 ++-- .../card-list.tsx | 16 +-- .../_layout.show.sponsors._index/item.tsx | 12 +-- .../_layout.show.sponsors._index/route.tsx | 24 ++--- .../action.server.ts | 2 +- .../application-item.tsx | 2 +- .../card-application-list.tsx | 8 +- .../card-details.tsx | 2 +- .../card-exhibitor-list.tsx | 8 +- .../card-prices.tsx | 2 +- .../card-situation.tsx | 2 +- .../exhibitor-item.tsx | 2 +- .../loader.server.ts | 6 +- .../route.tsx | 24 ++--- .../action.server.ts | 4 +- .../_layout.show.stand-sizes.$id.edit/form.ts | 4 +- .../loader.server.ts | 6 +- .../card-list.tsx | 8 +- .../_layout.show.stand-sizes._index/item.tsx | 2 +- .../_layout.show.stand-sizes._index/route.tsx | 4 +- .../action.server.ts | 2 +- .../_layout.show.stand-sizes.new/form.ts | 4 +- .../loader.server.ts | 4 +- apps/admin/src/routes/_layout.show/route.tsx | 8 +- apps/admin/src/routes/_layout.tsx | 36 +++---- .../src/routes/_layout.users.$id._index.tsx | 56 +++++------ .../src/routes/_layout.users.$id.edit.tsx | 28 +++--- .../admin/src/routes/_layout.users._index.tsx | 40 ++++---- apps/admin/src/routes/_layout.users.new.tsx | 20 ++-- .../animals.$id.pictures.$pictureId.tsx | 32 +++--- .../routes/animals.$id.pictures._index.tsx | 12 +-- apps/admin/src/routes/define-password.tsx | 24 ++--- apps/admin/src/routes/downloads.animals.tsx | 31 +++--- .../src/routes/downloads.picture.$id/link.tsx | 2 +- .../routes/downloads.picture.$id/route.tsx | 8 +- .../downloads.show.applications/trigger.tsx | 2 +- .../downloads.show.exhibitors/trigger.tsx | 2 +- apps/admin/src/routes/healthcheck.tsx | 2 +- apps/admin/src/routes/login.tsx | 26 ++--- apps/admin/src/routes/logout.tsx | 4 +- .../src/routes/resources.breed/input.tsx | 16 +-- .../src/routes/resources.breed/route.tsx | 6 +- .../src/routes/resources.color/input.tsx | 14 +-- .../src/routes/resources.color/route.tsx | 6 +- .../routes/resources.foster-family/input.tsx | 18 ++-- .../routes/resources.foster-family/route.tsx | 6 +- .../routes/resources.global-search/input.tsx | 32 +++--- .../routes/resources.global-search/route.tsx | 10 +- .../resources.global-search/search-params.ts | 2 +- .../src/routes/resources.manager/input.tsx | 16 +-- .../src/routes/resources.manager/route.tsx | 6 +- .../resources.pick-up-location/input.tsx | 16 +-- .../resources.pick-up-location/route.tsx | 8 +- .../routes/resources.preferences/fetcher.tsx | 6 +- .../routes/resources.preferences/route.tsx | 8 +- .../src/routes/resources.scrap-url/hook.tsx | 6 +- .../src/routes/resources.scrap-url/route.tsx | 10 +- apps/admin/src/show/db.server.ts | 10 +- apps/admin/src/show/divider-type/db.server.ts | 2 +- .../show/exhibitors/activity-field/icon.tsx | 6 +- .../show/exhibitors/activity-target/icon.tsx | 6 +- .../show/exhibitors/applications/db.server.ts | 14 +-- .../exhibitors/applications/filter-form.tsx | 28 +++--- .../exhibitors/applications/search-params.ts | 2 +- .../show/exhibitors/applications/status.tsx | 4 +- apps/admin/src/show/exhibitors/category.ts | 4 +- apps/admin/src/show/exhibitors/db.server.ts | 20 ++-- .../admin/src/show/exhibitors/filter-form.tsx | 32 +++--- .../src/show/exhibitors/search-params.ts | 8 +- .../admin/src/show/exhibitors/status-icon.tsx | 6 +- apps/admin/src/show/invoice/db.server.ts | 8 +- .../src/show/invoice/fieldset-invoice.tsx | 10 +- apps/admin/src/show/invoice/icon.tsx | 2 +- apps/admin/src/show/sponsors/category.tsx | 4 +- apps/admin/src/show/sponsors/db.server.ts | 8 +- apps/admin/src/show/sponsors/filter-form.tsx | 18 ++-- apps/admin/src/show/sponsors/search-params.ts | 4 +- apps/admin/src/show/stand-size/db.server.ts | 2 +- .../src/show/stand-size/fieldset-details.tsx | 4 +- .../stand-size/fieldset-identification.tsx | 4 +- .../src/show/stand-size/fieldset-prices.tsx | 4 +- .../show/stand-size/fieldset-situation.tsx | 4 +- apps/admin/src/show/visibility.tsx | 4 +- apps/admin/src/users/avatar.tsx | 4 +- apps/admin/src/users/db.server.ts | 10 +- apps/admin/src/users/filter-form.tsx | 24 +++-- apps/admin/src/users/form.tsx | 18 ++-- apps/admin/src/users/groups.tsx | 2 +- apps/admin/src/users/search-params.ts | 2 +- apps/admin/tailwind.config.ts | 8 +- apps/show/scripts/generate-icon-sprite.ts | 2 +- .../show/scripts/generate-pictogram-sprite.ts | 2 +- apps/show/scripts/generate-theme.ts | 4 +- apps/show/src/animations/service.server.ts | 2 +- apps/show/src/core/actions/action.tsx | 2 +- .../core/data-display/email-html.server.tsx | 8 +- .../show/src/core/data-display/error-page.tsx | 10 +- apps/show/src/core/data-display/file-item.tsx | 4 +- .../src/core/data-display/icon-inline.tsx | 2 +- apps/show/src/core/data-display/image.tsx | 4 +- apps/show/src/core/data-display/markdown.tsx | 2 +- apps/show/src/core/data-display/task-item.tsx | 2 +- .../src/core/form-elements/field-email.tsx | 4 +- .../core/form-elements/field-error-helper.tsx | 2 +- .../src/core/form-elements/field-file.tsx | 6 +- .../src/core/form-elements/field-numeric.tsx | 4 +- .../src/core/form-elements/field-phone.tsx | 4 +- .../src/core/form-elements/field-stepper.tsx | 6 +- .../src/core/form-elements/field-switch.tsx | 4 +- .../src/core/form-elements/field-text.tsx | 4 +- .../src/core/form-elements/field-textarea.tsx | 4 +- .../show/src/core/form-elements/field-url.tsx | 4 +- .../src/core/form-elements/field-yes-no.tsx | 4 +- .../form-elements/input-active-filter.tsx | 2 +- .../core/form-elements/input-file-image.tsx | 4 +- .../src/core/form-elements/input-file.tsx | 2 +- .../src/core/form-elements/input-stepper.tsx | 6 +- .../src/core/image/blurhash.service.server.ts | 2 +- .../core/image/service.cloudinary.server.ts | 2 +- apps/show/src/core/layout/board-card.tsx | 8 +- apps/show/src/core/layout/footer.tsx | 16 +-- apps/show/src/core/layout/form-layout.tsx | 10 +- apps/show/src/core/layout/header.tsx | 8 +- apps/show/src/core/layout/helper-card.tsx | 2 +- .../show/src/core/layout/light-board-card.tsx | 8 +- apps/show/src/core/navigation.tsx | 4 +- apps/show/src/core/scroll-restoration.ts | 2 +- apps/show/src/entry.client.tsx | 4 +- apps/show/src/entry.server.tsx | 4 +- .../activity-field/activity-field.tsx | 2 +- .../src/exhibitors/activity-field/chip.tsx | 6 +- .../src/exhibitors/activity-field/field.tsx | 8 +- .../activity-target/activity-target.tsx | 2 +- .../src/exhibitors/activity-target/chip.tsx | 6 +- .../src/exhibitors/activity-target/field.tsx | 8 +- .../animations/card-animations-on-stand.tsx | 4 +- .../application/email.service.server.tsx | 20 ++-- .../exhibitors/application/service.server.ts | 2 +- apps/show/src/exhibitors/category.ts | 4 +- .../exhibitors/dogs-configuration/helper.tsx | 2 +- .../src/exhibitors/email.module.server.ts | 4 +- apps/show/src/exhibitors/field-logo.tsx | 6 +- apps/show/src/exhibitors/item.tsx | 18 ++-- apps/show/src/exhibitors/perks/helper.tsx | 2 +- apps/show/src/exhibitors/search-params.ts | 4 +- apps/show/src/faq/item.tsx | 11 ++- .../show/src/invoice/email.service.server.tsx | 2 +- apps/show/src/mocks/mocks.client.ts | 2 +- .../pictures-location-state.ts | 2 +- apps/show/src/providers/item.tsx | 2 +- apps/show/src/providers/placeholder-image.tsx | 2 +- apps/show/src/root.tsx | 12 +-- apps/show/src/routes/[manifest.json].tsx | 4 +- apps/show/src/routes/[sitemap.xml].tsx | 6 +- .../loader.server.ts | 2 +- .../route.tsx | 34 +++---- .../section-awaiting-validation.tsx | 6 +- .../section-documents.tsx | 6 +- .../section-helper.tsx | 4 +- .../section-laureat.tsx | 6 +- .../section-payment.tsx | 4 +- .../section-sponsorship.tsx | 12 +-- .../section-stand-number.tsx | 4 +- .../section-to-complete.tsx | 6 +- .../section-validated.tsx | 6 +- .../task-items.tsx | 13 ++- .../route.tsx | 16 +-- .../section-documents.tsx | 19 ++-- .../section-helper.tsx | 4 +- .../section-structure.tsx | 8 +- .../route.tsx | 20 ++-- .../section-form.tsx | 8 +- .../section-helper.tsx | 4 +- .../route.tsx | 10 +- .../section-billing-info.tsx | 4 +- .../section-helper.tsx | 2 +- .../section-invoices.tsx | 6 +- .../action.server.ts | 2 +- .../fieldset-billing.tsx | 10 +- .../form.ts | 4 +- .../route.tsx | 10 +- .../section-form.tsx | 6 +- .../section-helper.tsx | 2 +- .../loader.server.ts | 2 +- .../route.tsx | 14 +-- .../section-dogs.tsx | 19 ++-- .../section-helper.tsx | 2 +- .../section-on-stage-animations.tsx | 12 +-- .../section-on-stand-animations.tsx | 23 +++-- .../section-perks.tsx | 13 ++- .../section-stand-configuration.tsx | 12 +-- .../route.tsx | 20 ++-- .../section-form.tsx | 12 +-- .../section-helper.tsx | 2 +- .../action.server.ts | 8 +- .../fieldset-perks.tsx | 10 +- .../form.ts | 6 +- .../helper-price-details.tsx | 4 +- .../loader.server.ts | 4 +- .../route.tsx | 18 ++-- .../section-form.tsx | 6 +- .../section-helper.tsx | 2 +- .../field-dog-gender.tsx | 6 +- .../fieldset-dogs.tsx | 12 +-- .../form.ts | 4 +- .../route.tsx | 20 ++-- .../section-form.tsx | 6 +- .../section-helper.tsx | 2 +- .../action.server.ts | 12 +-- .../field-divider-type.tsx | 6 +- .../field-installation-day.tsx | 6 +- .../fieldset-stand.tsx | 18 ++-- .../form.ts | 6 +- .../helper-price-details.tsx | 4 +- .../loader.server.ts | 8 +- .../route.tsx | 18 ++-- .../section-form.tsx | 6 +- .../section-helper.tsx | 2 +- .../route.tsx | 16 +-- .../section-description.tsx | 17 ++-- .../section-helper.tsx | 2 +- .../section-public-profile.tsx | 27 ++--- .../fieldset-description.tsx | 8 +- .../form.ts | 4 +- .../route.tsx | 20 ++-- .../section-form.tsx | 6 +- .../section-helper.tsx | 2 +- .../fieldset-public-profile.tsx | 18 ++-- .../form.ts | 4 +- .../route.tsx | 20 ++-- .../section-form.tsx | 6 +- .../section-helper.tsx | 2 +- .../route.tsx | 6 +- .../section-tabs.tsx | 6 +- .../section-title.tsx | 4 +- .../loader.server.ts | 2 +- .../questions.server.ts | 2 +- .../_exhibitor.exposants.$token.faq/route.tsx | 16 +-- .../section-more-questions.tsx | 8 +- .../section-questions.tsx | 6 +- .../section-title.tsx | 6 +- .../_exhibitor.exposants.$token/footer.tsx | 2 +- .../_exhibitor.exposants.$token/header.tsx | 6 +- .../_exhibitor.exposants.$token/route.tsx | 12 +-- apps/show/src/routes/_layout.$.tsx | 8 +- .../routes/_layout._index/route-online.tsx | 26 ++--- .../routes/_layout._index/route-waiting.tsx | 16 +-- apps/show/src/routes/_layout._index/route.tsx | 12 +-- apps/show/src/routes/_layout.acces/route.tsx | 16 +-- .../routes/_layout.acces/section-carpool.tsx | 8 +- .../routes/_layout.acces/section-ecology.tsx | 6 +- .../_layout.acces/section-information.tsx | 8 +- .../routes/_layout.acces/section-title.tsx | 8 +- .../route.tsx | 12 +-- .../section-pictures.tsx | 18 ++-- .../section-title.tsx | 6 +- .../_layout.editions-precedentes._index.tsx | 4 +- .../_layout.exposants._index/loader.server.ts | 4 +- .../modal-filters.tsx | 16 +-- .../routes/_layout.exposants._index/route.tsx | 12 +-- .../_layout.exposants._index/section-list.tsx | 28 +++--- .../section-title.tsx | 2 +- .../section-waiting-helper.tsx | 8 +- .../loader.server.ts | 2 +- .../route.tsx | 14 +-- .../section-information.tsx | 8 +- .../section-title.tsx | 2 +- .../action-schema.ts | 8 +- .../action.server.ts | 10 +- .../fieldset-comments.tsx | 12 +-- .../fieldset-contact.tsx | 10 +- .../fieldset-documents.tsx | 10 +- .../fieldset-participation.tsx | 8 +- .../fieldset-personal-data.tsx | 6 +- .../fieldset-sponsorship.tsx | 12 +-- .../fieldset-structure.tsx | 22 ++--- .../form.tsx | 6 +- .../loader.server.ts | 4 +- .../route.tsx | 18 ++-- .../section-description.tsx | 6 +- .../section-form.tsx | 22 ++--- .../section-title.tsx | 2 +- .../src/routes/_layout.faq/data.server.ts | 4 +- apps/show/src/routes/_layout.faq/route.tsx | 16 +-- .../_layout.faq/section-more-questions.tsx | 8 +- .../routes/_layout.faq/section-questions.tsx | 6 +- .../src/routes/_layout.faq/section-title.tsx | 6 +- .../_layout.programme.$day/route-params.ts | 2 +- .../routes/_layout.programme.$day/route.tsx | 6 +- .../section-event-list.tsx | 4 +- .../_layout.programme.$day/section-title.tsx | 2 +- .../routes/_layout.programme._index/route.tsx | 14 +-- .../section-title.tsx | 2 +- .../section-waiting-helper.tsx | 4 +- apps/show/src/routes/_layout/footer.tsx | 14 +-- apps/show/src/routes/_layout/header.tsx | 6 +- apps/show/src/routes/_layout/route.tsx | 8 +- apps/show/src/routes/api.notification.tsx | 2 +- ...ons-precedentes.$edition.$pictureIndex.tsx | 24 ++--- apps/show/src/sponsors/item.tsx | 2 +- apps/show/src/sponsors/placeholder-image.tsx | 2 +- apps/show/src/stand-size/field.tsx | 4 +- apps/show/tailwind.config.ts | 8 +- apps/website/scripts/generate-icon-sprite.ts | 2 +- apps/website/scripts/generate-theme.ts | 4 +- apps/website/src/animals/item.tsx | 12 +-- apps/website/src/animals/screening.ts | 2 +- apps/website/src/animals/species.ts | 2 +- apps/website/src/blog/data.server.ts | 2 +- apps/website/src/blog/item.tsx | 4 +- .../src/core/controllers/paginator.tsx | 6 +- .../src/core/controllers/searchForm.tsx | 6 +- apps/website/src/core/controllers/tabs.tsx | 4 +- .../src/core/data-display/error-page.tsx | 8 +- apps/website/src/core/data-display/image.tsx | 8 +- .../src/core/data-display/markdown.tsx | 8 +- .../website/src/core/data-display/options.tsx | 2 +- .../src/core/data-display/timeline.tsx | 4 +- apps/website/src/core/focus-trap.ts | 2 +- apps/website/src/core/layout/footer.tsx | 12 +-- apps/website/src/core/layout/header.tsx | 4 +- apps/website/src/core/layout/hero-section.tsx | 4 +- .../src/core/layout/navigation/large-nav.tsx | 31 +++--- .../src/core/layout/navigation/shared.tsx | 8 +- .../core/layout/navigation/show-banner.tsx | 4 +- .../src/core/layout/navigation/small-nav.tsx | 24 ++--- .../core/layout/navigation/social-links.tsx | 8 +- .../core/layout/navigation/sub-nav-act.tsx | 4 +- .../core/layout/navigation/sub-nav-adopt.tsx | 8 +- .../layout/navigation/sub-nav-discover.tsx | 4 +- .../core/layout/navigation/sub-nav-warn.tsx | 4 +- .../src/core/layout/related-section.tsx | 2 +- apps/website/src/donation/section.tsx | 6 +- apps/website/src/entry.client.tsx | 2 +- apps/website/src/entry.server.tsx | 2 +- apps/website/src/events/item.tsx | 8 +- apps/website/src/images/adopt.tsx | 2 +- apps/website/src/images/adoption.tsx | 2 +- apps/website/src/images/agreements.tsx | 2 +- apps/website/src/images/donation.tsx | 2 +- apps/website/src/images/engagement.tsx | 2 +- apps/website/src/images/equipment.tsx | 2 +- apps/website/src/images/error.tsx | 2 +- apps/website/src/images/follow-up.tsx | 2 +- .../src/images/foster-family-large.tsx | 2 +- .../src/images/foster-family-small.tsx | 2 +- apps/website/src/images/helloasso.tsx | 2 +- apps/website/src/images/hero.tsx | 2 +- .../website/src/images/mission-accounting.tsx | 2 +- apps/website/src/images/mission-carpool.tsx | 2 +- .../src/images/mission-communication.tsx | 2 +- apps/website/src/images/mission-event.tsx | 2 +- apps/website/src/images/mission-field.tsx | 2 +- .../src/images/mission-food-collection.tsx | 2 +- .../src/images/mission-intervention.tsx | 2 +- apps/website/src/images/pick-up.tsx | 2 +- apps/website/src/images/questions.tsx | 2 +- apps/website/src/images/social.tsx | 2 +- apps/website/src/images/volunteer.tsx | 2 +- apps/website/src/mocks/mocks.client.ts | 2 +- apps/website/src/root.tsx | 14 +-- apps/website/src/routes/$.tsx | 8 +- apps/website/src/routes/[manifest.json].tsx | 4 +- apps/website/src/routes/[sitemap.xml].tsx | 2 +- apps/website/src/routes/_index.tsx | 36 +++---- .../src/routes/abandonner-votre-animal.tsx | 15 +-- apps/website/src/routes/adoption.$.tsx | 24 ++--- apps/website/src/routes/animal.$slug.tsx | 35 ++++--- .../website/src/routes/articles-de-presse.tsx | 10 +- apps/website/src/routes/blog.$slug.tsx | 21 ++-- apps/website/src/routes/blog._index.tsx | 8 +- .../src/routes/conditions-d-adoption.tsx | 28 +++--- .../routes/conventions-de-sterilisation.tsx | 18 ++-- apps/website/src/routes/devenir-benevole.tsx | 34 +++---- .../src/routes/devenir-famille-d-accueil.tsx | 22 ++--- apps/website/src/routes/evenements._index.tsx | 14 +-- apps/website/src/routes/evenements.passes.tsx | 16 +-- apps/website/src/routes/faire-un-don.tsx | 22 ++--- apps/website/src/routes/faq.tsx | 18 ++-- apps/website/src/routes/healthcheck.tsx | 2 +- .../informer-d-un-acte-de-maltraitance.tsx | 15 +-- apps/website/src/routes/mentions-legales.tsx | 6 +- .../src/routes/nommez-votre-animal.tsx | 14 +-- apps/website/src/routes/partenaires.tsx | 14 +-- .../src/routes/resources.subscribe/input.tsx | 6 +- .../src/routes/resources.subscribe/route.tsx | 2 +- apps/website/src/routes/sauves.tsx | 14 +-- .../src/routes/signaler-un-animal-errant.tsx | 15 +-- apps/website/src/warn/item.tsx | 6 +- apps/website/tailwind.config.ts | 6 +- docs/decisions/000-template.md | 74 ++++++++++++++ docs/decisions/001-file-extensions.md | 98 +++++++++++++++++++ docs/decisions/README.md | 7 ++ libs/dev-tools/tsconfig.base.json | 7 +- .../src/tailwind-animation.ts | 2 +- package.json | 4 +- 669 files changed, 3438 insertions(+), 3168 deletions(-) create mode 100644 docs/decisions/000-template.md create mode 100644 docs/decisions/001-file-extensions.md create mode 100644 docs/decisions/README.md diff --git a/apps/admin/scripts/generate-icon-sprite.ts b/apps/admin/scripts/generate-icon-sprite.ts index 4a45134e..2f999628 100644 --- a/apps/admin/scripts/generate-icon-sprite.ts +++ b/apps/admin/scripts/generate-icon-sprite.ts @@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url" import { watch } from "chokidar" import { parse } from "node-html-parser" -import { relativeToCwd, safelyReadFile } from "./shared" +import { relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/admin/scripts/generate-theme.ts b/apps/admin/scripts/generate-theme.ts index 4f23163e..ac0f350d 100644 --- a/apps/admin/scripts/generate-theme.ts +++ b/apps/admin/scripts/generate-theme.ts @@ -2,8 +2,8 @@ import { mkdir, writeFile } from "node:fs/promises" import { dirname, resolve } from "node:path" import { fileURLToPath } from "node:url" -import { colors, screens, spacing } from "../tailwind.config" -import { relativeToCwd, safelyReadFile } from "./shared" +import { colors, screens, spacing } from "../tailwind.config.js" +import { relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/admin/src/activity/db.server.ts b/apps/admin/src/activity/db.server.ts index 0f237c91..fa62490a 100644 --- a/apps/admin/src/activity/db.server.ts +++ b/apps/admin/src/activity/db.server.ts @@ -4,10 +4,10 @@ import isEqual from "lodash.isequal" import pick from "lodash.pick" import { promiseHash } from "remix-utils/promise" -import { ActivityAction } from "#i/activity/action" -import { ActivityActorType } from "#i/activity/actor-type" -import { ActivityResource } from "#i/activity/resource" -import type { ActivitySearchParams } from "#i/activity/search-params" +import { ActivityAction } from "#i/activity/action.js" +import { ActivityActorType } from "#i/activity/actor-type.js" +import { ActivityResource } from "#i/activity/resource.js" +import type { ActivitySearchParams } from "#i/activity/search-params.js" import { prisma } from "#i/core/prisma.server.js" import { notFound } from "#i/core/response.server.js" diff --git a/apps/admin/src/activity/filter-form.tsx b/apps/admin/src/activity/filter-form.tsx index 88a87f77..21500b90 100644 --- a/apps/admin/src/activity/filter-form.tsx +++ b/apps/admin/src/activity/filter-form.tsx @@ -1,21 +1,21 @@ import type { User } from "@animeaux/prisma" import { useOptimisticSearchParams } from "@animeaux/search-params-io" -import { ActivityAction } from "#i/activity/action" -import { ActivityResource } from "#i/activity/resource" -import { ActivitySearchParams } from "#i/activity/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { toIsoDateValue } from "#i/core/dates" -import { ControlledInput } from "#i/core/form-elements/controlled-input" -import { Form } from "#i/core/form-elements/form" +import { ActivityAction } from "#i/activity/action.js" +import { ActivityResource } from "#i/activity/resource.js" +import { ActivitySearchParams } from "#i/activity/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" +import { Form } from "#i/core/form-elements/form.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" -import { UserAvatar } from "#i/users/avatar" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" +import { UserAvatar } from "#i/users/avatar.js" export function ActivityFilters({ users, diff --git a/apps/admin/src/activity/search-params.ts b/apps/admin/src/activity/search-params.ts index 1010f4ba..fabb140a 100644 --- a/apps/admin/src/activity/search-params.ts +++ b/apps/admin/src/activity/search-params.ts @@ -2,8 +2,8 @@ import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" import { DateTime } from "luxon" -import { ActivityAction } from "#i/activity/action" -import { ActivityResource } from "#i/activity/resource" +import { ActivityAction } from "#i/activity/action.js" +import { ActivityResource } from "#i/activity/resource.js" import { endOfDay } from "#i/core/dates.js" export namespace ActivitySearchParams { diff --git a/apps/admin/src/animals/adoption.tsx b/apps/admin/src/animals/adoption.tsx index 843447f4..11101e52 100644 --- a/apps/admin/src/animals/adoption.tsx +++ b/apps/admin/src/animals/adoption.tsx @@ -1,7 +1,7 @@ import { AdoptionOption } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const ADOPTION_OPTION_TRANSLATION: Record = { [AdoptionOption.WITH_STERILIZATION]: "Avec stérilisation", diff --git a/apps/admin/src/animals/age.tsx b/apps/admin/src/animals/age.tsx index b206201d..bae97834 100644 --- a/apps/admin/src/animals/age.tsx +++ b/apps/admin/src/animals/age.tsx @@ -1,7 +1,7 @@ import { AnimalAge } from "@animeaux/core" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const SORTED_AGES = orderBy(Object.values(AnimalAge), (age) => age === AnimalAge.JUNIOR ? 0 : age === AnimalAge.ADULT ? 1 : 2, diff --git a/apps/admin/src/animals/agreements.tsx b/apps/admin/src/animals/agreements.tsx index a3d42c68..9b41147c 100644 --- a/apps/admin/src/animals/agreements.tsx +++ b/apps/admin/src/animals/agreements.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export enum AgreementValue { TRUE = "TRUE", diff --git a/apps/admin/src/animals/avatar.tsx b/apps/admin/src/animals/avatar.tsx index eada4f3a..5b002342 100644 --- a/apps/admin/src/animals/avatar.tsx +++ b/apps/admin/src/animals/avatar.tsx @@ -1,10 +1,10 @@ import type { Animal } from "@animeaux/prisma" import type { Except } from "type-fest" -import type { AvatarSize } from "#i/core/data-display/avatar" -import { Avatar } from "#i/core/data-display/avatar" -import type { DynamicImageProps } from "#i/core/data-display/image" -import { DynamicImage } from "#i/core/data-display/image" +import type { AvatarSize } from "#i/core/data-display/avatar.js" +import { Avatar } from "#i/core/data-display/avatar.js" +import type { DynamicImageProps } from "#i/core/data-display/image.js" +import { DynamicImage } from "#i/core/data-display/image.js" export function AnimalAvatar({ animal, diff --git a/apps/admin/src/animals/creation-steps.tsx b/apps/admin/src/animals/creation-steps.tsx index e037a62e..16b4d576 100644 --- a/apps/admin/src/animals/creation-steps.tsx +++ b/apps/admin/src/animals/creation-steps.tsx @@ -1,5 +1,5 @@ -import { Steps } from "#i/core/controllers/steps" -import { Routes } from "#i/core/navigation" +import { Steps } from "#i/core/controllers/steps.js" +import { Routes } from "#i/core/navigation.js" const STEPS = ["profile", "situation", "pictures"] as const type ActiveStep = (typeof STEPS)[number] diff --git a/apps/admin/src/animals/db.server.ts b/apps/admin/src/animals/db.server.ts index 8a0c59f3..e9d9147f 100644 --- a/apps/admin/src/animals/db.server.ts +++ b/apps/admin/src/animals/db.server.ts @@ -8,23 +8,23 @@ import invariant from "tiny-invariant" import { ActivityAction } from "#i/activity/action.js" import { Activity } from "#i/activity/db.server.js" import { ActivityResource } from "#i/activity/resource.js" -import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures" -import type { AnimalPictures } from "#i/animals/pictures/db.server" -import { AnimalPictureDbDelegate } from "#i/animals/pictures/db.server" -import { AnimalProfileDbDelegate } from "#i/animals/profile/db.server" -import type { AnimalSearchParams } from "#i/animals/search-params" +import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures.js" +import type { AnimalPictures } from "#i/animals/pictures/db.server.js" +import { AnimalPictureDbDelegate } from "#i/animals/pictures/db.server.js" +import { AnimalProfileDbDelegate } from "#i/animals/profile/db.server.js" +import type { AnimalSearchParams } from "#i/animals/search-params.js" import { AnimalIdentification, AnimalSort, AnimalSterilization, AnimalVaccination, -} from "#i/animals/search-params" -import { AnimalSituationDbDelegate } from "#i/animals/situation/db.server" -import { SORTED_SPECIES } from "#i/animals/species" -import { deleteImage } from "#i/core/cloudinary.server" -import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server" -import { orderByRank } from "#i/core/order-by-rank" -import { prisma } from "#i/core/prisma.server" +} from "#i/animals/search-params.js" +import { AnimalSituationDbDelegate } from "#i/animals/situation/db.server.js" +import { SORTED_SPECIES } from "#i/animals/species.js" +import { deleteImage } from "#i/core/cloudinary.server.js" +import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server.js" +import { orderByRank } from "#i/core/order-by-rank.js" +import { prisma } from "#i/core/prisma.server.js" export class AnimalDbDelegate { readonly picture = new AnimalPictureDbDelegate() diff --git a/apps/admin/src/animals/filter-form.tsx b/apps/admin/src/animals/filter-form.tsx index a19a1117..138e5fe9 100644 --- a/apps/admin/src/animals/filter-form.tsx +++ b/apps/admin/src/animals/filter-form.tsx @@ -7,23 +7,23 @@ import { ADOPTION_OPTION_ICON, ADOPTION_OPTION_TRANSLATION, SORTED_ADOPTION_OPTION, -} from "#i/animals/adoption" -import { AGE_ICON, AGE_TRANSLATION, SORTED_AGES } from "#i/animals/age" +} from "#i/animals/adoption.js" +import { AGE_ICON, AGE_TRANSLATION, SORTED_AGES } from "#i/animals/age.js" import { GENDER_ICON, GENDER_TRANSLATION, SORTED_GENDERS, -} from "#i/animals/gender" +} from "#i/animals/gender.js" import { PICK_UP_REASON_ICON, PICK_UP_REASON_TRANSLATION, SORTED_PICK_UP_REASON, -} from "#i/animals/pick-up" +} from "#i/animals/pick-up.js" import { SCREENING_RESULT_ICON, SCREENING_RESULT_TRANSLATION, SORTED_SCREENING_RESULTS, -} from "#i/animals/screening" +} from "#i/animals/screening.js" import { ANIMAL_DEFAULT_SORT, AnimalIdentification, @@ -32,36 +32,36 @@ import { AnimalSortSearchParams, AnimalSterilization, AnimalVaccination, -} from "#i/animals/search-params" +} from "#i/animals/search-params.js" import { DIAGNOSIS_TRANSLATION, SORTED_DIAGNOSIS, -} from "#i/animals/situation/diagnosis" +} from "#i/animals/situation/diagnosis.js" import { SORTED_SPECIES, SPECIES_ICON, SPECIES_TRANSLATION, -} from "#i/animals/species" +} from "#i/animals/species.js" import { ACTIVE_ANIMAL_STATUS, SORTED_STATUS, STATUS_TRANSLATION, StatusIcon, -} from "#i/animals/status" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { toIsoDateValue } from "#i/core/dates" -import { ControlledInput } from "#i/core/form-elements/controlled-input" -import { Form } from "#i/core/form-elements/form" +} from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" +import { Form } from "#i/core/form-elements/form.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { FosterFamilyAvatar } from "#i/foster-families/avatar" -import { Icon } from "#i/generated/icon" -import { UserAvatar } from "#i/users/avatar" -import { hasGroups } from "#i/users/groups" +} from "#i/core/form-elements/toggle-input.js" +import { FosterFamilyAvatar } from "#i/foster-families/avatar.js" +import { Icon } from "#i/generated/icon.js" +import { UserAvatar } from "#i/users/avatar.js" +import { hasGroups } from "#i/users/groups.js" export function AnimalFilters({ currentUser, diff --git a/apps/admin/src/animals/gender.tsx b/apps/admin/src/animals/gender.tsx index ea5457a1..deff4e59 100644 --- a/apps/admin/src/animals/gender.tsx +++ b/apps/admin/src/animals/gender.tsx @@ -1,7 +1,7 @@ import { Gender } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const GENDER_TRANSLATION: Record = { [Gender.FEMALE]: "Femelle", diff --git a/apps/admin/src/animals/item.tsx b/apps/admin/src/animals/item.tsx index 37a379f7..84216460 100644 --- a/apps/admin/src/animals/item.tsx +++ b/apps/admin/src/animals/item.tsx @@ -4,23 +4,23 @@ import { Gender } from "@animeaux/prisma" import type { SerializeFrom } from "@remix-run/node" import { forwardRef } from "react" -import { AnimalAvatar } from "#i/animals/avatar" -import { GENDER_ICON, GENDER_TRANSLATION } from "#i/animals/gender" -import { getAnimalDisplayName } from "#i/animals/profile/name" +import { AnimalAvatar } from "#i/animals/avatar.js" +import { GENDER_ICON, GENDER_TRANSLATION } from "#i/animals/gender.js" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" import { getNextVaccinationState, hasUpCommingSterilisation, -} from "#i/animals/situation/health" -import { getSpeciesLabels } from "#i/animals/species" -import { StatusBadge } from "#i/animals/status" -import { BaseLink } from "#i/core/base-link" -import { Chip } from "#i/core/data-display/chip" -import type { DynamicImageProps } from "#i/core/data-display/image" -import { DynamicImage } from "#i/core/data-display/image" -import type { SuggestionItemProps } from "#i/core/form-elements/resource-input" -import { SuggestionItem } from "#i/core/form-elements/resource-input" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +} from "#i/animals/situation/health.js" +import { getSpeciesLabels } from "#i/animals/species.js" +import { StatusBadge } from "#i/animals/status.js" +import { BaseLink } from "#i/core/base-link.js" +import { Chip } from "#i/core/data-display/chip.js" +import type { DynamicImageProps } from "#i/core/data-display/image.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import type { SuggestionItemProps } from "#i/core/form-elements/resource-input.js" +import { SuggestionItem } from "#i/core/form-elements/resource-input.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" export function AnimalItem({ animal, diff --git a/apps/admin/src/animals/pick-up.ts b/apps/admin/src/animals/pick-up.ts index 36286579..3c742544 100644 --- a/apps/admin/src/animals/pick-up.ts +++ b/apps/admin/src/animals/pick-up.ts @@ -1,7 +1,7 @@ import { PickUpReason } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const PICK_UP_REASON_TRANSLATION: Record = { [PickUpReason.ABANDONMENT]: "Abandon", diff --git a/apps/admin/src/animals/pictures/db.server.ts b/apps/admin/src/animals/pictures/db.server.ts index 95d476df..50aa324a 100644 --- a/apps/admin/src/animals/pictures/db.server.ts +++ b/apps/admin/src/animals/pictures/db.server.ts @@ -4,10 +4,10 @@ import difference from "lodash.difference" import { ActivityAction } from "#i/activity/action.js" import { Activity } from "#i/activity/db.server.js" import { ActivityResource } from "#i/activity/resource.js" -import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures" -import { deleteImage } from "#i/core/cloudinary.server" -import { NotFoundError } from "#i/core/errors.server" -import { prisma } from "#i/core/prisma.server" +import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures.js" +import { deleteImage } from "#i/core/cloudinary.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { prisma } from "#i/core/prisma.server.js" export type AnimalPictures = Pick diff --git a/apps/admin/src/animals/pictures/drag-and-drop.tsx b/apps/admin/src/animals/pictures/drag-and-drop.tsx index 64b0a20e..9e172bfb 100644 --- a/apps/admin/src/animals/pictures/drag-and-drop.tsx +++ b/apps/admin/src/animals/pictures/drag-and-drop.tsx @@ -1,6 +1,6 @@ -import type { ImageFileOrId } from "#i/core/data-display/image" -import { DataUrlOrDynamicImage } from "#i/core/data-display/image" -import { createDragAndDropContext } from "#i/core/drag-and-drop" +import type { ImageFileOrId } from "#i/core/data-display/image.js" +import { DataUrlOrDynamicImage } from "#i/core/data-display/image.js" +import { createDragAndDropContext } from "#i/core/drag-and-drop.js" const { DragAndDropContextProvider, diff --git a/apps/admin/src/animals/pictures/form.tsx b/apps/admin/src/animals/pictures/form.tsx index 8e680ae7..48f069bd 100644 --- a/apps/admin/src/animals/pictures/form.tsx +++ b/apps/admin/src/animals/pictures/form.tsx @@ -7,26 +7,26 @@ import { useFormAction } from "@remix-run/react" import { useRef, useState } from "react" import invariant from "tiny-invariant" -import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures" +import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures.js" import { DragAndDropContextProvider, PictureItemPreview, useDragItem, useDropContainer, -} from "#i/animals/pictures/drag-and-drop" -import { Action } from "#i/core/actions" -import { InlineHelper } from "#i/core/data-display/helper" -import type { ImageFile, ImageFileOrId } from "#i/core/data-display/image" +} from "#i/animals/pictures/drag-and-drop.js" +import { Action } from "#i/core/actions.js" +import { InlineHelper } from "#i/core/data-display/helper.js" +import type { ImageFile, ImageFileOrId } from "#i/core/data-display/image.js" import { getImageId, IMAGE_SIZE_LIMIT_MB, isImageFile, isImageOverSize, readFiles, -} from "#i/core/data-display/image" -import { Form } from "#i/core/form-elements/form" -import { ImageInput } from "#i/core/form-elements/image-input" -import { Icon } from "#i/generated/icon" +} from "#i/core/data-display/image.js" +import { Form } from "#i/core/form-elements/form.js" +import { ImageInput } from "#i/core/form-elements/image-input.js" +import { Icon } from "#i/generated/icon.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/animals/profile/db.server.ts b/apps/admin/src/animals/profile/db.server.ts index 4b17752b..1c38f50d 100644 --- a/apps/admin/src/animals/profile/db.server.ts +++ b/apps/admin/src/animals/profile/db.server.ts @@ -4,9 +4,9 @@ import { redirect } from "@remix-run/node" import { ActivityAction } from "#i/activity/action.js" import { Activity } from "#i/activity/db.server.js" import { ActivityResource } from "#i/activity/resource.js" -import { NotFoundError } from "#i/core/errors.server" -import { Routes } from "#i/core/navigation" -import { prisma } from "#i/core/prisma.server" +import { NotFoundError } from "#i/core/errors.server.js" +import { Routes } from "#i/core/navigation.js" +import { prisma } from "#i/core/prisma.server.js" type ProfileKeys = | "alias" diff --git a/apps/admin/src/animals/profile/form.tsx b/apps/admin/src/animals/profile/form.tsx index 5ac39f26..10992972 100644 --- a/apps/admin/src/animals/profile/form.tsx +++ b/apps/admin/src/animals/profile/form.tsx @@ -13,24 +13,27 @@ import { agreementToBoolean, AgreementValue, SORTED_AGREEMENTS, -} from "#i/animals/agreements" -import { GENDER_TRANSLATION, SORTED_GENDERS } from "#i/animals/gender" +} from "#i/animals/agreements.js" +import { GENDER_TRANSLATION, SORTED_GENDERS } from "#i/animals/gender.js" import { SORTED_SPECIES, SPECIES_ICON, SPECIES_TRANSLATION, -} from "#i/animals/species" -import { Action } from "#i/core/actions" -import { toIsoDateValue } from "#i/core/dates" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RadioInput, RadioInputList } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Textarea } from "#i/core/form-elements/textarea" -import { Separator } from "#i/core/layout/separator" -import { Icon } from "#i/generated/icon" -import { BreedInput } from "#i/routes/resources.breed/input" -import { ColorInput } from "#i/routes/resources.color/input" +} from "#i/animals/species.js" +import { Action } from "#i/core/actions.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { + RadioInput, + RadioInputList, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Textarea } from "#i/core/form-elements/textarea.js" +import { Separator } from "#i/core/layout/separator.js" +import { Icon } from "#i/generated/icon.js" +import { BreedInput } from "#i/routes/resources.breed/input.js" +import { ColorInput } from "#i/routes/resources.color/input.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/animals/screening.ts b/apps/admin/src/animals/screening.ts index 3bd1249e..c46550f1 100644 --- a/apps/admin/src/animals/screening.ts +++ b/apps/admin/src/animals/screening.ts @@ -1,7 +1,7 @@ import { Gender, ScreeningResult } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const SCREENING_RESULT_TRANSLATION: Record< ScreeningResult, diff --git a/apps/admin/src/animals/search-params.ts b/apps/admin/src/animals/search-params.ts index 4fefb76f..195c3442 100644 --- a/apps/admin/src/animals/search-params.ts +++ b/apps/admin/src/animals/search-params.ts @@ -12,7 +12,7 @@ import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" import { DateTime } from "luxon" -import { endOfDay } from "#i/core/dates" +import { endOfDay } from "#i/core/dates.js" export enum AnimalSort { BIRTHDATE = "B", diff --git a/apps/admin/src/animals/situation/db.server.ts b/apps/admin/src/animals/situation/db.server.ts index f0ab6335..8e1de01f 100644 --- a/apps/admin/src/animals/situation/db.server.ts +++ b/apps/admin/src/animals/situation/db.server.ts @@ -5,10 +5,10 @@ import { redirect } from "@remix-run/node" import { ActivityAction } from "#i/activity/action.js" import { Activity } from "#i/activity/db.server.js" import { ActivityResource } from "#i/activity/resource.js" -import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status" -import { NotFoundError } from "#i/core/errors.server" -import { Routes } from "#i/core/navigation" -import { prisma } from "#i/core/prisma.server" +import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { Routes } from "#i/core/navigation.js" +import { prisma } from "#i/core/prisma.server.js" type SituationKeys = | "adoptionDate" diff --git a/apps/admin/src/animals/situation/form.tsx b/apps/admin/src/animals/situation/form.tsx index 37447097..510df44b 100644 --- a/apps/admin/src/animals/situation/form.tsx +++ b/apps/admin/src/animals/situation/form.tsx @@ -20,37 +20,40 @@ import invariant from "tiny-invariant" import { ADOPTION_OPTION_TRANSLATION, SORTED_ADOPTION_OPTION, -} from "#i/animals/adoption" +} from "#i/animals/adoption.js" import { PICK_UP_REASON_TRANSLATION, SORTED_PICK_UP_REASON, -} from "#i/animals/pick-up" +} from "#i/animals/pick-up.js" import { SCREENING_RESULT_TRANSLATION, SORTED_SCREENING_RESULTS, -} from "#i/animals/screening" +} from "#i/animals/screening.js" import { DIAGNOSIS_TRANSLATION, SORTED_DIAGNOSIS, -} from "#i/animals/situation/diagnosis" +} from "#i/animals/situation/diagnosis.js" import { ACTIVE_ANIMAL_STATUS, SORTED_STATUS, STATUS_TRANSLATION, -} from "#i/animals/status" -import { Action } from "#i/core/actions" -import { toIsoDateValue } from "#i/core/dates" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RadioInput, RadioInputList } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Textarea } from "#i/core/form-elements/textarea" -import { Separator } from "#i/core/layout/separator" -import { Icon } from "#i/generated/icon" -import { FosterFamilyInput } from "#i/routes/resources.foster-family/input" -import { ManagerInput } from "#i/routes/resources.manager/input" -import { PickUpLocationInput } from "#i/routes/resources.pick-up-location/input" -import { hasGroups } from "#i/users/groups" +} from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { + RadioInput, + RadioInputList, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Textarea } from "#i/core/form-elements/textarea.js" +import { Separator } from "#i/core/layout/separator.js" +import { Icon } from "#i/generated/icon.js" +import { FosterFamilyInput } from "#i/routes/resources.foster-family/input.js" +import { ManagerInput } from "#i/routes/resources.manager/input.js" +import { PickUpLocationInput } from "#i/routes/resources.pick-up-location/input.js" +import { hasGroups } from "#i/users/groups.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/animals/situation/health.ts b/apps/admin/src/animals/situation/health.ts index 01716e55..8260de2e 100644 --- a/apps/admin/src/animals/situation/health.ts +++ b/apps/admin/src/animals/situation/health.ts @@ -5,7 +5,7 @@ import difference from "lodash.difference" import { DateTime } from "luxon" import type { SetNonNullable } from "type-fest" -import { ACTIVE_ANIMAL_STATUS, SORTED_STATUS } from "#i/animals/status" +import { ACTIVE_ANIMAL_STATUS, SORTED_STATUS } from "#i/animals/status.js" export const HAS_UP_COMMING_STERILISATION_CONDITIONS = { isSterilizationMandatory: true, diff --git a/apps/admin/src/animals/species.tsx b/apps/admin/src/animals/species.tsx index 49955237..fae8384f 100644 --- a/apps/admin/src/animals/species.tsx +++ b/apps/admin/src/animals/species.tsx @@ -2,8 +2,8 @@ import type { Animal, Breed, Color } from "@animeaux/prisma" import { Species } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import { isDefined } from "#i/core/is-defined" -import type { IconName } from "#i/generated/icon" +import { isDefined } from "#i/core/is-defined.js" +import type { IconName } from "#i/generated/icon.js" export const SPECIES_TRANSLATION: Record = { [Species.BIRD]: "Oiseau", diff --git a/apps/admin/src/animals/status.tsx b/apps/admin/src/animals/status.tsx index a9bb84e6..fc4e01d6 100644 --- a/apps/admin/src/animals/status.tsx +++ b/apps/admin/src/animals/status.tsx @@ -3,9 +3,9 @@ import { Status } from "@animeaux/prisma" import difference from "lodash.difference" import orderBy from "lodash.orderby" -import type { ChipColor } from "#i/core/data-display/chip" -import { Chip } from "#i/core/data-display/chip" -import { Icon } from "#i/generated/icon" +import type { ChipColor } from "#i/core/data-display/chip.js" +import { Chip } from "#i/core/data-display/chip.js" +import { Icon } from "#i/generated/icon.js" export const STATUS_TRANSLATION: Record = { [Status.ADOPTED]: "Adopté", diff --git a/apps/admin/src/breeds/db.server.ts b/apps/admin/src/breeds/db.server.ts index d64cd735..5433c330 100644 --- a/apps/admin/src/breeds/db.server.ts +++ b/apps/admin/src/breeds/db.server.ts @@ -2,16 +2,16 @@ import type { Breed } from "@animeaux/prisma/server" import { Prisma } from "@animeaux/prisma/server" import type { SearchParamsIO } from "@animeaux/search-params-io" -import type { BreedSearchParams } from "#i/breeds/search-params" -import { BreedSort } from "#i/breeds/search-params" +import type { BreedSearchParams } from "#i/breeds/search-params.js" +import { BreedSort } from "#i/breeds/search-params.js" import { AlreadyExistError, NotFoundError, PrismaErrorCodes, ReferencedError, -} from "#i/core/errors.server" -import { orderByRank } from "#i/core/order-by-rank" -import { prisma } from "#i/core/prisma.server" +} from "#i/core/errors.server.js" +import { orderByRank } from "#i/core/order-by-rank.js" +import { prisma } from "#i/core/prisma.server.js" export class BreedDbDelegate { async create(data: BreedData) { diff --git a/apps/admin/src/breeds/filter-form.tsx b/apps/admin/src/breeds/filter-form.tsx index 84e14771..0f51cf95 100644 --- a/apps/admin/src/breeds/filter-form.tsx +++ b/apps/admin/src/breeds/filter-form.tsx @@ -4,21 +4,21 @@ import { SORTED_SPECIES, SPECIES_ICON, SPECIES_TRANSLATION, -} from "#i/animals/species" +} from "#i/animals/species.js" import { BREED_DEFAULT_SORT, BreedSearchParams, BreedSort, -} from "#i/breeds/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { ControlledInput } from "#i/core/form-elements/controlled-input" +} from "#i/breeds/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" export function BreedFilterForm() { const [searchParams, setSearchParams] = useOptimisticSearchParams() diff --git a/apps/admin/src/breeds/form.tsx b/apps/admin/src/breeds/form.tsx index 38793ee2..57c22387 100644 --- a/apps/admin/src/breeds/form.tsx +++ b/apps/admin/src/breeds/form.tsx @@ -6,13 +6,16 @@ import type { SerializeFrom } from "@remix-run/node" import type { FetcherWithComponents } from "@remix-run/react" import { useEffect, useRef } from "react" -import { SORTED_SPECIES, SPECIES_TRANSLATION } from "#i/animals/species" -import { Action } from "#i/core/actions" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RadioInput, RadioInputList } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Icon } from "#i/generated/icon" +import { SORTED_SPECIES, SPECIES_TRANSLATION } from "#i/animals/species.js" +import { Action } from "#i/core/actions.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { + RadioInput, + RadioInputList, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Icon } from "#i/generated/icon.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/colors/db.server.ts b/apps/admin/src/colors/db.server.ts index bf78a09e..42decbaa 100644 --- a/apps/admin/src/colors/db.server.ts +++ b/apps/admin/src/colors/db.server.ts @@ -2,16 +2,16 @@ import type { Color } from "@animeaux/prisma/server" import { Prisma } from "@animeaux/prisma/server" import type { SearchParamsIO } from "@animeaux/search-params-io" -import type { ColorSearchParams } from "#i/colors/search-params" -import { ColorSort } from "#i/colors/search-params" +import type { ColorSearchParams } from "#i/colors/search-params.js" +import { ColorSort } from "#i/colors/search-params.js" import { AlreadyExistError, NotFoundError, PrismaErrorCodes, ReferencedError, -} from "#i/core/errors.server" -import { orderByRank } from "#i/core/order-by-rank" -import { prisma } from "#i/core/prisma.server" +} from "#i/core/errors.server.js" +import { orderByRank } from "#i/core/order-by-rank.js" +import { prisma } from "#i/core/prisma.server.js" export class ColorDbDelegate { async create(data: ColorData) { diff --git a/apps/admin/src/colors/filter-form.tsx b/apps/admin/src/colors/filter-form.tsx index 42828124..91279b44 100644 --- a/apps/admin/src/colors/filter-form.tsx +++ b/apps/admin/src/colors/filter-form.tsx @@ -4,16 +4,16 @@ import { COLOR_DEFAULT_SORT, ColorSearchParams, ColorSort, -} from "#i/colors/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { ControlledInput } from "#i/core/form-elements/controlled-input" +} from "#i/colors/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" export function ColorFilterForm() { const [searchParams, setSearchParams] = useOptimisticSearchParams() diff --git a/apps/admin/src/colors/form.tsx b/apps/admin/src/colors/form.tsx index 0da170ae..9c0aa0d0 100644 --- a/apps/admin/src/colors/form.tsx +++ b/apps/admin/src/colors/form.tsx @@ -5,11 +5,11 @@ import type { SerializeFrom } from "@remix-run/node" import type { FetcherWithComponents } from "@remix-run/react" import { useEffect, useRef } from "react" -import { Action } from "#i/core/actions" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Icon } from "#i/generated/icon.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/core/actions.tsx b/apps/admin/src/core/actions.tsx index be57bd77..adeb39f0 100644 --- a/apps/admin/src/core/actions.tsx +++ b/apps/admin/src/core/actions.tsx @@ -2,8 +2,8 @@ import { cn } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" -import { Spinner } from "#i/core/loaders/spinner" -import { Icon } from "#i/generated/icon" +import { Spinner } from "#i/core/loaders/spinner.js" +import { Icon } from "#i/generated/icon.js" type ActionVariant = "primary" | "secondary" | "text" | "translucid" diff --git a/apps/admin/src/core/base-link.tsx b/apps/admin/src/core/base-link.tsx index ed2f49cf..8f848dc3 100644 --- a/apps/admin/src/core/base-link.tsx +++ b/apps/admin/src/core/base-link.tsx @@ -2,8 +2,8 @@ import type { NavLinkProps } from "@remix-run/react" import { Link, NavLink } from "@remix-run/react" import { forwardRef } from "react" -import type { LocationState } from "#i/core/location-state" -import { useLocationState } from "#i/core/location-state" +import type { LocationState } from "#i/core/location-state.js" +import { useLocationState } from "#i/core/location-state.js" export type BaseLinkProps = { children?: NavLinkProps["children"] diff --git a/apps/admin/src/core/controllers/filters.tsx b/apps/admin/src/core/controllers/filters.tsx index 0579492c..29b4340b 100644 --- a/apps/admin/src/core/controllers/filters.tsx +++ b/apps/admin/src/core/controllers/filters.tsx @@ -2,9 +2,9 @@ import { cn, joinReactNodes } from "@animeaux/core" import { Form, useSubmit } from "@remix-run/react" import { Children, createContext, useContext, useMemo, useState } from "react" -import { Chip } from "#i/core/data-display/chip" -import { Separator } from "#i/core/layout/separator" -import { Icon } from "#i/generated/icon" +import { Chip } from "#i/core/data-display/chip.js" +import { Separator } from "#i/core/layout/separator.js" +import { Icon } from "#i/generated/icon.js" export function Filters({ children }: { children?: React.ReactNode }) { const submit = useSubmit() diff --git a/apps/admin/src/core/controllers/paginator.tsx b/apps/admin/src/core/controllers/paginator.tsx index fe8f9be9..f1f457ba 100644 --- a/apps/admin/src/core/controllers/paginator.tsx +++ b/apps/admin/src/core/controllers/paginator.tsx @@ -2,9 +2,9 @@ import { cn } from "@animeaux/core" import { useSearchParams } from "@remix-run/react" import type { ReactNode } from "react" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { PageSearchParams } from "#i/core/search-params" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { PageSearchParams } from "#i/core/search-params.js" export function Paginator({ pageCount, diff --git a/apps/admin/src/core/controllers/sort-and-filters-floating-action.tsx b/apps/admin/src/core/controllers/sort-and-filters-floating-action.tsx index bc3e5714..f081f707 100644 --- a/apps/admin/src/core/controllers/sort-and-filters-floating-action.tsx +++ b/apps/admin/src/core/controllers/sort-and-filters-floating-action.tsx @@ -1,9 +1,9 @@ import { cn } from "@animeaux/core" import * as Dialog from "@radix-ui/react-dialog" -import { Action } from "#i/core/actions" -import { Card } from "#i/core/layout/card" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { Card } from "#i/core/layout/card.js" +import { Icon } from "#i/generated/icon.js" export function SortAndFiltersFloatingAction({ totalCount, diff --git a/apps/admin/src/core/controllers/steps.tsx b/apps/admin/src/core/controllers/steps.tsx index 34080ca2..83f460fa 100644 --- a/apps/admin/src/core/controllers/steps.tsx +++ b/apps/admin/src/core/controllers/steps.tsx @@ -1,9 +1,9 @@ import { cn, joinReactNodes } from "@animeaux/core" import { cloneElement } from "react" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { Icon } from "#i/generated/icon" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { Icon } from "#i/generated/icon.js" export function Steps({ activeIndex, diff --git a/apps/admin/src/core/crons/crons.server.ts b/apps/admin/src/core/crons/crons.server.ts index 4424bdb4..83271d29 100644 --- a/apps/admin/src/core/crons/crons.server.ts +++ b/apps/admin/src/core/crons/crons.server.ts @@ -1,7 +1,7 @@ import { Cron } from "croner" import { DateTime } from "luxon" -import { ExpireFosterFamilyAvailabilityCron } from "#i/foster-families/crons.server" +import { ExpireFosterFamilyAvailabilityCron } from "#i/foster-families/crons.server.js" const ALL_CRONS_DEFINITIONS = [ExpireFosterFamilyAvailabilityCron] diff --git a/apps/admin/src/core/data-display/chip.tsx b/apps/admin/src/core/data-display/chip.tsx index 53101b67..d3729b90 100644 --- a/apps/admin/src/core/data-display/chip.tsx +++ b/apps/admin/src/core/data-display/chip.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export type ChipVariant = "primary" | "secondary" diff --git a/apps/admin/src/core/data-display/error-page.tsx b/apps/admin/src/core/data-display/error-page.tsx index 18557dd4..33827036 100644 --- a/apps/admin/src/core/data-display/error-page.tsx +++ b/apps/admin/src/core/data-display/error-page.tsx @@ -6,10 +6,10 @@ import { import { captureRemixErrorBoundaryError } from "@sentry/remix" import { useEffect } from "react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Routes } from "#i/core/navigation" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Routes } from "#i/core/navigation.js" export function ErrorPage() { const error = useRouteError() diff --git a/apps/admin/src/core/data-display/errors.tsx b/apps/admin/src/core/data-display/errors.tsx index e290f637..5993f795 100644 --- a/apps/admin/src/core/data-display/errors.tsx +++ b/apps/admin/src/core/data-display/errors.tsx @@ -1,7 +1,7 @@ import { joinReactNodes } from "@animeaux/core" -import type { InlineHelperProps } from "#i/core/data-display/helper" -import { InlineHelper } from "#i/core/data-display/helper" +import type { InlineHelperProps } from "#i/core/data-display/helper.js" +import { InlineHelper } from "#i/core/data-display/helper.js" export function ErrorsInlineHelper({ errors, diff --git a/apps/admin/src/core/data-display/file-item.tsx b/apps/admin/src/core/data-display/file-item.tsx index 7434c6fe..65cea977 100644 --- a/apps/admin/src/core/data-display/file-item.tsx +++ b/apps/admin/src/core/data-display/file-item.tsx @@ -3,8 +3,8 @@ import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" import type { Except } from "type-fest" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export const FileItem = { Root: forwardRef< diff --git a/apps/admin/src/core/data-display/helper.tsx b/apps/admin/src/core/data-display/helper.tsx index 02a2b11d..5daff27a 100644 --- a/apps/admin/src/core/data-display/helper.tsx +++ b/apps/admin/src/core/data-display/helper.tsx @@ -1,9 +1,9 @@ import { cn } from "@animeaux/core" -import type { ActionColor } from "#i/core/actions" -import { Action } from "#i/core/actions" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { ActionColor } from "#i/core/actions.js" +import { Action } from "#i/core/actions.js" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" type HelperVariant = "error" | "info" | "success" | "warning" diff --git a/apps/admin/src/core/data-display/icon-inline.tsx b/apps/admin/src/core/data-display/icon-inline.tsx index 521fbcd0..d14648b8 100644 --- a/apps/admin/src/core/data-display/icon-inline.tsx +++ b/apps/admin/src/core/data-display/icon-inline.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" import { forwardRef } from "react" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const IconInline = forwardRef< React.ComponentRef, diff --git a/apps/admin/src/core/data-display/image.tsx b/apps/admin/src/core/data-display/image.tsx index f173db23..63da5aeb 100644 --- a/apps/admin/src/core/data-display/image.tsx +++ b/apps/admin/src/core/data-display/image.tsx @@ -3,10 +3,10 @@ import orderBy from "lodash.orderby" import { forwardRef } from "react" import type { Merge } from "type-fest" -import { CLOUDINARY_IMAGE_SIZE_LIMIT_MB } from "#i/core/cloudinary" -import { generateId } from "#i/core/id" -import type { ScreenSize } from "#i/generated/theme" -import { theme } from "#i/generated/theme" +import { CLOUDINARY_IMAGE_SIZE_LIMIT_MB } from "#i/core/cloudinary.js" +import { generateId } from "#i/core/id.js" +import type { ScreenSize } from "#i/generated/theme.js" +import { theme } from "#i/generated/theme.js" export const IMAGE_SIZE_LIMIT_MB = CLOUDINARY_IMAGE_SIZE_LIMIT_MB export const IMAGE_SIZE_LIMIT_B = diff --git a/apps/admin/src/core/data-display/instance-color.tsx b/apps/admin/src/core/data-display/instance-color.tsx index e2f316a7..cb1a4de8 100644 --- a/apps/admin/src/core/data-display/instance-color.tsx +++ b/apps/admin/src/core/data-display/instance-color.tsx @@ -1,7 +1,7 @@ import invariant from "tiny-invariant" -import type { AvatarColor } from "#i/core/data-display/avatar" -import { simpleHash } from "#i/core/simple-hash" +import type { AvatarColor } from "#i/core/data-display/avatar.js" +import { simpleHash } from "#i/core/simple-hash.js" const COLORS = [ "blue-light", diff --git a/apps/admin/src/core/data-display/markdown.tsx b/apps/admin/src/core/data-display/markdown.tsx index 6729640d..92a90f26 100644 --- a/apps/admin/src/core/data-display/markdown.tsx +++ b/apps/admin/src/core/data-display/markdown.tsx @@ -6,8 +6,8 @@ import ReactMarkdown from "react-markdown" import breaks from "remark-breaks" import gfm from "remark-gfm" -import { ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" +import { ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" export type MarkdownComponents = NonNullable diff --git a/apps/admin/src/core/db.server.ts b/apps/admin/src/core/db.server.ts index 38884dac..3e1d043f 100644 --- a/apps/admin/src/core/db.server.ts +++ b/apps/admin/src/core/db.server.ts @@ -1,15 +1,15 @@ import { AnimalDbDelegate, PickUpLocationDbDelegate, -} from "#i/animals/db.server" -import { BreedDbDelegate } from "#i/breeds/db.server" -import { ColorDbDelegate } from "#i/colors/db.server" -import { CurrentUserDbDelegate } from "#i/current-user/db.server" -import { EventDbDelegate } from "#i/events/db.server" -import { FosterFamilyDbDelegate } from "#i/foster-families/db.server" -import { PressArticleDbDelegate } from "#i/press-articles/db.server" -import { ShowDbDelegate } from "#i/show/db.server" -import { UserDbDelegate } from "#i/users/db.server" +} from "#i/animals/db.server.js" +import { BreedDbDelegate } from "#i/breeds/db.server.js" +import { ColorDbDelegate } from "#i/colors/db.server.js" +import { CurrentUserDbDelegate } from "#i/current-user/db.server.js" +import { EventDbDelegate } from "#i/events/db.server.js" +import { FosterFamilyDbDelegate } from "#i/foster-families/db.server.js" +import { PressArticleDbDelegate } from "#i/press-articles/db.server.js" +import { ShowDbDelegate } from "#i/show/db.server.js" +import { UserDbDelegate } from "#i/users/db.server.js" class DbClient { readonly animal = new AnimalDbDelegate() diff --git a/apps/admin/src/core/drag-and-drop.tsx b/apps/admin/src/core/drag-and-drop.tsx index 0c70449f..af9d1892 100644 --- a/apps/admin/src/core/drag-and-drop.tsx +++ b/apps/admin/src/core/drag-and-drop.tsx @@ -12,8 +12,8 @@ import { HTML5Backend } from "react-dnd-html5-backend" import { TouchBackend } from "react-dnd-touch-backend" import invariant from "tiny-invariant" -import { generateId } from "#i/core/id" -import { useIsTouchScreen } from "#i/core/touch-screen" +import { generateId } from "#i/core/id.js" +import { useIsTouchScreen } from "#i/core/touch-screen.js" export enum DragAndDropDirection { HORIZONTAL, diff --git a/apps/admin/src/core/form-elements/base-text-input.tsx b/apps/admin/src/core/form-elements/base-text-input.tsx index 42a0ec7d..0837ed71 100644 --- a/apps/admin/src/core/form-elements/base-text-input.tsx +++ b/apps/admin/src/core/form-elements/base-text-input.tsx @@ -2,7 +2,7 @@ import { cn, fromBooleanAttribute } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" import { createElement, forwardRef } from "react" -import { ensureArray } from "#i/core/collections" +import { ensureArray } from "#i/core/collections.js" type BaseTextInputVariant = "outlined" | "search" | "transparent" diff --git a/apps/admin/src/core/form-elements/checkbox.tsx b/apps/admin/src/core/form-elements/checkbox.tsx index fca86c07..f61f442d 100644 --- a/apps/admin/src/core/form-elements/checkbox.tsx +++ b/apps/admin/src/core/form-elements/checkbox.tsx @@ -2,7 +2,7 @@ import { cn } from "@animeaux/core" import { forwardRef } from "react" import type { Except } from "type-fest" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const Checkbox = forwardRef< React.ComponentRef<"input">, diff --git a/apps/admin/src/core/form-elements/controlled-input.tsx b/apps/admin/src/core/form-elements/controlled-input.tsx index 2fbb50f9..b6799d82 100644 --- a/apps/admin/src/core/form-elements/controlled-input.tsx +++ b/apps/admin/src/core/form-elements/controlled-input.tsx @@ -1,8 +1,8 @@ import { useState } from "react" -import type { InputProps } from "#i/core/form-elements/input" -import { Input } from "#i/core/form-elements/input" -import { useLayoutEffect } from "#i/core/use-layout-effect" +import type { InputProps } from "#i/core/form-elements/input.js" +import { Input } from "#i/core/form-elements/input.js" +import { useLayoutEffect } from "#i/core/use-layout-effect.js" /** * Input component to use when the value needs to be controlled by an external diff --git a/apps/admin/src/core/form-elements/field-checkboxes.tsx b/apps/admin/src/core/form-elements/field-checkboxes.tsx index 2bf19f0d..e59b8142 100644 --- a/apps/admin/src/core/form-elements/field-checkboxes.tsx +++ b/apps/admin/src/core/form-elements/field-checkboxes.tsx @@ -1,10 +1,13 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { InputChoice, InputsChoices } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { + InputChoice, + InputsChoices, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export function FieldCheckboxes({ field, diff --git a/apps/admin/src/core/form-elements/field-date.tsx b/apps/admin/src/core/form-elements/field-date.tsx index 3928f0a9..7cfacac6 100644 --- a/apps/admin/src/core/form-elements/field-date.tsx +++ b/apps/admin/src/core/form-elements/field-date.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" import { Icon } from "#i/generated/icon.js" export function FieldDate({ diff --git a/apps/admin/src/core/form-elements/field-decimal.tsx b/apps/admin/src/core/form-elements/field-decimal.tsx index bc89b495..7e5012b6 100644 --- a/apps/admin/src/core/form-elements/field-decimal.tsx +++ b/apps/admin/src/core/form-elements/field-decimal.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export function FieldDecimal({ field, diff --git a/apps/admin/src/core/form-elements/field-error-helper.tsx b/apps/admin/src/core/form-elements/field-error-helper.tsx index 413a32a8..0f0842a5 100644 --- a/apps/admin/src/core/form-elements/field-error-helper.tsx +++ b/apps/admin/src/core/form-elements/field-error-helper.tsx @@ -1,7 +1,7 @@ import type { FieldMetadata } from "@conform-to/react" import type { Except } from "type-fest" -import { Form } from "#i/core/form-elements/form" +import { Form } from "#i/core/form-elements/form.js" export function FieldErrorHelper({ field, diff --git a/apps/admin/src/core/form-elements/field-list.tsx b/apps/admin/src/core/form-elements/field-list.tsx index 24b33147..da898889 100644 --- a/apps/admin/src/core/form-elements/field-list.tsx +++ b/apps/admin/src/core/form-elements/field-list.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata, FormMetadata } from "@conform-to/react" -import { Action } from "#i/core/actions" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Icon } from "#i/generated/icon.js" export function FieldList>({ form, diff --git a/apps/admin/src/core/form-elements/field-numeric.tsx b/apps/admin/src/core/form-elements/field-numeric.tsx index e1c9eb4c..70cb07c4 100644 --- a/apps/admin/src/core/form-elements/field-numeric.tsx +++ b/apps/admin/src/core/form-elements/field-numeric.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export function FieldNumeric({ field, diff --git a/apps/admin/src/core/form-elements/field-on-off.tsx b/apps/admin/src/core/form-elements/field-on-off.tsx index 22ff1f32..86f819d9 100644 --- a/apps/admin/src/core/form-elements/field-on-off.tsx +++ b/apps/admin/src/core/form-elements/field-on-off.tsx @@ -1,10 +1,13 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { InputChoice, InputsChoices } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { + InputChoice, + InputsChoices, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export namespace OnOff { export const Enum = { diff --git a/apps/admin/src/core/form-elements/field-radios.tsx b/apps/admin/src/core/form-elements/field-radios.tsx index d9147f4c..13bbe71d 100644 --- a/apps/admin/src/core/form-elements/field-radios.tsx +++ b/apps/admin/src/core/form-elements/field-radios.tsx @@ -1,10 +1,13 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { InputChoice, InputsChoices } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { + InputChoice, + InputsChoices, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export function FieldRadios({ field, diff --git a/apps/admin/src/core/form-elements/field-switch.tsx b/apps/admin/src/core/form-elements/field-switch.tsx index 6d04cedf..37a0f066 100644 --- a/apps/admin/src/core/form-elements/field-switch.tsx +++ b/apps/admin/src/core/form-elements/field-switch.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Switch } from "#i/core/form-elements/switch" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Switch } from "#i/core/form-elements/switch.js" export function FieldSwitch({ field, diff --git a/apps/admin/src/core/form-elements/field-text.tsx b/apps/admin/src/core/form-elements/field-text.tsx index 2d672cbc..677aa654 100644 --- a/apps/admin/src/core/form-elements/field-text.tsx +++ b/apps/admin/src/core/form-elements/field-text.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export function FieldText({ field, diff --git a/apps/admin/src/core/form-elements/field-textarea.tsx b/apps/admin/src/core/form-elements/field-textarea.tsx index 5648987d..d37799fb 100644 --- a/apps/admin/src/core/form-elements/field-textarea.tsx +++ b/apps/admin/src/core/form-elements/field-textarea.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getTextareaProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Textarea } from "#i/core/form-elements/textarea" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Textarea } from "#i/core/form-elements/textarea.js" export function FieldTextarea({ field, diff --git a/apps/admin/src/core/form-elements/field-url.tsx b/apps/admin/src/core/form-elements/field-url.tsx index 8077d26d..06b99544 100644 --- a/apps/admin/src/core/form-elements/field-url.tsx +++ b/apps/admin/src/core/form-elements/field-url.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" import { Icon } from "#i/generated/icon.js" export function FieldUrl({ diff --git a/apps/admin/src/core/form-elements/form.tsx b/apps/admin/src/core/form-elements/form.tsx index 6f1da803..89fd0755 100644 --- a/apps/admin/src/core/form-elements/form.tsx +++ b/apps/admin/src/core/form-elements/form.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" -import { ErrorsInlineHelper } from "#i/core/data-display/errors" +import { ErrorsInlineHelper } from "#i/core/data-display/errors.js" export function Form({ className, diff --git a/apps/admin/src/core/form-elements/image-input.tsx b/apps/admin/src/core/form-elements/image-input.tsx index 681b8206..19baa2fc 100644 --- a/apps/admin/src/core/form-elements/image-input.tsx +++ b/apps/admin/src/core/form-elements/image-input.tsx @@ -2,15 +2,15 @@ import { cn, toBooleanAttribute } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" -import type { ActionProps } from "#i/core/actions" -import { Action } from "#i/core/actions" -import { DenseHelper } from "#i/core/data-display/helper" +import type { ActionProps } from "#i/core/actions.js" +import { Action } from "#i/core/actions.js" +import { DenseHelper } from "#i/core/data-display/helper.js" import { DataUrlOrDynamicImage, isImageOverSize, -} from "#i/core/data-display/image" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +} from "#i/core/data-display/image.js" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" const ImageInputNative = forwardRef< React.ComponentRef<"input">, diff --git a/apps/admin/src/core/form-elements/input-choice.tsx b/apps/admin/src/core/form-elements/input-choice.tsx index 2c48ac19..1c909890 100644 --- a/apps/admin/src/core/form-elements/input-choice.tsx +++ b/apps/admin/src/core/form-elements/input-choice.tsx @@ -2,9 +2,9 @@ import { cn } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" -import { Checkbox } from "#i/core/form-elements/checkbox" -import { Radio } from "#i/core/form-elements/radio" -import { RequiredStar } from "#i/core/form-elements/required-star" +import { Checkbox } from "#i/core/form-elements/checkbox.js" +import { Radio } from "#i/core/form-elements/radio.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" export const InputsChoices = forwardRef< React.ComponentRef, diff --git a/apps/admin/src/core/form-elements/input.tsx b/apps/admin/src/core/form-elements/input.tsx index b616ea1f..ae077ed9 100644 --- a/apps/admin/src/core/form-elements/input.tsx +++ b/apps/admin/src/core/form-elements/input.tsx @@ -2,8 +2,8 @@ import { toBooleanAttribute } from "@animeaux/core" import { forwardRef } from "react" import type { SetRequired } from "type-fest" -import { ensureArray } from "#i/core/collections" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" +import { ensureArray } from "#i/core/collections.js" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" export type InputProps = Omit< React.ComponentPropsWithoutRef, diff --git a/apps/admin/src/core/form-elements/password-input.tsx b/apps/admin/src/core/form-elements/password-input.tsx index b4d04af9..d6b9827d 100644 --- a/apps/admin/src/core/form-elements/password-input.tsx +++ b/apps/admin/src/core/form-elements/password-input.tsx @@ -1,7 +1,7 @@ import { forwardRef, useState } from "react" -import { Input } from "#i/core/form-elements/input" -import { Icon } from "#i/generated/icon" +import { Input } from "#i/core/form-elements/input.js" +import { Icon } from "#i/generated/icon.js" export const PasswordInput = Object.assign( forwardRef< diff --git a/apps/admin/src/core/form-elements/resource-input.tsx b/apps/admin/src/core/form-elements/resource-input.tsx index e9a0276e..fe17fd29 100644 --- a/apps/admin/src/core/form-elements/resource-input.tsx +++ b/apps/admin/src/core/form-elements/resource-input.tsx @@ -4,13 +4,16 @@ import * as Popover from "@radix-ui/react-popover" import * as VisuallyHidden from "@radix-ui/react-visually-hidden" import { forwardRef } from "react" -import { Item } from "#i/core/data-display/item" -import { HIGHLIGHT_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Card } from "#i/core/layout/card" -import { ScreenSizeValue, useScreenSizeCondition } from "#i/core/screen-size" -import { Icon } from "#i/generated/icon" -import { theme } from "#i/generated/theme" +import { Item } from "#i/core/data-display/item.js" +import { + HIGHLIGHT_COMPONENTS, + Markdown, +} from "#i/core/data-display/markdown.js" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Card } from "#i/core/layout/card.js" +import { ScreenSizeValue, useScreenSizeCondition } from "#i/core/screen-size.js" +import { Icon } from "#i/generated/icon.js" +import { theme } from "#i/generated/theme.js" type ResourceInputLayoutProps = { isOpened: boolean diff --git a/apps/admin/src/core/form-elements/textarea.tsx b/apps/admin/src/core/form-elements/textarea.tsx index 466a8397..42b57649 100644 --- a/apps/admin/src/core/form-elements/textarea.tsx +++ b/apps/admin/src/core/form-elements/textarea.tsx @@ -2,8 +2,8 @@ import autosize from "autosize" import { forwardRef, useRef } from "react" import invariant from "tiny-invariant" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { useLayoutEffect } from "#i/core/use-layout-effect" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { useLayoutEffect } from "#i/core/use-layout-effect.js" export const Textarea = forwardRef< React.ComponentRef<"textarea">, diff --git a/apps/admin/src/core/form-elements/toggle-input.tsx b/apps/admin/src/core/form-elements/toggle-input.tsx index 1b837d98..1a3482f2 100644 --- a/apps/admin/src/core/form-elements/toggle-input.tsx +++ b/apps/admin/src/core/form-elements/toggle-input.tsx @@ -1,5 +1,5 @@ -import { Item, ItemList } from "#i/core/data-display/item" -import { Icon } from "#i/generated/icon" +import { Item, ItemList } from "#i/core/data-display/item.js" +import { Icon } from "#i/generated/icon.js" export function ToggleInputList({ children }: { children?: React.ReactNode }) { return ( diff --git a/apps/admin/src/core/is-defined.server.ts b/apps/admin/src/core/is-defined.server.ts index e3cda75d..226f3d0f 100644 --- a/apps/admin/src/core/is-defined.server.ts +++ b/apps/admin/src/core/is-defined.server.ts @@ -1,4 +1,4 @@ -import { notFound } from "#i/core/response.server" +import { notFound } from "#i/core/response.server.js" export function assertIsDefined( value: T | null | undefined, diff --git a/apps/admin/src/core/layout/auth-page.tsx b/apps/admin/src/core/layout/auth-page.tsx index 3aa5354e..ea00ebee 100644 --- a/apps/admin/src/core/layout/auth-page.tsx +++ b/apps/admin/src/core/layout/auth-page.tsx @@ -1,4 +1,4 @@ -import { getPageTitle } from "#i/core/page-title" +import { getPageTitle } from "#i/core/page-title.js" import backgroundPattern from "#i/images/background-pattern.svg" import nameAndLogo from "#i/images/name-and-logo.svg" diff --git a/apps/admin/src/core/layout/avatar-card.tsx b/apps/admin/src/core/layout/avatar-card.tsx index 78a8611d..8312c23b 100644 --- a/apps/admin/src/core/layout/avatar-card.tsx +++ b/apps/admin/src/core/layout/avatar-card.tsx @@ -1,9 +1,9 @@ import { cn } from "@animeaux/core" import { cloneElement } from "react" -import type { AvatarColor } from "#i/core/data-display/avatar" -import { createCloudinaryUrl } from "#i/core/data-display/image" -import { Card } from "#i/core/layout/card" +import type { AvatarColor } from "#i/core/data-display/avatar.js" +import { createCloudinaryUrl } from "#i/core/data-display/image.js" +import { Card } from "#i/core/layout/card.js" export function AvatarCard({ children }: { children?: React.ReactNode }) { return {children} diff --git a/apps/admin/src/core/layout/page.tsx b/apps/admin/src/core/layout/page.tsx index 76cdb857..dba9e1f6 100644 --- a/apps/admin/src/core/layout/page.tsx +++ b/apps/admin/src/core/layout/page.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" import { Children, isValidElement } from "react" -import { BaseLink } from "#i/core/base-link" +import { BaseLink } from "#i/core/base-link.js" export const PageLayout = { Root: function PageLayoutRoot({ children }: React.PropsWithChildren) { diff --git a/apps/admin/src/core/layout/side-bar.tsx b/apps/admin/src/core/layout/side-bar.tsx index 69f8fc41..9e4e6258 100644 --- a/apps/admin/src/core/layout/side-bar.tsx +++ b/apps/admin/src/core/layout/side-bar.tsx @@ -1,9 +1,9 @@ import { cn } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { Icon } from "#i/generated/icon" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { Icon } from "#i/generated/icon.js" export type SideBarProps = { isOpened: boolean diff --git a/apps/admin/src/core/layout/tab-bar.tsx b/apps/admin/src/core/layout/tab-bar.tsx index 09250f8c..07653789 100644 --- a/apps/admin/src/core/layout/tab-bar.tsx +++ b/apps/admin/src/core/layout/tab-bar.tsx @@ -2,11 +2,11 @@ import { cn } from "@animeaux/core" import * as DropdownMenu from "@radix-ui/react-dropdown-menu" import { useState } from "react" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { theme } from "#i/generated/theme" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { theme } from "#i/generated/theme.js" export function TabBar({ children }: { children?: React.ReactNode }) { return ( diff --git a/apps/admin/src/core/navigation.ts b/apps/admin/src/core/navigation.ts index 5c0fd06d..caaab92f 100644 --- a/apps/admin/src/core/navigation.ts +++ b/apps/admin/src/core/navigation.ts @@ -3,8 +3,8 @@ import { useNavigate as useBaseNavigate } from "@remix-run/react" import { useCallback, useEffect } from "react" import type { NavigateOptions, To } from "react-router" -import type { LocationState } from "#i/core/location-state" -import { useLocationState } from "#i/core/location-state" +import type { LocationState } from "#i/core/location-state.js" +import { useLocationState } from "#i/core/location-state.js" export const Routes = { home: { toString: () => "/" as const }, diff --git a/apps/admin/src/core/popovers/dialog.tsx b/apps/admin/src/core/popovers/dialog.tsx index 33f33699..c0c4a349 100644 --- a/apps/admin/src/core/popovers/dialog.tsx +++ b/apps/admin/src/core/popovers/dialog.tsx @@ -2,11 +2,11 @@ import { cn } from "@animeaux/core" import * as RadixDialog from "@radix-ui/react-dialog" import { createContext, useContext, useMemo } from "react" -import type { ActionColor } from "#i/core/actions" -import { Action } from "#i/core/actions" -import { Overlay } from "#i/core/popovers/overlay" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { ActionColor } from "#i/core/actions.js" +import { Action } from "#i/core/actions.js" +import { Overlay } from "#i/core/popovers/overlay.js" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" type DialogVariant = "alert" | "info" | "warning" diff --git a/apps/admin/src/core/popovers/dropdown-sheet.tsx b/apps/admin/src/core/popovers/dropdown-sheet.tsx index 296f4624..6c7e8bd1 100644 --- a/apps/admin/src/core/popovers/dropdown-sheet.tsx +++ b/apps/admin/src/core/popovers/dropdown-sheet.tsx @@ -4,8 +4,8 @@ import * as Popover from "@radix-ui/react-popover" import { createContext, forwardRef, useContext } from "react" import invariant from "tiny-invariant" -import { Overlay } from "#i/core/popovers/overlay" -import { ScreenSizeValue, useScreenSizeCondition } from "#i/core/screen-size" +import { Overlay } from "#i/core/popovers/overlay.js" +import { ScreenSizeValue, useScreenSizeCondition } from "#i/core/screen-size.js" type Component = "popover" | "dialog" const DropdownSheetContext = createContext(undefined) diff --git a/apps/admin/src/core/screen-size.tsx b/apps/admin/src/core/screen-size.tsx index 3d8c8cd7..bece9cb0 100644 --- a/apps/admin/src/core/screen-size.tsx +++ b/apps/admin/src/core/screen-size.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from "react" -import type { ScreenSize } from "#i/generated/theme" -import { theme } from "#i/generated/theme" +import type { ScreenSize } from "#i/generated/theme.js" +import { theme } from "#i/generated/theme.js" export const ScreenSizeValue = Object.fromEntries( Object.entries(theme.screens).map(([key, value]) => [ diff --git a/apps/admin/src/current-user/db.server.ts b/apps/admin/src/current-user/db.server.ts index d965abab..ae2f7107 100644 --- a/apps/admin/src/current-user/db.server.ts +++ b/apps/admin/src/current-user/db.server.ts @@ -4,16 +4,19 @@ import { Prisma, UserGroup } from "@animeaux/prisma/server" import { redirect } from "@remix-run/node" import { createPath } from "history" -import { EmailAlreadyUsedError, PrismaErrorCodes } from "#i/core/errors.server" -import { setCurrentUserForMonitoring } from "#i/core/monitoring.server" -import { Routes } from "#i/core/navigation" -import { prisma } from "#i/core/prisma.server" -import { NextSearchParams } from "#i/core/search-params" +import { + EmailAlreadyUsedError, + PrismaErrorCodes, +} from "#i/core/errors.server.js" +import { setCurrentUserForMonitoring } from "#i/core/monitoring.server.js" +import { Routes } from "#i/core/navigation.js" +import { prisma } from "#i/core/prisma.server.js" +import { NextSearchParams } from "#i/core/search-params.js" import { destroyCurrentUserSession, getCurrentUserSession, -} from "#i/current-user/session.server" -import { hasGroups } from "#i/users/groups" +} from "#i/current-user/session.server.js" +import { hasGroups } from "#i/users/groups.js" export class CurrentUserDbDelegate { async get( diff --git a/apps/admin/src/current-user/groups.server.ts b/apps/admin/src/current-user/groups.server.ts index 2eea660e..da41fac5 100644 --- a/apps/admin/src/current-user/groups.server.ts +++ b/apps/admin/src/current-user/groups.server.ts @@ -1,7 +1,7 @@ import type { User, UserGroup } from "@animeaux/prisma/server" -import { forbidden } from "#i/core/response.server" -import { hasGroups } from "#i/users/groups" +import { forbidden } from "#i/core/response.server.js" +import { hasGroups } from "#i/users/groups.js" export function assertCurrentUserHasGroups( user: Pick, diff --git a/apps/admin/src/entry.client.tsx b/apps/admin/src/entry.client.tsx index 349e7cae..7ab85f8f 100644 --- a/apps/admin/src/entry.client.tsx +++ b/apps/admin/src/entry.client.tsx @@ -2,12 +2,12 @@ import { RemixBrowser } from "@remix-run/react" import { startTransition, StrictMode } from "react" import { hydrateRoot } from "react-dom/client" -import { initMonitoring } from "#i/core/monitoring.client" +import { initMonitoring } from "#i/core/monitoring.client.js" initMonitoring() if (process.env.NODE_ENV === "development") { - void import("#i/mocks/mocks.client").then((module) => module.startWorker()) + void import("#i/mocks/mocks.client.js").then((module) => module.startWorker()) } startTransition(() => { diff --git a/apps/admin/src/entry.server.tsx b/apps/admin/src/entry.server.tsx index 23ac7396..31ba58ef 100644 --- a/apps/admin/src/entry.server.tsx +++ b/apps/admin/src/entry.server.tsx @@ -8,10 +8,10 @@ import { isbot } from "isbot" import type { RenderToPipeableStreamOptions } from "react-dom/server" import { renderToPipeableStream } from "react-dom/server" -import { checkEnv, getClientEnv } from "#i/core/env.server" -import { initMonitoring } from "#i/core/monitoring.server" -import { extendCurrentUserPreferences } from "#i/current-user/preferences.server" -import { extendCurrentUserSession } from "#i/current-user/session.server" +import { checkEnv, getClientEnv } from "#i/core/env.server.js" +import { initMonitoring } from "#i/core/monitoring.server.js" +import { extendCurrentUserPreferences } from "#i/current-user/preferences.server.js" +import { extendCurrentUserSession } from "#i/current-user/session.server.js" checkEnv() global.CLIENT_ENV = getClientEnv() @@ -20,11 +20,11 @@ initMonitoring() const ABORT_DELAY_MS = 5000 if (process.env.NODE_ENV === "development") { - void import("#i/mocks/mocks.server").then((module) => module.startWorker()) + void import("#i/mocks/mocks.server.js").then((module) => module.startWorker()) } if (process.env.ENABLE_CRONS === "true") { - void import("#i/core/crons/crons.server").then((module) => + void import("#i/core/crons/crons.server.js").then((module) => module.startCrons(), ) } diff --git a/apps/admin/src/events/avatar.tsx b/apps/admin/src/events/avatar.tsx index 7e78f9b3..b249aa68 100644 --- a/apps/admin/src/events/avatar.tsx +++ b/apps/admin/src/events/avatar.tsx @@ -3,7 +3,7 @@ import type { Event } from "@animeaux/prisma" import type { SerializeFrom } from "@remix-run/node" import { DateTime } from "luxon" -import { Avatar } from "#i/core/data-display/avatar" +import { Avatar } from "#i/core/data-display/avatar.js" export function EventAvatar({ event, diff --git a/apps/admin/src/events/db.server.ts b/apps/admin/src/events/db.server.ts index ee30c81b..f355a4b4 100644 --- a/apps/admin/src/events/db.server.ts +++ b/apps/admin/src/events/db.server.ts @@ -2,9 +2,9 @@ import type { Event } from "@animeaux/prisma/server" import { Prisma } from "@animeaux/prisma/server" import { DateTime } from "luxon" -import { deleteImage } from "#i/core/cloudinary.server" -import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server" -import { prisma } from "#i/core/prisma.server" +import { deleteImage } from "#i/core/cloudinary.server.js" +import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server.js" +import { prisma } from "#i/core/prisma.server.js" export class InvalidDateRangeError extends Error {} diff --git a/apps/admin/src/events/form.tsx b/apps/admin/src/events/form.tsx index 09104a78..8739a85a 100644 --- a/apps/admin/src/events/form.tsx +++ b/apps/admin/src/events/form.tsx @@ -8,23 +8,23 @@ import { useFormAction } from "@remix-run/react" import { useEffect, useRef, useState } from "react" import invariant from "tiny-invariant" -import { Action } from "#i/core/actions" -import type { ImageFileOrId } from "#i/core/data-display/image" +import { Action } from "#i/core/actions.js" +import type { ImageFileOrId } from "#i/core/data-display/image.js" import { IMAGE_SIZE_LIMIT_MB, isImageFile, isImageOverSize, readFile, -} from "#i/core/data-display/image" -import { toIsoDateValue } from "#i/core/dates" -import { Form } from "#i/core/form-elements/form" -import { ImageInput } from "#i/core/form-elements/image-input" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Switch } from "#i/core/form-elements/switch" -import { Textarea } from "#i/core/form-elements/textarea" -import { Separator } from "#i/core/layout/separator" -import { Icon } from "#i/generated/icon" +} from "#i/core/data-display/image.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { Form } from "#i/core/form-elements/form.js" +import { ImageInput } from "#i/core/form-elements/image-input.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Switch } from "#i/core/form-elements/switch.js" +import { Textarea } from "#i/core/form-elements/textarea.js" +import { Separator } from "#i/core/layout/separator.js" +import { Icon } from "#i/generated/icon.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/foster-families/availability.tsx b/apps/admin/src/foster-families/availability.tsx index 91656938..3c25dea7 100644 --- a/apps/admin/src/foster-families/availability.tsx +++ b/apps/admin/src/foster-families/availability.tsx @@ -2,7 +2,7 @@ import { cn } from "@animeaux/core" import { FosterFamilyAvailability } from "@animeaux/prisma" import type { Except } from "type-fest" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const AVAILABILITY_TRANSLATION: Record< FosterFamilyAvailability, diff --git a/apps/admin/src/foster-families/avatar.tsx b/apps/admin/src/foster-families/avatar.tsx index ae6bbcbc..b5f35caf 100644 --- a/apps/admin/src/foster-families/avatar.tsx +++ b/apps/admin/src/foster-families/avatar.tsx @@ -1,9 +1,9 @@ import { FosterFamilyAvailability } from "@animeaux/prisma" import type { Except } from "type-fest" -import type { AvatarColor } from "#i/core/data-display/avatar" -import { Avatar } from "#i/core/data-display/avatar" -import { Icon } from "#i/generated/icon" +import type { AvatarColor } from "#i/core/data-display/avatar.js" +import { Avatar } from "#i/core/data-display/avatar.js" +import { Icon } from "#i/generated/icon.js" export function FosterFamilyAvatar({ availability, diff --git a/apps/admin/src/foster-families/crons.server.ts b/apps/admin/src/foster-families/crons.server.ts index 29737f29..5eca534d 100644 --- a/apps/admin/src/foster-families/crons.server.ts +++ b/apps/admin/src/foster-families/crons.server.ts @@ -5,8 +5,8 @@ import { DateTime } from "luxon" import { ActivityAction } from "#i/activity/action.js" import { Activity } from "#i/activity/db.server.js" import { ActivityResource } from "#i/activity/resource.js" -import type { CronDefinition } from "#i/core/crons/shared.server" -import { prisma } from "#i/core/prisma.server" +import type { CronDefinition } from "#i/core/crons/shared.server.js" +import { prisma } from "#i/core/prisma.server.js" export const ExpireFosterFamilyAvailabilityCron: CronDefinition = { name: "Expire foster family availability", diff --git a/apps/admin/src/foster-families/db.server.ts b/apps/admin/src/foster-families/db.server.ts index 311cdc7d..6f2f122d 100644 --- a/apps/admin/src/foster-families/db.server.ts +++ b/apps/admin/src/foster-families/db.server.ts @@ -16,10 +16,10 @@ import { NotFoundError, PrismaErrorCodes, ReferencedError, -} from "#i/core/errors.server" -import { orderByRank } from "#i/core/order-by-rank" -import { prisma } from "#i/core/prisma.server" -import type { FosterFamilySearchParams } from "#i/foster-families/search-params" +} from "#i/core/errors.server.js" +import { orderByRank } from "#i/core/order-by-rank.js" +import { prisma } from "#i/core/prisma.server.js" +import type { FosterFamilySearchParams } from "#i/foster-families/search-params.js" export class MissingSpeciesToHostError extends Error {} export class InvalidAvailabilityDateError extends Error {} diff --git a/apps/admin/src/foster-families/filter-form.tsx b/apps/admin/src/foster-families/filter-form.tsx index a9df8c70..07f4c3cd 100644 --- a/apps/admin/src/foster-families/filter-form.tsx +++ b/apps/admin/src/foster-families/filter-form.tsx @@ -4,21 +4,21 @@ import { SORTED_SPECIES, SPECIES_ICON, SPECIES_TRANSLATION, -} from "#i/animals/species" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { ControlledInput } from "#i/core/form-elements/controlled-input" -import { Form } from "#i/core/form-elements/form" +} from "#i/animals/species.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" +import { Form } from "#i/core/form-elements/form.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" +} from "#i/core/form-elements/toggle-input.js" import { AVAILABILITY_TRANSLATION, AvailabilityIcon, SORTED_AVAILABILITIES, -} from "#i/foster-families/availability" +} from "#i/foster-families/availability.js" import { GARDEN_TRANSLATION, HOUSING_TRANSLATION, @@ -26,9 +26,9 @@ import { ICON_BY_HOUSING, SORTED_GARDEN, SORTED_HOUSING, -} from "#i/foster-families/housing" -import { FosterFamilySearchParams } from "#i/foster-families/search-params" -import { Icon } from "#i/generated/icon" +} from "#i/foster-families/housing.js" +import { FosterFamilySearchParams } from "#i/foster-families/search-params.js" +import { Icon } from "#i/generated/icon.js" export function FosterFamilyFilters({ possibleCities, diff --git a/apps/admin/src/foster-families/form.tsx b/apps/admin/src/foster-families/form.tsx index 24f73816..e526b480 100644 --- a/apps/admin/src/foster-families/form.tsx +++ b/apps/admin/src/foster-families/form.tsx @@ -13,31 +13,31 @@ import { useLocation } from "@remix-run/react" import { DateTime } from "luxon" import { useEffect, useRef, useState } from "react" -import { SORTED_SPECIES, SPECIES_TRANSLATION } from "#i/animals/species" -import { Action } from "#i/core/actions" -import { toIsoDateValue } from "#i/core/dates" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" +import { SORTED_SPECIES, SPECIES_TRANSLATION } from "#i/animals/species.js" +import { Action } from "#i/core/actions.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" import { CheckboxInput, CheckboxInputList, RadioInput, RadioInputList, -} from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Textarea } from "#i/core/form-elements/textarea" -import { Separator } from "#i/core/layout/separator" +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Textarea } from "#i/core/form-elements/textarea.js" +import { Separator } from "#i/core/layout/separator.js" import { AVAILABILITY_TRANSLATION, SORTED_AVAILABILITIES, -} from "#i/foster-families/availability" +} from "#i/foster-families/availability.js" import { GARDEN_TRANSLATION, HOUSING_TRANSLATION, SORTED_GARDEN, SORTED_HOUSING, -} from "#i/foster-families/housing" -import { Icon } from "#i/generated/icon" +} from "#i/foster-families/housing.js" +import { Icon } from "#i/generated/icon.js" const actionSchema = zu.object({ address: zu.string().trim().min(1, "Veuillez entrer une adresse"), diff --git a/apps/admin/src/foster-families/housing.tsx b/apps/admin/src/foster-families/housing.tsx index 4f85326d..62c51022 100644 --- a/apps/admin/src/foster-families/housing.tsx +++ b/apps/admin/src/foster-families/housing.tsx @@ -1,6 +1,6 @@ import { FosterFamilyGarden, FosterFamilyHousing } from "@animeaux/prisma" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const SORTED_HOUSING = [ FosterFamilyHousing.HOUSE, diff --git a/apps/admin/src/foster-families/item.tsx b/apps/admin/src/foster-families/item.tsx index de2919e4..600f068b 100644 --- a/apps/admin/src/foster-families/item.tsx +++ b/apps/admin/src/foster-families/item.tsx @@ -2,8 +2,8 @@ import { getShortLocation } from "@animeaux/core" import type { FosterFamilyAvailability } from "@animeaux/prisma" import { forwardRef } from "react" -import { SuggestionItem } from "#i/core/form-elements/resource-input" -import { FosterFamilyAvatar } from "#i/foster-families/avatar" +import { SuggestionItem } from "#i/core/form-elements/resource-input.js" +import { FosterFamilyAvatar } from "#i/foster-families/avatar.js" export const FosterFamilySuggestionItem = forwardRef< React.ComponentRef, diff --git a/apps/admin/src/mocks/cloudinary/cloudinary.client.ts b/apps/admin/src/mocks/cloudinary/cloudinary.client.ts index c20f939a..e83c6739 100644 --- a/apps/admin/src/mocks/cloudinary/cloudinary.client.ts +++ b/apps/admin/src/mocks/cloudinary/cloudinary.client.ts @@ -2,7 +2,7 @@ import type { HttpResponseResolver, StrictResponse } from "msw" import { http, HttpResponse } from "msw" import invariant from "tiny-invariant" -import { simpleHash } from "#i/core/simple-hash" +import { simpleHash } from "#i/core/simple-hash.js" const SVGS = [ // Cat diff --git a/apps/admin/src/mocks/mocks.client.ts b/apps/admin/src/mocks/mocks.client.ts index f66e96e1..d3fea417 100644 --- a/apps/admin/src/mocks/mocks.client.ts +++ b/apps/admin/src/mocks/mocks.client.ts @@ -1,6 +1,6 @@ import { setupWorker } from "msw/browser" -import { cloudinaryHandlers } from "#i/mocks/cloudinary/cloudinary.client" +import { cloudinaryHandlers } from "#i/mocks/cloudinary/cloudinary.client.js" const worker = setupWorker(...cloudinaryHandlers) diff --git a/apps/admin/src/mocks/mocks.server.ts b/apps/admin/src/mocks/mocks.server.ts index b31084ed..ca884ccc 100644 --- a/apps/admin/src/mocks/mocks.server.ts +++ b/apps/admin/src/mocks/mocks.server.ts @@ -1,6 +1,6 @@ import { setupServer } from "msw/node" -import { cloudinaryHandlers } from "#i/mocks/cloudinary/cloudinary.server" +import { cloudinaryHandlers } from "#i/mocks/cloudinary/cloudinary.server.js" const server = setupServer(...cloudinaryHandlers) diff --git a/apps/admin/src/press-articles/db.server.ts b/apps/admin/src/press-articles/db.server.ts index fbfa9653..9c6fb3f8 100644 --- a/apps/admin/src/press-articles/db.server.ts +++ b/apps/admin/src/press-articles/db.server.ts @@ -2,8 +2,8 @@ import type { PressArticle } from "@animeaux/prisma/server" import { Prisma } from "@animeaux/prisma/server" import { DateTime } from "luxon" -import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server" -import { prisma } from "#i/core/prisma.server" +import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server.js" +import { prisma } from "#i/core/prisma.server.js" export class UrlAlreadyUsedError extends Error {} export class InvalidPublicationDateError extends Error {} diff --git a/apps/admin/src/press-articles/form.tsx b/apps/admin/src/press-articles/form.tsx index 748c9dd6..d779147e 100644 --- a/apps/admin/src/press-articles/form.tsx +++ b/apps/admin/src/press-articles/form.tsx @@ -3,15 +3,15 @@ import { zu } from "@animeaux/zod-utils" import type { FetcherWithComponents } from "@remix-run/react" import { useEffect, useRef, useState } from "react" -import { Action } from "#i/core/actions" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Switch } from "#i/core/form-elements/switch" -import { Separator } from "#i/core/layout/separator" -import { Spinner } from "#i/core/loaders/spinner" -import { Icon } from "#i/generated/icon" -import { useScrapUrlFetcher } from "#i/routes/resources.scrap-url/hook" +import { Action } from "#i/core/actions.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Switch } from "#i/core/form-elements/switch.js" +import { Separator } from "#i/core/layout/separator.js" +import { Spinner } from "#i/core/loaders/spinner.js" +import { Icon } from "#i/generated/icon.js" +import { useScrapUrlFetcher } from "#i/routes/resources.scrap-url/hook.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/root.tsx b/apps/admin/src/root.tsx index 00851edb..84646797 100644 --- a/apps/admin/src/root.tsx +++ b/apps/admin/src/root.tsx @@ -14,10 +14,10 @@ import { import { withSentry } from "@sentry/remix" import { Settings } from "luxon" -import { ErrorPage } from "#i/core/data-display/error-page" -import { useRouteHandles } from "#i/core/handles" -import { getPageTitle } from "#i/core/page-title" -import { theme } from "#i/generated/theme" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { useRouteHandles } from "#i/core/handles.js" +import { getPageTitle } from "#i/core/page-title.js" +import { theme } from "#i/generated/theme.js" import appleTouchIcon from "#i/images/apple-touch-icon.png" import favicon from "#i/images/favicon.svg" import maskIcon from "#i/images/mask-icon.svg" diff --git a/apps/admin/src/routes/[manifest.json].tsx b/apps/admin/src/routes/[manifest.json].tsx index bb2f6d6c..4f520b54 100644 --- a/apps/admin/src/routes/[manifest.json].tsx +++ b/apps/admin/src/routes/[manifest.json].tsx @@ -2,9 +2,9 @@ import type { LinksFunction, LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import Bowser from "bowser" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { theme } from "#i/generated/theme" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { theme } from "#i/generated/theme.js" import googleTouchIcon from "#i/images/google-touch-icon.png" import googleTouchIconMac from "#i/images/google-touch-icon-mac.png" import googleTouchIconMaskable from "#i/images/google-touch-icon-maskable.png" diff --git a/apps/admin/src/routes/_index.tsx b/apps/admin/src/routes/_index.tsx index 0fef283f..54a37f82 100644 --- a/apps/admin/src/routes/_index.tsx +++ b/apps/admin/src/routes/_index.tsx @@ -2,8 +2,8 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { redirect } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { Routes } from "#i/core/navigation" +import { db } from "#i/core/db.server.js" +import { Routes } from "#i/core/navigation.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.$.tsx b/apps/admin/src/routes/_layout.$.tsx index b396ff23..1e55c9fc 100644 --- a/apps/admin/src/routes/_layout.$.tsx +++ b/apps/admin/src/routes/_layout.$.tsx @@ -1,9 +1,9 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" export async function loader() { throw notFound() diff --git a/apps/admin/src/routes/_layout.activity.$id/card-details.tsx b/apps/admin/src/routes/_layout.activity.$id/card-details.tsx index 092cd38f..653cd5bd 100644 --- a/apps/admin/src/routes/_layout.activity.$id/card-details.tsx +++ b/apps/admin/src/routes/_layout.activity.$id/card-details.tsx @@ -15,7 +15,7 @@ import { FosterFamilyAvatar } from "#i/foster-families/avatar.js" import { Icon } from "#i/generated/icon.js" import { UserAvatar } from "#i/users/avatar.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDetails() { return ( diff --git a/apps/admin/src/routes/_layout.activity.$id/card-diff.tsx b/apps/admin/src/routes/_layout.activity.$id/card-diff.tsx index cb7844ec..c55f79b3 100644 --- a/apps/admin/src/routes/_layout.activity.$id/card-diff.tsx +++ b/apps/admin/src/routes/_layout.activity.$id/card-diff.tsx @@ -6,7 +6,7 @@ import type { Except } from "type-fest" import { Card } from "#i/core/layout/card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" namespace DiffSection { export const Root = forwardRef< diff --git a/apps/admin/src/routes/_layout.activity.$id/header.tsx b/apps/admin/src/routes/_layout.activity.$id/header.tsx index acea055a..c7ca7a38 100644 --- a/apps/admin/src/routes/_layout.activity.$id/header.tsx +++ b/apps/admin/src/routes/_layout.activity.$id/header.tsx @@ -3,7 +3,7 @@ import { DateTime } from "luxon" import { PageLayout } from "#i/core/layout/page.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function Header() { const { activity } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.activity.$id/loader.server.ts b/apps/admin/src/routes/_layout.activity.$id/loader.server.ts index 69d359b3..35c6ffe7 100644 --- a/apps/admin/src/routes/_layout.activity.$id/loader.server.ts +++ b/apps/admin/src/routes/_layout.activity.$id/loader.server.ts @@ -7,7 +7,7 @@ import { Activity } from "#i/activity/db.server.js" import { db } from "#i/core/db.server.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.activity.$id/route.tsx b/apps/admin/src/routes/_layout.activity.$id/route.tsx index 147d83f4..2442ff5d 100644 --- a/apps/admin/src/routes/_layout.activity.$id/route.tsx +++ b/apps/admin/src/routes/_layout.activity.$id/route.tsx @@ -5,12 +5,12 @@ import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" import { PageLayout } from "#i/core/layout/page.js" import { getPageTitle } from "#i/core/page-title.js" -import { CardDetails } from "./card-details" -import { CardDiff } from "./card-diff" -import { Header } from "./header" -import type { loader } from "./loader.server" +import { CardDetails } from "./card-details.js" +import { CardDiff } from "./card-diff.js" +import { Header } from "./header.js" +import type { loader } from "./loader.server.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [ diff --git a/apps/admin/src/routes/_layout.activity._index/card-list.tsx b/apps/admin/src/routes/_layout.activity._index/card-list.tsx index ef94447b..a6963042 100644 --- a/apps/admin/src/routes/_layout.activity._index/card-list.tsx +++ b/apps/admin/src/routes/_layout.activity._index/card-list.tsx @@ -4,12 +4,12 @@ import { useLoaderData } from "@remix-run/react" import { ActivitySearchParams } from "#i/activity/search-params.js" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { Paginator } from "#i/core/controllers/paginator" +import { Paginator } from "#i/core/controllers/paginator.js" import { SimpleEmpty } from "#i/core/data-display/empty.js" -import { Card } from "#i/core/layout/card" +import { Card } from "#i/core/layout/card.js" -import { ActivityItem } from "./item" -import type { loader } from "./loader.server" +import { ActivityItem } from "./item.js" +import type { loader } from "./loader.server.js" export function CardList() { const { totalCount, pageCount, activities } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.activity._index/item.tsx b/apps/admin/src/routes/_layout.activity._index/item.tsx index 420aa002..ea69de02 100644 --- a/apps/admin/src/routes/_layout.activity._index/item.tsx +++ b/apps/admin/src/routes/_layout.activity._index/item.tsx @@ -14,7 +14,7 @@ import { FosterFamilyAvatar } from "#i/foster-families/avatar.js" import { Icon } from "#i/generated/icon.js" import { UserAvatar } from "#i/users/avatar.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function ActivityItem({ activity, diff --git a/apps/admin/src/routes/_layout.activity._index/loader.server.ts b/apps/admin/src/routes/_layout.activity._index/loader.server.ts index 16a9983c..106be7e0 100644 --- a/apps/admin/src/routes/_layout.activity._index/loader.server.ts +++ b/apps/admin/src/routes/_layout.activity._index/loader.server.ts @@ -5,10 +5,10 @@ import { promiseHash } from "remix-utils/promise" import { Activity } from "#i/activity/db.server.js" import { ActivitySearchParams } from "#i/activity/search-params.js" -import { db } from "#i/core/db.server" +import { db } from "#i/core/db.server.js" import { prisma } from "#i/core/prisma.server.js" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.activity._index/route.tsx b/apps/admin/src/routes/_layout.activity._index/route.tsx index 807c812c..31d6b630 100644 --- a/apps/admin/src/routes/_layout.activity._index/route.tsx +++ b/apps/admin/src/routes/_layout.activity._index/route.tsx @@ -2,15 +2,15 @@ import type { MetaFunction } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { ActivityFilters } from "#i/activity/filter-form.js" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" -import { CardList } from "./card-list" -import type { loader } from "./loader.server" +import { CardList } from "./card-list.js" +import type { loader } from "./loader.server.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = () => { return [{ title: getPageTitle("Activité") }] diff --git a/apps/admin/src/routes/_layout.animals.$.tsx b/apps/admin/src/routes/_layout.animals.$.tsx index b396ff23..1e55c9fc 100644 --- a/apps/admin/src/routes/_layout.animals.$.tsx +++ b/apps/admin/src/routes/_layout.animals.$.tsx @@ -1,9 +1,9 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" export async function loader() { throw notFound() diff --git a/apps/admin/src/routes/_layout.animals.$id._index/route.tsx b/apps/admin/src/routes/_layout.animals.$id._index/route.tsx index b234fa59..1e346e5a 100644 --- a/apps/admin/src/routes/_layout.animals.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.animals.$id._index/route.tsx @@ -10,38 +10,38 @@ import { json, redirect } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { AgreementItem } from "#i/animals/agreements" -import { AnimalAvatar } from "#i/animals/avatar" -import { GENDER_ICON } from "#i/animals/gender" -import { ActionFormData as ProfileActionFormData } from "#i/animals/profile/form" -import { getAnimalDisplayName } from "#i/animals/profile/name" -import { ActionFormData as SituationActionFormData } from "#i/animals/situation/form" -import { getSpeciesLabels, SPECIES_ICON } from "#i/animals/species" -import { StatusBadge } from "#i/animals/status" -import { Action } from "#i/core/actions" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { DynamicImage } from "#i/core/data-display/image" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { AvatarCard } from "#i/core/layout/avatar-card" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { Icon } from "#i/generated/icon" -import { hasGroups } from "#i/users/groups" - -import { SituationCard } from "./situation-card" +import { AgreementItem } from "#i/animals/agreements.js" +import { AnimalAvatar } from "#i/animals/avatar.js" +import { GENDER_ICON } from "#i/animals/gender.js" +import { ActionFormData as ProfileActionFormData } from "#i/animals/profile/form.js" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" +import { ActionFormData as SituationActionFormData } from "#i/animals/situation/form.js" +import { getSpeciesLabels, SPECIES_ICON } from "#i/animals/species.js" +import { StatusBadge } from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { AvatarCard } from "#i/core/layout/avatar-card.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { Icon } from "#i/generated/icon.js" +import { hasGroups } from "#i/users/groups.js" + +import { SituationCard } from "./situation-card.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.animals.$id._index/situation-card.tsx b/apps/admin/src/routes/_layout.animals.$id._index/situation-card.tsx index 4f3b7540..4a5c4a7b 100644 --- a/apps/admin/src/routes/_layout.animals.$id._index/situation-card.tsx +++ b/apps/admin/src/routes/_layout.animals.$id._index/situation-card.tsx @@ -10,32 +10,35 @@ import { import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { ADOPTION_OPTION_TRANSLATION } from "#i/animals/adoption" -import { PICK_UP_REASON_TRANSLATION } from "#i/animals/pick-up" +import { ADOPTION_OPTION_TRANSLATION } from "#i/animals/adoption.js" +import { PICK_UP_REASON_TRANSLATION } from "#i/animals/pick-up.js" import { SCREENING_RESULT_ICON, SCREENING_RESULT_TRANSLATION, -} from "#i/animals/screening" +} from "#i/animals/screening.js" import { formatNextVaccinationDate, getNextVaccinationState, hasUpCommingSterilisation, -} from "#i/animals/situation/health" -import { STATUS_TRANSLATION, StatusIcon } from "#i/animals/status" -import { Action, ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { InlineHelper } from "#i/core/data-display/helper" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { HIGHLIGHT_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { DropdownSheet } from "#i/core/popovers/dropdown-sheet" -import { FosterFamilyAvatar } from "#i/foster-families/avatar" -import { Icon } from "#i/generated/icon" -import { theme } from "#i/generated/theme" -import { UserAvatar } from "#i/users/avatar" - -import type { loader } from "./route" +} from "#i/animals/situation/health.js" +import { STATUS_TRANSLATION, StatusIcon } from "#i/animals/status.js" +import { Action, ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { InlineHelper } from "#i/core/data-display/helper.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { + HIGHLIGHT_COMPONENTS, + Markdown, +} from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { DropdownSheet } from "#i/core/popovers/dropdown-sheet.js" +import { FosterFamilyAvatar } from "#i/foster-families/avatar.js" +import { Icon } from "#i/generated/icon.js" +import { theme } from "#i/generated/theme.js" +import { UserAvatar } from "#i/users/avatar.js" + +import type { loader } from "./route.js" export function SituationCard() { const { canEdit, animal, canSeeFosterFamilyDetails, canSeeManagerDetails } = diff --git a/apps/admin/src/routes/_layout.animals.$id.edit.pictures.tsx b/apps/admin/src/routes/_layout.animals.$id.edit.pictures.tsx index 668ebac6..b55675e2 100644 --- a/apps/admin/src/routes/_layout.animals.$id.edit.pictures.tsx +++ b/apps/admin/src/routes/_layout.animals.$id.edit.pictures.tsx @@ -14,23 +14,23 @@ import { import { useFetcher, useLoaderData } from "@remix-run/react" import invariant from "tiny-invariant" -import { ActionFormData, AnimalPicturesForm } from "#i/animals/pictures/form" -import { getAnimalDisplayName } from "#i/animals/profile/name" +import { ActionFormData, AnimalPicturesForm } from "#i/animals/pictures/form.js" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" import { CloudinaryUploadApiError, createCloudinaryUploadHandler, -} from "#i/core/cloudinary.server" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +} from "#i/core/cloudinary.server.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.animals.$id.edit.profile.tsx b/apps/admin/src/routes/_layout.animals.$id.edit.profile.tsx index e7baf830..e3f97812 100644 --- a/apps/admin/src/routes/_layout.animals.$id.edit.profile.tsx +++ b/apps/admin/src/routes/_layout.animals.$id.edit.profile.tsx @@ -8,20 +8,20 @@ import type { import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { BreedNotForSpeciesError } from "#i/animals/profile/db.server" -import { ActionFormData, AnimalProfileForm } from "#i/animals/profile/form" -import { getAnimalDisplayName } from "#i/animals/profile/name" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { BreedNotForSpeciesError } from "#i/animals/profile/db.server.js" +import { ActionFormData, AnimalProfileForm } from "#i/animals/profile/form.js" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.animals.$id.edit.situation.tsx b/apps/admin/src/routes/_layout.animals.$id.edit.situation.tsx index e796719c..47f760cc 100644 --- a/apps/admin/src/routes/_layout.animals.$id.edit.situation.tsx +++ b/apps/admin/src/routes/_layout.animals.$id.edit.situation.tsx @@ -8,26 +8,29 @@ import type { import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { getAnimalDisplayName } from "#i/animals/profile/name" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" import { MissingAdoptionDateError, MissingManagerError, MissingNextVaccinationError, MissingPickUpLocationError, NotManagerError, -} from "#i/animals/situation/db.server" -import { ActionFormData, AnimalSituationForm } from "#i/animals/situation/form" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +} from "#i/animals/situation/db.server.js" +import { + ActionFormData, + AnimalSituationForm, +} from "#i/animals/situation/form.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.animals._index.tsx b/apps/admin/src/routes/_layout.animals._index.tsx index 1422ac15..62f82dfe 100644 --- a/apps/admin/src/routes/_layout.animals._index.tsx +++ b/apps/admin/src/routes/_layout.animals._index.tsx @@ -6,28 +6,28 @@ import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" import invariant from "tiny-invariant" -import { AnimalFilters } from "#i/animals/filter-form" -import { AnimalItem } from "#i/animals/item" +import { AnimalFilters } from "#i/animals/filter-form.js" +import { AnimalItem } from "#i/animals/item.js" import { AnimalSearchParams, AnimalSort, AnimalSortSearchParams, -} from "#i/animals/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { forbidden } from "#i/core/response.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { hasGroups } from "#i/users/groups" +} from "#i/animals/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { forbidden } from "#i/core/response.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { hasGroups } from "#i/users/groups.js" // Multiple of 6, 5, 4 and 3 to be nicely displayed. const ANIMAL_COUNT_PER_PAGE = 60 diff --git a/apps/admin/src/routes/_layout.animals.new.pictures.tsx b/apps/admin/src/routes/_layout.animals.new.pictures.tsx index 1bd746bb..e9098439 100644 --- a/apps/admin/src/routes/_layout.animals.new.pictures.tsx +++ b/apps/admin/src/routes/_layout.animals.new.pictures.tsx @@ -15,19 +15,19 @@ import { import { useFetcher } from "@remix-run/react" import invariant from "tiny-invariant" -import { AnimalCreationSteps } from "#i/animals/creation-steps" -import { ActionFormData, AnimalPicturesForm } from "#i/animals/pictures/form" +import { AnimalCreationSteps } from "#i/animals/creation-steps.js" +import { ActionFormData, AnimalPicturesForm } from "#i/animals/pictures/form.js" import { CloudinaryUploadApiError, createCloudinaryUploadHandler, -} from "#i/core/cloudinary.server" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +} from "#i/core/cloudinary.server.js" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.animals.new.profile.tsx b/apps/admin/src/routes/_layout.animals.new.profile.tsx index 543a27f9..a2b6b045 100644 --- a/apps/admin/src/routes/_layout.animals.new.profile.tsx +++ b/apps/admin/src/routes/_layout.animals.new.profile.tsx @@ -8,16 +8,16 @@ import type { import { json, redirect } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { AnimalCreationSteps } from "#i/animals/creation-steps" -import { BreedNotForSpeciesError } from "#i/animals/profile/db.server" -import { ActionFormData, AnimalProfileForm } from "#i/animals/profile/form" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { AnimalCreationSteps } from "#i/animals/creation-steps.js" +import { BreedNotForSpeciesError } from "#i/animals/profile/db.server.js" +import { ActionFormData, AnimalProfileForm } from "#i/animals/profile/form.js" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.animals.new.situation.tsx b/apps/admin/src/routes/_layout.animals.new.situation.tsx index e58cf810..7f128f05 100644 --- a/apps/admin/src/routes/_layout.animals.new.situation.tsx +++ b/apps/admin/src/routes/_layout.animals.new.situation.tsx @@ -8,21 +8,24 @@ import type { import { json, redirect } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { AnimalCreationSteps } from "#i/animals/creation-steps" +import { AnimalCreationSteps } from "#i/animals/creation-steps.js" import { MissingAdoptionDateError, MissingManagerError, MissingPickUpLocationError, NotManagerError, -} from "#i/animals/situation/db.server" -import { ActionFormData, AnimalSituationForm } from "#i/animals/situation/form" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +} from "#i/animals/situation/db.server.js" +import { + ActionFormData, + AnimalSituationForm, +} from "#i/animals/situation/form.js" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const { draft, ...currentUser } = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.breeds.$id.edit.tsx b/apps/admin/src/routes/_layout.breeds.$id.edit.tsx index 461148d2..3df6da5e 100644 --- a/apps/admin/src/routes/_layout.breeds.$id.edit.tsx +++ b/apps/admin/src/routes/_layout.breeds.$id.edit.tsx @@ -8,18 +8,18 @@ import type { import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { ActionFormData, BreedForm } from "#i/breeds/form" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { AlreadyExistError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { ActionFormData, BreedForm } from "#i/breeds/form.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { AlreadyExistError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.breeds._index.tsx b/apps/admin/src/routes/_layout.breeds._index.tsx index e28a6094..fe23b595 100644 --- a/apps/admin/src/routes/_layout.breeds._index.tsx +++ b/apps/admin/src/routes/_layout.breeds._index.tsx @@ -13,26 +13,26 @@ import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { SPECIES_ICON } from "#i/animals/species" -import { BreedFilterForm } from "#i/breeds/filter-form" -import { BreedSearchParams } from "#i/breeds/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { db } from "#i/core/db.server" -import { NotFoundError, ReferencedError } from "#i/core/errors.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { badRequest, notFound } from "#i/core/response.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { Icon } from "#i/generated/icon" +import { SPECIES_ICON } from "#i/animals/species.js" +import { BreedFilterForm } from "#i/breeds/filter-form.js" +import { BreedSearchParams } from "#i/breeds/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError, ReferencedError } from "#i/core/errors.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { badRequest, notFound } from "#i/core/response.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { Icon } from "#i/generated/icon.js" const BREED_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.breeds.new.tsx b/apps/admin/src/routes/_layout.breeds.new.tsx index 0fe36b5f..419b9570 100644 --- a/apps/admin/src/routes/_layout.breeds.new.tsx +++ b/apps/admin/src/routes/_layout.breeds.new.tsx @@ -8,15 +8,15 @@ import type { import { json } from "@remix-run/node" import { useFetcher } from "@remix-run/react" -import { ActionFormData, BreedForm } from "#i/breeds/form" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { AlreadyExistError } from "#i/core/errors.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { ActionFormData, BreedForm } from "#i/breeds/form.js" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { AlreadyExistError } from "#i/core/errors.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.colors.$id.edit.tsx b/apps/admin/src/routes/_layout.colors.$id.edit.tsx index f42a2e2c..0007957f 100644 --- a/apps/admin/src/routes/_layout.colors.$id.edit.tsx +++ b/apps/admin/src/routes/_layout.colors.$id.edit.tsx @@ -8,18 +8,18 @@ import type { import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { ActionFormData, ColorForm } from "#i/colors/form" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { AlreadyExistError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { ActionFormData, ColorForm } from "#i/colors/form.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { AlreadyExistError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.colors._index.tsx b/apps/admin/src/routes/_layout.colors._index.tsx index 46996152..8df3d3e7 100644 --- a/apps/admin/src/routes/_layout.colors._index.tsx +++ b/apps/admin/src/routes/_layout.colors._index.tsx @@ -13,25 +13,25 @@ import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { ColorFilterForm } from "#i/colors/filter-form" -import { ColorSearchParams } from "#i/colors/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { db } from "#i/core/db.server" -import { NotFoundError, ReferencedError } from "#i/core/errors.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { badRequest, notFound } from "#i/core/response.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { Icon } from "#i/generated/icon" +import { ColorFilterForm } from "#i/colors/filter-form.js" +import { ColorSearchParams } from "#i/colors/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError, ReferencedError } from "#i/core/errors.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { badRequest, notFound } from "#i/core/response.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { Icon } from "#i/generated/icon.js" const COLOR_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.colors.new.tsx b/apps/admin/src/routes/_layout.colors.new.tsx index 6ddbc56c..3283e379 100644 --- a/apps/admin/src/routes/_layout.colors.new.tsx +++ b/apps/admin/src/routes/_layout.colors.new.tsx @@ -8,15 +8,15 @@ import type { import { json } from "@remix-run/node" import { useFetcher } from "@remix-run/react" -import { ActionFormData, ColorForm } from "#i/colors/form" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { AlreadyExistError } from "#i/core/errors.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { ActionFormData, ColorForm } from "#i/colors/form.js" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { AlreadyExistError } from "#i/core/errors.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.dashboard/card-active-animals.tsx b/apps/admin/src/routes/_layout.dashboard/card-active-animals.tsx index 7cd92ffa..cee1dd15 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-active-animals.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-active-animals.tsx @@ -1,15 +1,15 @@ import { useLoaderData } from "@remix-run/react" -import { AnimalItem } from "#i/animals/item" -import { AnimalSearchParams } from "#i/animals/search-params" -import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" +import { AnimalItem } from "#i/animals/item.js" +import { AnimalSearchParams } from "#i/animals/search-params.js" +import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardActiveAnimals() { const { animal } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/card-animals-to-sterilize.tsx b/apps/admin/src/routes/_layout.dashboard/card-animals-to-sterilize.tsx index 4d86e8ea..7329ad9a 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-animals-to-sterilize.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-animals-to-sterilize.tsx @@ -2,21 +2,21 @@ import { formatAge } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { AnimalSmallItem } from "#i/animals/item" +import { AnimalSmallItem } from "#i/animals/item.js" import { AnimalSearchParams, AnimalSort, AnimalSortSearchParams, AnimalSterilization, -} from "#i/animals/search-params" -import { HAS_UP_COMMING_STERILISATION_CONDITIONS } from "#i/animals/situation/health" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" +} from "#i/animals/search-params.js" +import { HAS_UP_COMMING_STERILISATION_CONDITIONS } from "#i/animals/situation/health.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardAnimalsToSterilize() { const { animal } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/card-animals-to-vaccinate.tsx b/apps/admin/src/routes/_layout.dashboard/card-animals-to-vaccinate.tsx index 034fe1ff..8c29d58e 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-animals-to-vaccinate.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-animals-to-vaccinate.tsx @@ -1,24 +1,24 @@ import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { AnimalSmallItem } from "#i/animals/item" +import { AnimalSmallItem } from "#i/animals/item.js" import { AnimalSearchParams, AnimalSort, AnimalSortSearchParams, -} from "#i/animals/search-params" +} from "#i/animals/search-params.js" import { formatNextVaccinationDate, getNextVaccinationState, HAS_UP_COMMING_VACCINATION_CONDITIONS, -} from "#i/animals/situation/health" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" +} from "#i/animals/situation/health.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardAnimalsToVaccinate() { const { animal } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/card-dogs-to-diagnose.tsx b/apps/admin/src/routes/_layout.dashboard/card-dogs-to-diagnose.tsx index 50c390c4..6bae44af 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-dogs-to-diagnose.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-dogs-to-diagnose.tsx @@ -1,20 +1,20 @@ import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { AnimalSmallItem } from "#i/animals/item" +import { AnimalSmallItem } from "#i/animals/item.js" import { AnimalSearchParams, AnimalSort, AnimalSortSearchParams, -} from "#i/animals/search-params" -import { HAS_UP_COMMING_DIAGNOSE_CONDITIONS } from "#i/animals/situation/health" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" +} from "#i/animals/search-params.js" +import { HAS_UP_COMMING_DIAGNOSE_CONDITIONS } from "#i/animals/situation/health.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDogsToDiagnose() { const { animal } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/card-managed-animals.tsx b/apps/admin/src/routes/_layout.dashboard/card-managed-animals.tsx index 7ab80db0..c7eae85a 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-managed-animals.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-managed-animals.tsx @@ -1,15 +1,15 @@ import { useLoaderData } from "@remix-run/react" -import { AnimalItem } from "#i/animals/item" -import { AnimalSearchParams } from "#i/animals/search-params" -import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" +import { AnimalItem } from "#i/animals/item.js" +import { AnimalSearchParams } from "#i/animals/search-params.js" +import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardManagedAnimals() { const { currentUser, animal } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/card-stand-size-booking.tsx b/apps/admin/src/routes/_layout.dashboard/card-stand-size-booking.tsx index 4e8208f8..085993c6 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-stand-size-booking.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-stand-size-booking.tsx @@ -8,7 +8,7 @@ import { Routes } from "#i/core/navigation.js" import { StandSizeBookingChip } from "#i/show/stand-size/booking-chip.js" import { StandSizeBookingIcon } from "#i/show/stand-size/booking-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardStandSizeBooking() { const { show } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/card-untreated-applications.tsx b/apps/admin/src/routes/_layout.dashboard/card-untreated-applications.tsx index 0eadc3dd..44f3bd50 100644 --- a/apps/admin/src/routes/_layout.dashboard/card-untreated-applications.tsx +++ b/apps/admin/src/routes/_layout.dashboard/card-untreated-applications.tsx @@ -17,7 +17,7 @@ import { ApplicationSearchParamsN, } from "#i/show/exhibitors/applications/search-params.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardUntreatedApplications() { const { show } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.dashboard/loader.animal.server.ts b/apps/admin/src/routes/_layout.dashboard/loader.animal.server.ts index c51d0ba7..0821ad17 100644 --- a/apps/admin/src/routes/_layout.dashboard/loader.animal.server.ts +++ b/apps/admin/src/routes/_layout.dashboard/loader.animal.server.ts @@ -8,10 +8,10 @@ import { HAS_UP_COMMING_DIAGNOSE_CONDITIONS, HAS_UP_COMMING_STERILISATION_CONDITIONS, HAS_UP_COMMING_VACCINATION_CONDITIONS, -} from "#i/animals/situation/health" -import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status" -import { prisma } from "#i/core/prisma.server" -import { hasGroups } from "#i/users/groups" +} from "#i/animals/situation/health.js" +import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status.js" +import { prisma } from "#i/core/prisma.server.js" +import { hasGroups } from "#i/users/groups.js" export async function loaderAnimal(currentUser: Pick) { const activeAnimalsWhere: Prisma.AnimalWhereInput = { diff --git a/apps/admin/src/routes/_layout.dashboard/loader.server.ts b/apps/admin/src/routes/_layout.dashboard/loader.server.ts index 07f2c8af..16de62c2 100644 --- a/apps/admin/src/routes/_layout.dashboard/loader.server.ts +++ b/apps/admin/src/routes/_layout.dashboard/loader.server.ts @@ -2,12 +2,12 @@ import { UserGroup } from "@animeaux/prisma/server" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { hasGroups } from "#i/users/groups" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { hasGroups } from "#i/users/groups.js" -import { loaderAnimal } from "./loader.animal.server" -import { loaderShow } from "./loader.show.server" +import { loaderAnimal } from "./loader.animal.server.js" +import { loaderShow } from "./loader.show.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.dashboard/loader.show.server.ts b/apps/admin/src/routes/_layout.dashboard/loader.show.server.ts index e1305eae..d41f65d4 100644 --- a/apps/admin/src/routes/_layout.dashboard/loader.show.server.ts +++ b/apps/admin/src/routes/_layout.dashboard/loader.show.server.ts @@ -1,7 +1,7 @@ import { ShowExhibitorApplicationStatus } from "@animeaux/prisma/server" import { promiseHash } from "remix-utils/promise" -import { db } from "#i/core/db.server" +import { db } from "#i/core/db.server.js" import { ApplicationSearchParams, ApplicationSearchParamsN, diff --git a/apps/admin/src/routes/_layout.dashboard/route.tsx b/apps/admin/src/routes/_layout.dashboard/route.tsx index 5c2cfbf5..37085957 100644 --- a/apps/admin/src/routes/_layout.dashboard/route.tsx +++ b/apps/admin/src/routes/_layout.dashboard/route.tsx @@ -1,17 +1,17 @@ import type { MetaFunction } from "@remix-run/node" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" - -import { CardActiveAnimals } from "./card-active-animals" -import { CardAnimalsToSterilize } from "./card-animals-to-sterilize" -import { CardAnimalsToVaccinate } from "./card-animals-to-vaccinate" -import { CardDogsToDiagnose } from "./card-dogs-to-diagnose" -import { CardManagedAnimals } from "./card-managed-animals" -import { CardStandSizeBooking } from "./card-stand-size-booking" -import { CardUntreatedApplications } from "./card-untreated-applications" - -export { loader } from "./loader.server" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" + +import { CardActiveAnimals } from "./card-active-animals.js" +import { CardAnimalsToSterilize } from "./card-animals-to-sterilize.js" +import { CardAnimalsToVaccinate } from "./card-animals-to-vaccinate.js" +import { CardDogsToDiagnose } from "./card-dogs-to-diagnose.js" +import { CardManagedAnimals } from "./card-managed-animals.js" +import { CardStandSizeBooking } from "./card-stand-size-booking.js" +import { CardUntreatedApplications } from "./card-untreated-applications.js" + +export { loader } from "./loader.server.js" export const meta: MetaFunction = () => { return [{ title: getPageTitle("Tableau de bord") }] diff --git a/apps/admin/src/routes/_layout.events.$id._index.tsx b/apps/admin/src/routes/_layout.events.$id._index.tsx index 82039cfa..bcc47a33 100644 --- a/apps/admin/src/routes/_layout.events.$id._index.tsx +++ b/apps/admin/src/routes/_layout.events.$id._index.tsx @@ -9,26 +9,26 @@ import type { import { json, redirect } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { BlockHelper } from "#i/core/data-display/helper" -import { DynamicImage } from "#i/core/data-display/image" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { AvatarCard } from "#i/core/layout/avatar-card" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { EventAvatar } from "#i/events/avatar" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { BlockHelper } from "#i/core/data-display/helper.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { AvatarCard } from "#i/core/layout/avatar-card.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { EventAvatar } from "#i/events/avatar.js" +import { Icon } from "#i/generated/icon.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.events.$id.edit.tsx b/apps/admin/src/routes/_layout.events.$id.edit.tsx index ea5b7c89..53d5473c 100644 --- a/apps/admin/src/routes/_layout.events.$id.edit.tsx +++ b/apps/admin/src/routes/_layout.events.$id.edit.tsx @@ -16,20 +16,20 @@ import { useFetcher, useLoaderData } from "@remix-run/react" import { CloudinaryUploadApiError, createCloudinaryUploadHandler, -} from "#i/core/cloudinary.server" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { InvalidDateRangeError } from "#i/events/db.server" -import { ActionFormData, EventForm } from "#i/events/form" +} from "#i/core/cloudinary.server.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { InvalidDateRangeError } from "#i/events/db.server.js" +import { ActionFormData, EventForm } from "#i/events/form.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.events._index.tsx b/apps/admin/src/routes/_layout.events._index.tsx index 90018d28..67e1aaa2 100644 --- a/apps/admin/src/routes/_layout.events._index.tsx +++ b/apps/admin/src/routes/_layout.events._index.tsx @@ -10,21 +10,21 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { Chip } from "#i/core/data-display/chip" -import { SimpleEmpty } from "#i/core/data-display/empty" -import type { DynamicImageProps } from "#i/core/data-display/image" -import { DynamicImage } from "#i/core/data-display/image" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { Chip } from "#i/core/data-display/chip.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import type { DynamicImageProps } from "#i/core/data-display/image.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const EVENT_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.events.new.tsx b/apps/admin/src/routes/_layout.events.new.tsx index db4fff4d..cf85ac5b 100644 --- a/apps/admin/src/routes/_layout.events.new.tsx +++ b/apps/admin/src/routes/_layout.events.new.tsx @@ -17,16 +17,16 @@ import { useFetcher } from "@remix-run/react" import { CloudinaryUploadApiError, createCloudinaryUploadHandler, -} from "#i/core/cloudinary.server" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { InvalidDateRangeError } from "#i/events/db.server" -import { ActionFormData, EventForm } from "#i/events/form" +} from "#i/core/cloudinary.server.js" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { InvalidDateRangeError } from "#i/events/db.server.js" +import { ActionFormData, EventForm } from "#i/events/form.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.foster-families.$id._index/contact-card.tsx b/apps/admin/src/routes/_layout.foster-families.$id._index/contact-card.tsx index 24a4f7bb..ccc35db8 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id._index/contact-card.tsx +++ b/apps/admin/src/routes/_layout.foster-families.$id._index/contact-card.tsx @@ -1,14 +1,14 @@ import { getLongLocation } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" - -import type { loader } from "./route" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" + +import type { loader } from "./route.js" export function ContactCard() { const { fosterFamily } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.foster-families.$id._index/route.tsx b/apps/admin/src/routes/_layout.foster-families.$id._index/route.tsx index 66479c80..09748d3b 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.foster-families.$id._index/route.tsx @@ -13,35 +13,35 @@ import { DateTime } from "luxon" import { useEffect, useState } from "react" import { promiseHash } from "remix-utils/promise" -import { AnimalItem } from "#i/animals/item" -import { AnimalSearchParams } from "#i/animals/search-params" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { ErrorsInlineHelper } from "#i/core/data-display/errors" -import { BlockHelper, InlineHelper } from "#i/core/data-display/helper" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { db } from "#i/core/db.server" -import { NotFoundError, ReferencedError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { AvatarCard } from "#i/core/layout/avatar-card" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { badRequest, notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { AnimalItem } from "#i/animals/item.js" +import { AnimalSearchParams } from "#i/animals/search-params.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { ErrorsInlineHelper } from "#i/core/data-display/errors.js" +import { BlockHelper, InlineHelper } from "#i/core/data-display/helper.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError, ReferencedError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { AvatarCard } from "#i/core/layout/avatar-card.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { badRequest, notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { AVATAR_COLOR_BY_AVAILABILITY, FosterFamilyAvatar, -} from "#i/foster-families/avatar" -import { ActionFormData } from "#i/foster-families/form" +} from "#i/foster-families/avatar.js" +import { ActionFormData } from "#i/foster-families/form.js" -import { ContactCard } from "./contact-card" -import { SituationCard } from "./situation-card" +import { ContactCard } from "./contact-card.js" +import { SituationCard } from "./situation-card.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.foster-families.$id._index/situation-card.tsx b/apps/admin/src/routes/_layout.foster-families.$id._index/situation-card.tsx index 2984dc76..7c1015a1 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id._index/situation-card.tsx +++ b/apps/admin/src/routes/_layout.foster-families.$id._index/situation-card.tsx @@ -7,21 +7,24 @@ import { import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { SPECIES_TRANSLATION } from "#i/animals/species" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { HIGHLIGHT_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" +import { SPECIES_TRANSLATION } from "#i/animals/species.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { + HIGHLIGHT_COMPONENTS, + Markdown, +} from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" import { AVAILABILITY_TRANSLATION, AvailabilityIcon, -} from "#i/foster-families/availability" -import { ICON_BY_HOUSING } from "#i/foster-families/housing" -import { Icon } from "#i/generated/icon" +} from "#i/foster-families/availability.js" +import { ICON_BY_HOUSING } from "#i/foster-families/housing.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SituationCard() { const { fosterFamily } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.foster-families.$id.edit/action.server.ts b/apps/admin/src/routes/_layout.foster-families.$id.edit/action.server.ts index cfbcf93e..985e5920 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id.edit/action.server.ts +++ b/apps/admin/src/routes/_layout.foster-families.$id.edit/action.server.ts @@ -3,18 +3,18 @@ import type { zu } from "@animeaux/zod-utils" import type { ActionFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { EmailAlreadyUsedError, NotFoundError } from "#i/core/errors.server" -import { Routes } from "#i/core/navigation" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { EmailAlreadyUsedError, NotFoundError } from "#i/core/errors.server.js" +import { Routes } from "#i/core/navigation.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { InvalidAvailabilityDateError, MissingSpeciesToHostError, -} from "#i/foster-families/db.server" -import { ActionFormDataForUpdate } from "#i/foster-families/form" +} from "#i/foster-families/db.server.js" +import { ActionFormDataForUpdate } from "#i/foster-families/form.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.foster-families.$id.edit/card-form.tsx b/apps/admin/src/routes/_layout.foster-families.$id.edit/card-form.tsx index 33cd6b39..cc739f5f 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id.edit/card-form.tsx +++ b/apps/admin/src/routes/_layout.foster-families.$id.edit/card-form.tsx @@ -1,8 +1,8 @@ import { useFetcher, useLoaderData } from "@remix-run/react" -import { Card } from "#i/core/layout/card" -import { useBackIfPossible } from "#i/core/navigation" -import { FosterFamilyForm } from "#i/foster-families/form" +import { Card } from "#i/core/layout/card.js" +import { useBackIfPossible } from "#i/core/navigation.js" +import { FosterFamilyForm } from "#i/foster-families/form.js" import type { action } from "./action.server.js" import type { loader } from "./loader.server.js" diff --git a/apps/admin/src/routes/_layout.foster-families.$id.edit/loader.server.ts b/apps/admin/src/routes/_layout.foster-families.$id.edit/loader.server.ts index ca046694..d2f0f9c7 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id.edit/loader.server.ts +++ b/apps/admin/src/routes/_layout.foster-families.$id.edit/loader.server.ts @@ -2,13 +2,13 @@ import { UserGroup } from "@animeaux/prisma/server" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.foster-families.$id.edit/route.tsx b/apps/admin/src/routes/_layout.foster-families.$id.edit/route.tsx index 4c7d9a1b..7ee4ee02 100644 --- a/apps/admin/src/routes/_layout.foster-families.$id.edit/route.tsx +++ b/apps/admin/src/routes/_layout.foster-families.$id.edit/route.tsx @@ -1,8 +1,8 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" import { CardForm } from "./card-form.js" import type { loader } from "./loader.server.js" diff --git a/apps/admin/src/routes/_layout.foster-families._index.tsx b/apps/admin/src/routes/_layout.foster-families._index.tsx index 5d6f58e8..04034d52 100644 --- a/apps/admin/src/routes/_layout.foster-families._index.tsx +++ b/apps/admin/src/routes/_layout.foster-families._index.tsx @@ -10,25 +10,25 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { AnimalAvatar } from "#i/animals/avatar" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { Avatar } from "#i/core/data-display/avatar" -import { Chip } from "#i/core/data-display/chip" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { FosterFamilyAvatar } from "#i/foster-families/avatar" -import { FosterFamilyFilters } from "#i/foster-families/filter-form" -import { FosterFamilySearchParams } from "#i/foster-families/search-params" +import { AnimalAvatar } from "#i/animals/avatar.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { Avatar } from "#i/core/data-display/avatar.js" +import { Chip } from "#i/core/data-display/chip.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { FosterFamilyAvatar } from "#i/foster-families/avatar.js" +import { FosterFamilyFilters } from "#i/foster-families/filter-form.js" +import { FosterFamilySearchParams } from "#i/foster-families/search-params.js" const FOSTER_FAMILY_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.foster-families.new/action.server.ts b/apps/admin/src/routes/_layout.foster-families.new/action.server.ts index 6e031d76..a26b2060 100644 --- a/apps/admin/src/routes/_layout.foster-families.new/action.server.ts +++ b/apps/admin/src/routes/_layout.foster-families.new/action.server.ts @@ -3,16 +3,16 @@ import type { zu } from "@animeaux/zod-utils" import type { ActionFunctionArgs } from "@remix-run/node" import { json, redirect } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { EmailAlreadyUsedError } from "#i/core/errors.server" -import { Routes } from "#i/core/navigation" -import { NextSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { EmailAlreadyUsedError } from "#i/core/errors.server.js" +import { Routes } from "#i/core/navigation.js" +import { NextSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { InvalidAvailabilityDateError, MissingSpeciesToHostError, -} from "#i/foster-families/db.server" -import { ActionFormData } from "#i/foster-families/form" +} from "#i/foster-families/db.server.js" +import { ActionFormData } from "#i/foster-families/form.js" export async function action({ request }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.foster-families.new/card-form.tsx b/apps/admin/src/routes/_layout.foster-families.new/card-form.tsx index 269027ca..c1c439b4 100644 --- a/apps/admin/src/routes/_layout.foster-families.new/card-form.tsx +++ b/apps/admin/src/routes/_layout.foster-families.new/card-form.tsx @@ -1,8 +1,8 @@ import { useFetcher } from "@remix-run/react" -import { Card } from "#i/core/layout/card" -import { useBackIfPossible } from "#i/core/navigation" -import { FosterFamilyForm } from "#i/foster-families/form" +import { Card } from "#i/core/layout/card.js" +import { useBackIfPossible } from "#i/core/navigation.js" +import { FosterFamilyForm } from "#i/foster-families/form.js" import type { action } from "./action.server.js" diff --git a/apps/admin/src/routes/_layout.foster-families.new/loader.server.ts b/apps/admin/src/routes/_layout.foster-families.new/loader.server.ts index 3bdfe532..87f453b2 100644 --- a/apps/admin/src/routes/_layout.foster-families.new/loader.server.ts +++ b/apps/admin/src/routes/_layout.foster-families.new/loader.server.ts @@ -1,9 +1,9 @@ import { UserGroup } from "@animeaux/prisma/server" import type { LoaderFunctionArgs } from "@remix-run/node" -import { db } from "#i/core/db.server" +import { db } from "#i/core/db.server.js" import { ok } from "#i/core/response.server.js" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.foster-families.new/route.tsx b/apps/admin/src/routes/_layout.foster-families.new/route.tsx index d2704725..461eb560 100644 --- a/apps/admin/src/routes/_layout.foster-families.new/route.tsx +++ b/apps/admin/src/routes/_layout.foster-families.new/route.tsx @@ -1,8 +1,8 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" import { CardForm } from "./card-form.js" diff --git a/apps/admin/src/routes/_layout.foster-families.tsx b/apps/admin/src/routes/_layout.foster-families.tsx index 1e4d8554..bf713d84 100644 --- a/apps/admin/src/routes/_layout.foster-families.tsx +++ b/apps/admin/src/routes/_layout.foster-families.tsx @@ -1,6 +1,6 @@ import { Outlet } from "@remix-run/react" -import type { RouteHandle } from "#i/core/handles" +import type { RouteHandle } from "#i/core/handles.js" import { Entity } from "#i/routes/resources.global-search/entity.js" export const handle: RouteHandle = { diff --git a/apps/admin/src/routes/_layout.me._index.tsx b/apps/admin/src/routes/_layout.me._index.tsx index 04a1f8b1..f540f674 100644 --- a/apps/admin/src/routes/_layout.me._index.tsx +++ b/apps/admin/src/routes/_layout.me._index.tsx @@ -5,27 +5,27 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { AnimalItem } from "#i/animals/item" -import { AnimalSearchParams } from "#i/animals/search-params" +import { AnimalItem } from "#i/animals/item.js" +import { AnimalSearchParams } from "#i/animals/search-params.js" import { ACTIVE_ANIMAL_STATUS, NON_ACTIVE_ANIMAL_STATUS, -} from "#i/animals/status" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { inferInstanceColor } from "#i/core/data-display/instance-color" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { db } from "#i/core/db.server" -import { AvatarCard } from "#i/core/layout/avatar-card" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { Icon } from "#i/generated/icon" -import { UserAvatar } from "#i/users/avatar" -import { GROUP_ICON, GROUP_TRANSLATION, hasGroups } from "#i/users/groups" +} from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { inferInstanceColor } from "#i/core/data-display/instance-color.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { db } from "#i/core/db.server.js" +import { AvatarCard } from "#i/core/layout/avatar-card.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { Icon } from "#i/generated/icon.js" +import { UserAvatar } from "#i/users/avatar.js" +import { GROUP_ICON, GROUP_TRANSLATION, hasGroups } from "#i/users/groups.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.me.change-password.tsx b/apps/admin/src/routes/_layout.me.change-password.tsx index 46c5bd5c..62b817c9 100644 --- a/apps/admin/src/routes/_layout.me.change-password.tsx +++ b/apps/admin/src/routes/_layout.me.change-password.tsx @@ -5,15 +5,15 @@ import { json } from "@remix-run/node" import { useFetcher } from "@remix-run/react" import { useEffect, useRef } from "react" -import { Action } from "#i/core/actions" -import { db } from "#i/core/db.server" -import { Form } from "#i/core/form-elements/form" -import { PasswordInput } from "#i/core/form-elements/password-input" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { db } from "#i/core/db.server.js" +import { Form } from "#i/core/form-elements/form.js" +import { PasswordInput } from "#i/core/form-elements/password-input.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Icon } from "#i/generated/icon.js" export const meta: MetaFunction = () => { return [{ title: getPageTitle("Changer de mot de passe") }] diff --git a/apps/admin/src/routes/_layout.me.edit-profile.tsx b/apps/admin/src/routes/_layout.me.edit-profile.tsx index 2419a491..041724a5 100644 --- a/apps/admin/src/routes/_layout.me.edit-profile.tsx +++ b/apps/admin/src/routes/_layout.me.edit-profile.tsx @@ -9,16 +9,16 @@ import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" import { useEffect, useRef } from "react" -import { Action } from "#i/core/actions" -import { db } from "#i/core/db.server" -import { EmailAlreadyUsedError } from "#i/core/errors.server" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { db } from "#i/core/db.server.js" +import { EmailAlreadyUsedError } from "#i/core/errors.server.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Icon } from "#i/generated/icon.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.press-articles._index.tsx b/apps/admin/src/routes/_layout.press-articles._index.tsx index 73a0f38c..64a8d49c 100644 --- a/apps/admin/src/routes/_layout.press-articles._index.tsx +++ b/apps/admin/src/routes/_layout.press-articles._index.tsx @@ -13,22 +13,22 @@ import { useFetcher, useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" import { promiseHash } from "remix-utils/promise" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { DynamicImage } from "#i/core/data-display/image" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { badRequest, notFound } from "#i/core/response.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { badRequest, notFound } from "#i/core/response.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const PRESS_ARTICLES_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.press-articles.add.tsx b/apps/admin/src/routes/_layout.press-articles.add.tsx index 62f591e0..78af53e0 100644 --- a/apps/admin/src/routes/_layout.press-articles.add.tsx +++ b/apps/admin/src/routes/_layout.press-articles.add.tsx @@ -8,18 +8,18 @@ import type { import { json } from "@remix-run/node" import { useFetcher } from "@remix-run/react" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { InvalidPublicationDateError, UrlAlreadyUsedError, -} from "#i/press-articles/db.server" -import { ActionFormData, PressArticleForm } from "#i/press-articles/form" +} from "#i/press-articles/db.server.js" +import { ActionFormData, PressArticleForm } from "#i/press-articles/form.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.$/route.tsx b/apps/admin/src/routes/_layout.show.$/route.tsx index 2bdee968..9aeb8cbe 100644 --- a/apps/admin/src/routes/_layout.show.$/route.tsx +++ b/apps/admin/src/routes/_layout.show.$/route.tsx @@ -1,9 +1,9 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" export async function loader() { throw notFound() diff --git a/apps/admin/src/routes/_layout.show._index/route.tsx b/apps/admin/src/routes/_layout.show._index/route.tsx index cb8f48ed..a824870d 100644 --- a/apps/admin/src/routes/_layout.show._index/route.tsx +++ b/apps/admin/src/routes/_layout.show._index/route.tsx @@ -2,9 +2,9 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { redirect } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { Routes } from "#i/core/navigation" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { Routes } from "#i/core/navigation.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-activity-description.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-activity-description.tsx index 2a7eb845..08e333e6 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-activity-description.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-activity-description.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardActivityDescription() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-comments.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-comments.tsx index 36288b91..92ffc131 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-comments.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-comments.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardComments() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-contact.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-contact.tsx index 833dbdbd..04466351 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-contact.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-contact.tsx @@ -1,10 +1,10 @@ import { useLoaderData } from "@remix-run/react" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Icon } from "#i/generated/icon" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardContact() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-discovery-source.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-discovery-source.tsx index a0862850..bbfbc7ae 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-discovery-source.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-discovery-source.tsx @@ -1,11 +1,11 @@ import { useLoaderData } from "@remix-run/react" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Icon } from "#i/generated/icon" -import { DiscoverySource } from "#i/show/exhibitors/applications/discovery-source" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Icon } from "#i/generated/icon.js" +import { DiscoverySource } from "#i/show/exhibitors/applications/discovery-source.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDiscoverySource() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-motivation.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-motivation.tsx index 5cdb92e1..5ba0b837 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-motivation.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-motivation.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardMotivation() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-participation.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-participation.tsx index 839128ad..8da19f42 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-participation.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-participation.tsx @@ -2,12 +2,12 @@ import { useLoaderData } from "@remix-run/react" import { ProseInlineAction } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardParticipation() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation-refusal-message.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation-refusal-message.tsx index c503eab7..8ccdfc45 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation-refusal-message.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation-refusal-message.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardSituationRefusalMessage() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation.tsx index c22d3f49..7490282b 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-situation.tsx @@ -1,18 +1,18 @@ import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { Action, ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +import { Action, ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" import { ApplicationStatusIcon, TRANSLATION_BY_APPLICATION_STATUS, -} from "#i/show/exhibitors/applications/status" +} from "#i/show/exhibitors/applications/status.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardSituation() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-sponsorship.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-sponsorship.tsx index da771c23..a3db6c14 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-sponsorship.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-sponsorship.tsx @@ -1,13 +1,13 @@ import { useLoaderData } from "@remix-run/react" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" import { SponsorshipCategoryIcon, SponsorshipOptionalCategory, -} from "#i/show/sponsors/category" +} from "#i/show/sponsors/category.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardSponsorship() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/card-structure.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/card-structure.tsx index 6a222ab3..b585ecd9 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/card-structure.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/card-structure.tsx @@ -2,16 +2,16 @@ import { getCompleteLocation, ImageUrl } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" import { ProseInlineAction } from "#i/core/actions.js" -import { DynamicImage } from "#i/core/data-display/image" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Icon } from "#i/generated/icon" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" -import { LegalStatus } from "#i/show/exhibitors/applications/legal-status" +import { DynamicImage } from "#i/core/data-display/image.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Icon } from "#i/generated/icon.js" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" +import { LegalStatus } from "#i/show/exhibitors/applications/legal-status.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardStructure() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/header.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/header.tsx index d8f9642f..1f704b75 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/header.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/header.tsx @@ -3,14 +3,14 @@ import { useFetcher, useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { InlineHelper } from "#i/core/data-display/helper.js" -import { PageLayout } from "#i/core/layout/page" +import { PageLayout } from "#i/core/layout/page.js" import { Dialog } from "#i/core/popovers/dialog.js" import { Icon } from "#i/generated/icon.js" import { theme } from "#i/generated/theme.js" import { SponsorshipCategory } from "#i/show/sponsors/category.js" -import type { action } from "./action.server" -import type { loader } from "./loader.server" +import type { action } from "./action.server.js" +import type { loader } from "./loader.server.js" export function Header() { const { application, canDelete } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/loader.server.ts b/apps/admin/src/routes/_layout.show.applications.$id._index/loader.server.ts index 323ebf9e..2e043435 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/loader.server.ts @@ -3,12 +3,12 @@ import { safeParseRouteParam } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { SponsorshipOptionalCategory } from "#i/show/sponsors/category" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { SponsorshipOptionalCategory } from "#i/show/sponsors/category.js" import { hasGroups } from "#i/users/groups.js" -import { RouteParamsSchema } from "./route-params" +import { RouteParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.applications.$id._index/route.tsx b/apps/admin/src/routes/_layout.show.applications.$id._index/route.tsx index 673926d1..c152a8e8 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id._index/route.tsx @@ -1,24 +1,24 @@ import type { MetaFunction } from "@remix-run/react" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" -import { CardActivityDescription } from "./card-activity-description" -import { CardComments } from "./card-comments" -import { CardContact } from "./card-contact" -import { CardDiscoverySource } from "./card-discovery-source" -import { CardMotivation } from "./card-motivation" -import { CardParticipation } from "./card-participation" -import { CardSituation } from "./card-situation" -import { CardSituationRefusalMessage } from "./card-situation-refusal-message" -import { CardSponsorship } from "./card-sponsorship" -import { CardStructure } from "./card-structure" -import { Header } from "./header" -import type { loader } from "./loader.server" +import { CardActivityDescription } from "./card-activity-description.js" +import { CardComments } from "./card-comments.js" +import { CardContact } from "./card-contact.js" +import { CardDiscoverySource } from "./card-discovery-source.js" +import { CardMotivation } from "./card-motivation.js" +import { CardParticipation } from "./card-participation.js" +import { CardSituation } from "./card-situation.js" +import { CardSituationRefusalMessage } from "./card-situation-refusal-message.js" +import { CardSponsorship } from "./card-sponsorship.js" +import { CardStructure } from "./card-structure.js" +import { Header } from "./header.js" +import type { loader } from "./loader.server.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [ diff --git a/apps/admin/src/routes/_layout.show.applications.$id.edit/route.tsx b/apps/admin/src/routes/_layout.show.applications.$id.edit/route.tsx index f3b926be..80e37706 100644 --- a/apps/admin/src/routes/_layout.show.applications.$id.edit/route.tsx +++ b/apps/admin/src/routes/_layout.show.applications.$id.edit/route.tsx @@ -8,26 +8,29 @@ import type { MetaFunction } from "@remix-run/react" import { useFetcher, useLoaderData } from "@remix-run/react" import { useEffect, useRef, useState } from "react" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { NotFoundError } from "#i/core/errors.server" -import { Form } from "#i/core/form-elements/form" -import { RadioInput, RadioInputList } from "#i/core/form-elements/input-choice" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Textarea } from "#i/core/form-elements/textarea" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { MissingRefusalMessageError } from "#i/show/exhibitors/applications/db.server" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError } from "#i/core/errors.server.js" +import { Form } from "#i/core/form-elements/form.js" +import { + RadioInput, + RadioInputList, +} from "#i/core/form-elements/input-choice.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Textarea } from "#i/core/form-elements/textarea.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { MissingRefusalMessageError } from "#i/show/exhibitors/applications/db.server.js" import { SORTED_STATUSES, TRANSLATION_BY_APPLICATION_STATUS, -} from "#i/show/exhibitors/applications/status" +} from "#i/show/exhibitors/applications/status.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.applications._index/card-list.tsx b/apps/admin/src/routes/_layout.show.applications._index/card-list.tsx index 101da313..b2f70bea 100644 --- a/apps/admin/src/routes/_layout.show.applications._index/card-list.tsx +++ b/apps/admin/src/routes/_layout.show.applications._index/card-list.tsx @@ -1,16 +1,16 @@ import { useOptimisticSearchParams } from "@animeaux/search-params-io" import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" import { DownloadApplicationsTrigger } from "#i/routes/downloads.show.applications/trigger.js" -import { ApplicationSearchParams } from "#i/show/exhibitors/applications/search-params" +import { ApplicationSearchParams } from "#i/show/exhibitors/applications/search-params.js" -import { ApplicationItem } from "./item" -import type { loader } from "./route" +import { ApplicationItem } from "./item.js" +import type { loader } from "./route.js" export function CardList() { const { totalCount, pageCount, applications, canExport } = diff --git a/apps/admin/src/routes/_layout.show.applications._index/item.tsx b/apps/admin/src/routes/_layout.show.applications._index/item.tsx index 28bccce1..b9cd62c6 100644 --- a/apps/admin/src/routes/_layout.show.applications._index/item.tsx +++ b/apps/admin/src/routes/_layout.show.applications._index/item.tsx @@ -1,15 +1,15 @@ import type { SerializeFrom } from "@remix-run/node" import { DateTime } from "luxon" -import { BaseLink } from "#i/core/base-link" -import { toRoundedRelative } from "#i/core/dates" -import { Routes } from "#i/core/navigation" -import { ActivityFieldIcon } from "#i/show/exhibitors/activity-field/icon" -import { ActivityTargetIcon } from "#i/show/exhibitors/activity-target/icon" -import { LegalStatus } from "#i/show/exhibitors/applications/legal-status" -import { ApplicationStatusIcon } from "#i/show/exhibitors/applications/status" - -import type { loader } from "./route" +import { BaseLink } from "#i/core/base-link.js" +import { toRoundedRelative } from "#i/core/dates.js" +import { Routes } from "#i/core/navigation.js" +import { ActivityFieldIcon } from "#i/show/exhibitors/activity-field/icon.js" +import { ActivityTargetIcon } from "#i/show/exhibitors/activity-target/icon.js" +import { LegalStatus } from "#i/show/exhibitors/applications/legal-status.js" +import { ApplicationStatusIcon } from "#i/show/exhibitors/applications/status.js" + +import type { loader } from "./route.js" export function ApplicationItem({ application, diff --git a/apps/admin/src/routes/_layout.show.applications._index/route.tsx b/apps/admin/src/routes/_layout.show.applications._index/route.tsx index 701dc1b4..fa3eba53 100644 --- a/apps/admin/src/routes/_layout.show.applications._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.applications._index/route.tsx @@ -5,18 +5,18 @@ import type { MetaFunction } from "@remix-run/react" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { ApplicationFilters } from "#i/show/exhibitors/applications/filter-form" -import { ApplicationSearchParams } from "#i/show/exhibitors/applications/search-params" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { ApplicationFilters } from "#i/show/exhibitors/applications/filter-form.js" +import { ApplicationSearchParams } from "#i/show/exhibitors/applications/search-params.js" import { hasGroups } from "#i/users/groups.js" -import { CardList } from "./card-list" +import { CardList } from "./card-list.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-details.tsx b/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-details.tsx index bd0f34d2..129e5c5d 100644 --- a/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-details.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-details.tsx @@ -4,7 +4,7 @@ import { ItemList, SimpleItem } from "#i/core/data-display/item.js" import { Card } from "#i/core/layout/card.js" import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDetails() { return ( diff --git a/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-exhibitor-list.tsx b/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-exhibitor-list.tsx index c14e74b9..7a85bd89 100644 --- a/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-exhibitor-list.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-exhibitor-list.tsx @@ -2,13 +2,13 @@ import { useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" -import { ExhibitorItem } from "./exhibitor-item" -import type { loader } from "./loader.server" +import { ExhibitorItem } from "./exhibitor-item.js" +import type { loader } from "./loader.server.js" export function CardExhibitorList() { const { dividerType, exhibitors, exhibitorTotalCount } = diff --git a/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-situation.tsx b/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-situation.tsx index 23832a6f..e533a69f 100644 --- a/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-situation.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types.$id._index/card-situation.tsx @@ -5,7 +5,7 @@ import { Card } from "#i/core/layout/card.js" import { formatAvailability } from "#i/show/divider-type/availability.js" import { DividerTypeAvailabilityIcon } from "#i/show/divider-type/availability-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardSituation() { return ( diff --git a/apps/admin/src/routes/_layout.show.divider-types.$id._index/exhibitor-item.tsx b/apps/admin/src/routes/_layout.show.divider-types.$id._index/exhibitor-item.tsx index f64a55be..80fef0eb 100644 --- a/apps/admin/src/routes/_layout.show.divider-types.$id._index/exhibitor-item.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types.$id._index/exhibitor-item.tsx @@ -6,7 +6,7 @@ import { DynamicImage } from "#i/core/data-display/image.js" import { Routes } from "#i/core/navigation.js" import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" type Exhibitor = SerializeFrom["exhibitors"][number] diff --git a/apps/admin/src/routes/_layout.show.divider-types.$id._index/loader.server.ts b/apps/admin/src/routes/_layout.show.divider-types.$id._index/loader.server.ts index b4a990cd..0bf63ed0 100644 --- a/apps/admin/src/routes/_layout.show.divider-types.$id._index/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.divider-types.$id._index/loader.server.ts @@ -4,11 +4,11 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" -import { RouteParamsSchema } from "./route-params" +import { RouteParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.divider-types.$id._index/route.tsx b/apps/admin/src/routes/_layout.show.divider-types.$id._index/route.tsx index 24844c75..ddb0165b 100644 --- a/apps/admin/src/routes/_layout.show.divider-types.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types.$id._index/route.tsx @@ -1,16 +1,16 @@ import type { MetaFunction } from "@remix-run/react" import { useLoaderData } from "@remix-run/react" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" -import { CardDetails } from "./card-details" -import { CardExhibitorList } from "./card-exhibitor-list" -import { CardSituation } from "./card-situation" -import type { loader } from "./loader.server" +import { CardDetails } from "./card-details.js" +import { CardExhibitorList } from "./card-exhibitor-list.js" +import { CardSituation } from "./card-situation.js" +import type { loader } from "./loader.server.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [ diff --git a/apps/admin/src/routes/_layout.show.divider-types._index/card-list.tsx b/apps/admin/src/routes/_layout.show.divider-types._index/card-list.tsx index db6556c5..0da439b6 100644 --- a/apps/admin/src/routes/_layout.show.divider-types._index/card-list.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types._index/card-list.tsx @@ -1,10 +1,10 @@ import { useLoaderData } from "@remix-run/react" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" -import { DividerTypeItem } from "./item" -import type { loader } from "./loader.server" +import { DividerTypeItem } from "./item.js" +import type { loader } from "./loader.server.js" export function CardList() { const { dividerTypes } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.divider-types._index/item.tsx b/apps/admin/src/routes/_layout.show.divider-types._index/item.tsx index 7568f39a..a29283b5 100644 --- a/apps/admin/src/routes/_layout.show.divider-types._index/item.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types._index/item.tsx @@ -5,7 +5,7 @@ import { Routes } from "#i/core/navigation.js" import { DividerTypeAvailabilityChip } from "#i/show/divider-type/availability-chip.js" import { DividerTypeAvailabilityIcon } from "#i/show/divider-type/availability-icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" type DividerType = SerializeFrom["dividerTypes"][number] diff --git a/apps/admin/src/routes/_layout.show.divider-types._index/route.tsx b/apps/admin/src/routes/_layout.show.divider-types._index/route.tsx index 188e69ea..ab532f08 100644 --- a/apps/admin/src/routes/_layout.show.divider-types._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.divider-types._index/route.tsx @@ -3,9 +3,9 @@ import type { MetaFunction } from "@remix-run/react" import { PageLayout } from "#i/core/layout/page.js" import { getPageTitle } from "#i/core/page-title.js" -import { CardList } from "./card-list" +import { CardList } from "./card-list.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = () => { return [{ title: getPageTitle("Cloisons") }] diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/action.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/action.server.ts index e19ddefb..6337aed8 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/action.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/action.server.ts @@ -9,8 +9,8 @@ import { Routes } from "#i/core/navigation.js" import { badRequest, ok } from "#i/core/response.server.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { ActionIntent, actionSchema } from "./action" -import { routeParamsSchema } from "./route-params" +import { ActionIntent, actionSchema } from "./action.js" +import { routeParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-billing.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-billing.tsx index f95a9bb0..e6bcaf15 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-billing.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-billing.tsx @@ -9,7 +9,7 @@ import { BaseLink } from "#i/core/base-link.js" import { Empty } from "#i/core/data-display/empty.js" import { ItemList, SimpleItem } from "#i/core/data-display/item.js" import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" -import { Card } from "#i/core/layout/card" +import { Card } from "#i/core/layout/card.js" import { Separator } from "#i/core/layout/separator.js" import { Routes } from "#i/core/navigation.js" import { Dialog } from "#i/core/popovers/dialog.js" @@ -18,9 +18,9 @@ import { theme } from "#i/generated/theme.js" import { InvoiceIcon } from "#i/show/invoice/icon.js" import { InvoiceStatus } from "#i/show/invoice/status.js" -import { ActionIntent } from "./action" -import type { action } from "./action.server" -import type { loader } from "./loader.server" +import { ActionIntent } from "./action.js" +import type { action } from "./action.server.js" +import type { loader } from "./loader.server.js" export function CardBilling() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-contact.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-contact.tsx index 833dbdbd..04466351 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-contact.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-contact.tsx @@ -1,10 +1,10 @@ import { useLoaderData } from "@remix-run/react" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Icon } from "#i/generated/icon" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardContact() { const { application } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-description.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-description.tsx index 198a0500..f6aa17e5 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-description.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-description.tsx @@ -2,15 +2,15 @@ import { useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { Empty } from "#i/core/data-display/empty" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" +import { Empty } from "#i/core/data-display/empty.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" -import { ExhibitorStatus } from "#i/show/exhibitors/status" -import { StatusHelper } from "#i/show/exhibitors/status-helper" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" +import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDescription() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-documents.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-documents.tsx index 31d3c872..90f2fa15 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-documents.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-documents.tsx @@ -1,17 +1,17 @@ import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { FileItem } from "#i/core/data-display/file-item" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { ExhibitorStatus } from "#i/show/exhibitors/status" -import { StatusHelper } from "#i/show/exhibitors/status-helper" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { FileItem } from "#i/core/data-display/file-item.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" +import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDocuments() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-dogs-configuration.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-dogs-configuration.tsx index ac640c8f..9fa5abdd 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-dogs-configuration.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-dogs-configuration.tsx @@ -12,11 +12,11 @@ import { Card } from "#i/core/layout/card.js" import { Separator } from "#i/core/layout/separator.js" import { Routes } from "#i/core/navigation.js" import { Icon } from "#i/generated/icon.js" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDogsConfiguration() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stage-animations.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stage-animations.tsx index b810ad8d..16e275bb 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stage-animations.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stage-animations.tsx @@ -5,17 +5,17 @@ import { DateTime } from "luxon" import { ProseInlineAction } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { Empty } from "#i/core/data-display/empty" +import { Empty } from "#i/core/data-display/empty.js" import { ItemList, SimpleItem } from "#i/core/data-display/item.js" import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" -import { Card } from "#i/core/layout/card" +import { Card } from "#i/core/layout/card.js" import { Separator } from "#i/core/layout/separator.js" import { Routes } from "#i/core/navigation.js" import { Icon } from "#i/generated/icon.js" import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" import { StandZone } from "#i/show/exhibitors/stand-configuration/stand-zone.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardOnStageAnimations() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stand-animations.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stand-animations.tsx index e73b65bc..0d589bcb 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stand-animations.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-on-stand-animations.tsx @@ -1,20 +1,20 @@ import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Empty } from "#i/core/data-display/empty" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Empty } from "#i/core/data-display/empty.js" import { ARTICLE_COMPONENTS, Markdown, SENTENCE_COMPONENTS, -} from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { ExhibitorStatus } from "#i/show/exhibitors/status" -import { StatusHelper } from "#i/show/exhibitors/status-helper" +} from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" +import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardOnStandAnimations() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-perks.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-perks.tsx index 33b60d05..f22cd9db 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-perks.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-perks.tsx @@ -3,16 +3,16 @@ import { useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" import { InlineHelper } from "#i/core/data-display/helper.js" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" -import { Icon } from "#i/generated/icon" -import { ExhibitorStatus } from "#i/show/exhibitors/status" -import { StatusHelper } from "#i/show/exhibitors/status-helper" +import { Icon } from "#i/generated/icon.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" +import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardPerks() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-price.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-price.tsx index 6e70a260..03b06279 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-price.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-price.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { Card } from "#i/core/layout/card" +import { Card } from "#i/core/layout/card.js" import { ParticipationReceipt } from "#i/show/exhibitors/participation-receipt.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardPrice() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-profile.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-profile.tsx index f4b020f8..0dbd5435 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-profile.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-profile.tsx @@ -1,22 +1,22 @@ import { ImageUrl, joinReactNodes } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" -import { Action, ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" +import { Action, ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" import { ExhibitorCategory } from "#i/show/exhibitors/category.js" -import { ExhibitorStatus } from "#i/show/exhibitors/status" -import { StatusHelper } from "#i/show/exhibitors/status-helper" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" +import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardProfile() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-situation.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-situation.tsx index 507b8d91..d8053ff1 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-situation.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-situation.tsx @@ -2,22 +2,22 @@ import { joinReactNodes } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" import { Fragment } from "react/jsx-runtime" -import { Action, ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +import { Action, ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" import { ApplicationStatusIcon, TRANSLATION_BY_APPLICATION_STATUS, -} from "#i/show/exhibitors/applications/status" +} from "#i/show/exhibitors/applications/status.js" import { InvoiceIcon } from "#i/show/invoice/icon.js" import { InvoiceStatus } from "#i/show/invoice/status.js" -import { SponsorshipCategory } from "#i/show/sponsors/category" -import { Visibility, VisibilityIcon } from "#i/show/visibility" +import { SponsorshipCategory } from "#i/show/sponsors/category.js" +import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardSituation() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-stand-configuration.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-stand-configuration.tsx index 1b17d68f..4dbdd942 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-stand-configuration.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-stand-configuration.tsx @@ -1,24 +1,24 @@ import { useLoaderData } from "@remix-run/react" -import { Action, ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" +import { Action, ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" import { InlineHelper } from "#i/core/data-display/helper.js" -import { ItemList, SimpleItem } from "#i/core/data-display/item" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" import { ARTICLE_COMPONENTS, Markdown, SENTENCE_COMPONENTS, -} from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +} from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" import { ExhibitorCategory } from "#i/show/exhibitors/category.js" -import { InstallationDay } from "#i/show/exhibitors/stand-configuration/installation-day" -import { ExhibitorStatus } from "#i/show/exhibitors/status" -import { StatusHelper } from "#i/show/exhibitors/status-helper" +import { InstallationDay } from "#i/show/exhibitors/stand-configuration/installation-day.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" +import { StatusHelper } from "#i/show/exhibitors/status-helper.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardStandConfiguration() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-structure.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-structure.tsx index 4a3450e2..dc33f10d 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-structure.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/card-structure.tsx @@ -1,16 +1,16 @@ import { getCompleteLocation } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" -import { LegalStatus } from "#i/show/exhibitors/applications/legal-status" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" +import { LegalStatus } from "#i/show/exhibitors/applications/legal-status.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardStructure() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/loader.server.ts index b1bb40cd..45657805 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/loader.server.ts @@ -4,12 +4,12 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { InvoiceStatus } from "#i/show/invoice/status.js" import { withAllowedCategories } from "#i/show/stand-size/allowed-categories.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/route.tsx index a6408c48..a42076d5 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id._index/route.tsx @@ -3,34 +3,34 @@ import type { MetaFunction } from "@remix-run/react" import { useFetcher, useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" import { InlineHelper } from "#i/core/data-display/helper.js" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" import { Dialog } from "#i/core/popovers/dialog.js" import { Icon } from "#i/generated/icon.js" import { theme } from "#i/generated/theme.js" import { SponsorshipCategory } from "#i/show/sponsors/category.js" -import { ActionIntent } from "./action" -import type { action } from "./action.server" -import { CardBilling } from "./card-billing" -import { CardContact } from "./card-contact" -import { CardDescription } from "./card-description" -import { CardDocuments } from "./card-documents" -import { CardDogsConfiguration } from "./card-dogs-configuration" -import { CardOnStageAnimations } from "./card-on-stage-animations" -import { CardOnStandAnimations } from "./card-on-stand-animations" -import { CardPerks } from "./card-perks" -import { CardPrice } from "./card-price" -import { CardProfile } from "./card-profile" -import { CardSituation } from "./card-situation" -import { CardStandConfiguration } from "./card-stand-configuration" -import { CardStructure } from "./card-structure" -import type { loader } from "./loader.server" - -export { action } from "./action.server" -export { loader } from "./loader.server" +import { ActionIntent } from "./action.js" +import type { action } from "./action.server.js" +import { CardBilling } from "./card-billing.js" +import { CardContact } from "./card-contact.js" +import { CardDescription } from "./card-description.js" +import { CardDocuments } from "./card-documents.js" +import { CardDogsConfiguration } from "./card-dogs-configuration.js" +import { CardOnStageAnimations } from "./card-on-stage-animations.js" +import { CardOnStandAnimations } from "./card-on-stand-animations.js" +import { CardPerks } from "./card-perks.js" +import { CardPrice } from "./card-price.js" +import { CardProfile } from "./card-profile.js" +import { CardSituation } from "./card-situation.js" +import { CardStandConfiguration } from "./card-stand-configuration.js" +import { CardStructure } from "./card-structure.js" +import type { loader } from "./loader.server.js" + +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [{ title: getPageTitle(data?.exhibitor.name ?? getErrorTitle(404)) }] diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/action.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/action.ts index 884a2db6..487e0911 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/action.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/action.ts @@ -1,6 +1,6 @@ import { normalizeLineBreaks, zu } from "@animeaux/zod-utils" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const ActionSchema = zu .object({ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-description.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-description.tsx index 5a2231af..7b19e262 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-description.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-description.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetDescription() { const { fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/form.ts index 9d1266a6..593a993f 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/form.ts @@ -3,10 +3,10 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/route.tsx index 5f21c0d1..b7c6b788 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.description/route.tsx @@ -8,18 +8,18 @@ import { json } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import type { MergeExclusive } from "type-fest" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" - -import { ActionSchema } from "./action" -import { FieldsetDescription } from "./fieldset-description" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" + +import { ActionSchema } from "./action.js" +import { FieldsetDescription } from "./fieldset-description.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/action.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/action.ts index ed39ac15..861dd59c 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/action.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/action.ts @@ -1,6 +1,6 @@ import { zu } from "@animeaux/zod-utils" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const ActionSchema = zu .object({ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-documents.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-documents.tsx index d65d040d..2f09d117 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-documents.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-documents.tsx @@ -1,11 +1,11 @@ import { useLoaderData } from "@remix-run/react" -import { BaseLink } from "#i/core/base-link" -import { FileItem } from "#i/core/data-display/file-item" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { BaseLink } from "#i/core/base-link.js" +import { FileItem } from "#i/core/data-display/file-item.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function FieldsetDocuments() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/form.ts index ae632be9..bacdd74e 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/form.ts @@ -3,10 +3,10 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/route.tsx index cae56e8e..2a844005 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.documents/route.tsx @@ -9,18 +9,18 @@ import type { MetaFunction } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" import type { MergeExclusive } from "type-fest" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" - -import { ActionSchema } from "./action" -import { FieldsetDocuments } from "./fieldset-documents" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" + +import { ActionSchema } from "./action.js" +import { FieldsetDocuments } from "./fieldset-documents.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/action.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/action.ts index ed39ac15..861dd59c 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/action.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/action.ts @@ -1,6 +1,6 @@ import { zu } from "@animeaux/zod-utils" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const ActionSchema = zu .object({ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/form.ts index 48561e2d..10f33745 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/form.ts @@ -3,10 +3,10 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/route.tsx index c3c9d943..55ef0306 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.dogs-configuration/route.tsx @@ -16,9 +16,9 @@ import { Routes } from "#i/core/navigation.js" import { getPageTitle } from "#i/core/page-title.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { ActionSchema } from "./action" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { ActionSchema } from "./action.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/action.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/action.ts index fb1bf60c..c14470d0 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/action.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/action.ts @@ -1,6 +1,6 @@ import { normalizeLineBreaks, zu } from "@animeaux/zod-utils" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const ActionSchema = zu .object({ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-on-stand-animation.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-on-stand-animation.tsx index 088b7cb7..009af52a 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-on-stand-animation.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-on-stand-animation.tsx @@ -1,11 +1,11 @@ import type { FieldMetadata } from "@conform-to/react" -import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetOnStandAnimation() { const { fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/form.ts index de3ae016..162b5964 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/form.ts @@ -3,10 +3,10 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/route.tsx index 47993961..e96ce868 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.on-stand-animations/route.tsx @@ -8,18 +8,18 @@ import { json } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import type { MergeExclusive } from "type-fest" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" - -import { ActionSchema } from "./action" -import { FieldsetOnStandAnimation } from "./fieldset-on-stand-animation" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" + +import { ActionSchema } from "./action.js" +import { FieldsetOnStandAnimation } from "./fieldset-on-stand-animation.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action-schema.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action-schema.ts index 46dc6a3e..eb4e5b79 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action-schema.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action-schema.ts @@ -1,6 +1,6 @@ import { zu } from "@animeaux/zod-utils" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const ActionSchema = zu .object({ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action.server.ts index af30b524..eaa93afb 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/action.server.ts @@ -6,9 +6,9 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import type { MergeExclusive } from "type-fest" -import { db } from "#i/core/db.server" -import { Routes } from "#i/core/navigation" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { Routes } from "#i/core/navigation.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { ActionSchema } from "./action-schema.js" import { RouteParamsSchema } from "./route-params.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-perks.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-perks.tsx index 3d481469..ebd7e1fa 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-perks.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-perks.tsx @@ -1,8 +1,8 @@ import { FieldNumeric } from "#i/core/form-elements/field-numeric.js" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetPerks() { const { fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-price-details.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-price-details.tsx index 5027ad00..8893f7c7 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-price-details.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-price-details.tsx @@ -3,7 +3,7 @@ import { useLoaderData } from "@remix-run/react" import { Card } from "#i/core/layout/card.js" import { ParticipationReceipt } from "#i/show/exhibitors/participation-receipt.js" -import { useForm } from "./form" +import { useForm } from "./form.js" import type { loader } from "./loader.server.js" export function FieldsetPriceDetails() { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/form.ts index 46e2ecc8..e6b24259 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/form.ts @@ -3,7 +3,7 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" import type { action } from "./action.server.js" import { ActionSchema } from "./action-schema.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/loader.server.ts index 9ab1ed60..f36c4ae3 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/loader.server.ts @@ -3,8 +3,8 @@ import { safeParseRouteParam } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { RouteParamsSchema } from "./route-params.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/route.tsx index 6125bd9a..26edcaff 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.perks/route.tsx @@ -1,15 +1,15 @@ import { getFormProps } from "@conform-to/react" import type { MetaFunction } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" - -import { FieldsetPerks } from "./fieldset-perks" -import { FieldsetPriceDetails } from "./fieldset-price-details" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" + +import { FieldsetPerks } from "./fieldset-perks.js" +import { FieldsetPriceDetails } from "./fieldset-price-details.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" import type { loader } from "./loader.server.js" export { action } from "./action.server.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/action.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/action.ts index 88614b42..71dcfc00 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/action.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/action.ts @@ -1,9 +1,9 @@ import { simpleUrl, zu } from "@animeaux/zod-utils" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" import { ExhibitorCategory } from "#i/show/exhibitors/category.js" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const ActionSchema = zu .object({ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-profile.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-profile.tsx index 91484347..f2bd4b39 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-profile.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-profile.tsx @@ -2,20 +2,20 @@ import { ensureArray, ImageUrl, withoutKey } from "@animeaux/core" import { getInputProps } from "@conform-to/react" import { useLoaderData } from "@remix-run/react" -import { DynamicImage } from "#i/core/data-display/image" -import { FieldCheckboxes } from "#i/core/form-elements/field-checkboxes" -import { FieldList } from "#i/core/form-elements/field-list" +import { DynamicImage } from "#i/core/data-display/image.js" +import { FieldCheckboxes } from "#i/core/form-elements/field-checkboxes.js" +import { FieldList } from "#i/core/form-elements/field-list.js" import { FieldRadios } from "#i/core/form-elements/field-radios.js" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Card } from "#i/core/layout/card" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Card } from "#i/core/layout/card.js" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" import { ExhibitorCategory } from "#i/show/exhibitors/category.js" -import { useForm } from "./form" -import type { loader } from "./route" +import { useForm } from "./form.js" +import type { loader } from "./route.js" export function FieldsetProfile() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/form.ts index ee4efd9a..44de709a 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/form.ts @@ -3,10 +3,10 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/route.tsx index b93d3209..87c2a4a4 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.public-profile/route.tsx @@ -8,18 +8,18 @@ import { json } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import type { MergeExclusive } from "type-fest" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" - -import { ActionSchema } from "./action" -import { FieldsetProfile } from "./fieldset-profile" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" + +import { ActionSchema } from "./action.js" +import { FieldsetProfile } from "./fieldset-profile.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action-schema.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action-schema.ts index add18e52..39150620 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action-schema.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action-schema.ts @@ -1,7 +1,7 @@ import { zu } from "@animeaux/zod-utils" import { OnOff } from "#i/core/form-elements/field-on-off.js" -import { Visibility } from "#i/show/visibility" +import { Visibility } from "#i/show/visibility.js" export const actionSchema = zu.object({ isOrganizer: zu diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action.server.ts index 0477c2d2..e56d332e 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/action.server.ts @@ -6,12 +6,12 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import type { MergeExclusive } from "type-fest" -import { db } from "#i/core/db.server" -import { Routes } from "#i/core/navigation" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { Routes } from "#i/core/navigation.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { actionSchema } from "./action-schema" -import { routeParamsSchema } from "./route-params" +import { actionSchema } from "./action-schema.js" +import { routeParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/fieldset-situation.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/fieldset-situation.tsx index bd828e34..36ae46fc 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/fieldset-situation.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/fieldset-situation.tsx @@ -1,12 +1,12 @@ import { FieldOnOff } from "#i/core/form-elements/field-on-off.js" -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldText } from "#i/core/form-elements/field-text" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { Separator } from "#i/core/layout/separator" -import { Visibility } from "#i/show/visibility" - -import { useForm } from "./form" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldText } from "#i/core/form-elements/field-text.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { Separator } from "#i/core/layout/separator.js" +import { Visibility } from "#i/show/visibility.js" + +import { useForm } from "./form.js" export function FieldsetSituation() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/form.ts index bd946eeb..e4784d71 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/form.ts @@ -4,12 +4,12 @@ import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" import { OnOff } from "#i/core/form-elements/field-on-off.js" -import { useBackIfPossible } from "#i/core/navigation" -import { Visibility } from "#i/show/visibility" +import { useBackIfPossible } from "#i/core/navigation.js" +import { Visibility } from "#i/show/visibility.js" -import type { action } from "./action.server" -import { actionSchema } from "./action-schema" -import type { loader } from "./loader.server" +import type { action } from "./action.server.js" +import { actionSchema } from "./action-schema.js" +import type { loader } from "./loader.server.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/loader.server.ts index a982de11..2009b85c 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/loader.server.ts @@ -3,10 +3,10 @@ import { safeParseRouteParam } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/route.tsx index 459ba42e..10fc36fb 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.situation/route.tsx @@ -1,17 +1,17 @@ import { getFormProps } from "@conform-to/react" import type { MetaFunction } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" -import { FieldsetSituation } from "./fieldset-situation" -import { FormProvider, useFormRoot } from "./form" -import type { loader } from "./loader.server" +import { FieldsetSituation } from "./fieldset-situation.js" +import { FormProvider, useFormRoot } from "./form.js" +import type { loader } from "./loader.server.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.server.ts index 99e375fd..7639d928 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.server.ts @@ -6,9 +6,9 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import type { MergeExclusive } from "type-fest" -import { db } from "#i/core/db.server" -import { Routes } from "#i/core/navigation" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { Routes } from "#i/core/navigation.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { ActionSchema } from "./action.js" import { RouteParamsSchema } from "./route-params.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.ts index d7d19ae5..ae105d52 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/action.ts @@ -1,8 +1,8 @@ import { zu } from "@animeaux/zod-utils" -import { OnOff } from "#i/core/form-elements/field-on-off" -import { InstallationDay } from "#i/show/exhibitors/stand-configuration/installation-day" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { OnOff } from "#i/core/form-elements/field-on-off.js" +import { InstallationDay } from "#i/show/exhibitors/stand-configuration/installation-day.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export const DividerType = { none: "none", diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-configuration.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-configuration.tsx index e8762c33..291c0ff9 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-configuration.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-configuration.tsx @@ -2,14 +2,14 @@ import { useLoaderData } from "@remix-run/react" import invariant from "tiny-invariant" import { FieldNumeric } from "#i/core/form-elements/field-numeric.js" -import { FieldOnOff } from "#i/core/form-elements/field-on-off" -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { InstallationDay } from "#i/show/exhibitors/stand-configuration/installation-day" - -import { DividerType } from "./action" -import { useForm } from "./form" +import { FieldOnOff } from "#i/core/form-elements/field-on-off.js" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { InstallationDay } from "#i/show/exhibitors/stand-configuration/installation-day.js" + +import { DividerType } from "./action.js" +import { useForm } from "./form.js" import type { loader } from "./loader.server.js" export function FieldsetConfiguration() { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-price-details.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-price-details.tsx index 8b141dc2..5a7dc922 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-price-details.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-price-details.tsx @@ -4,7 +4,7 @@ import { OnOff } from "#i/core/form-elements/field-on-off.js" import { Card } from "#i/core/layout/card.js" import { ParticipationReceipt } from "#i/show/exhibitors/participation-receipt.js" -import { useForm } from "./form" +import { useForm } from "./form.js" import type { loader } from "./loader.server.js" export function FieldsetPriceDetails() { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-status.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-status.tsx index 4a353a73..019b9b53 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-status.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/fieldset-status.tsx @@ -1,10 +1,10 @@ -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStatus() { const { form, fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/form.ts index aaf0b3eb..097415b3 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/form.ts @@ -3,8 +3,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { OnOff } from "#i/core/form-elements/field-on-off" -import { useBackIfPossible } from "#i/core/navigation" +import { OnOff } from "#i/core/form-elements/field-on-off.js" +import { useBackIfPossible } from "#i/core/navigation.js" import { ActionSchema, DividerType } from "./action.js" import type { action } from "./action.server.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/loader.server.ts index 1c27c3ed..dde6166f 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/loader.server.ts @@ -4,8 +4,8 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { RouteParamsSchema } from "./route-params.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/route.tsx index 351b6b4e..0f16e8c7 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.stand-configuration/route.tsx @@ -1,15 +1,15 @@ import { getFormProps } from "@conform-to/react" import type { MetaFunction } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" - -import { FieldsetConfiguration } from "./fieldset-configuration" -import { FieldsetPriceDetails } from "./fieldset-price-details" -import { FieldsetStatus } from "./fieldset-status" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" + +import { FieldsetConfiguration } from "./fieldset-configuration.js" +import { FieldsetPriceDetails } from "./fieldset-price-details.js" +import { FieldsetStatus } from "./fieldset-status.js" +import { FormProvider, useFormRoot } from "./form.js" import type { loader } from "./loader.server.js" export { action } from "./action.server.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/fieldset-structure.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/fieldset-structure.tsx index fc22e3b5..023b3262 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/fieldset-structure.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/fieldset-structure.tsx @@ -1,8 +1,8 @@ -import { FieldText } from "#i/core/form-elements/field-text" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { FieldText } from "#i/core/form-elements/field-text.js" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetStructure() { const { fields } = useForm() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/form.ts index 5f9f1c7d..51543570 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/form.ts @@ -3,10 +3,10 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/route.tsx index 5e042744..c9599fb5 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.edit.structure/route.tsx @@ -8,17 +8,17 @@ import { json } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import type { MergeExclusive } from "type-fest" -import { Action } from "#i/core/actions" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" - -import { ActionSchema } from "./action" -import { FieldsetStructure } from "./fieldset-structure" -import { FormProvider, useFormRoot } from "./form" +import { Action } from "#i/core/actions.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" + +import { ActionSchema } from "./action.js" +import { FieldsetStructure } from "./fieldset-structure.js" +import { FormProvider, useFormRoot } from "./form.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/action.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/action.server.ts index e76d77de..91e70eee 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/action.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/action.server.ts @@ -11,8 +11,8 @@ import { AlreadyExistError } from "#i/core/errors.server.js" import { Routes } from "#i/core/navigation.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { actionSchema } from "./action" -import { routeParamsSchema } from "./route-params" +import { actionSchema } from "./action.js" +import { routeParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/form.ts index e2ec2606..24438365 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/form.ts @@ -3,9 +3,9 @@ import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" import { toIsoDateValue } from "#i/core/dates.js" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" -import { actionSchema } from "./action" +import { actionSchema } from "./action.js" import type { action } from "./action.server.js" import type { loader } from "./loader.server.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/loader.server.ts index c9a7b39c..92384af8 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/loader.server.ts @@ -7,7 +7,7 @@ import { db } from "#i/core/db.server.js" import { notFound } from "#i/core/response.server.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/route.tsx index eaf6efe0..145c0477 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.$invoiceId.edit/route.tsx @@ -7,11 +7,11 @@ import { PageLayout } from "#i/core/layout/page.js" import { getPageTitle } from "#i/core/page-title.js" import { FieldsetInvoice } from "#i/show/invoice/fieldset-invoice.js" -import { useFormRoot } from "./form" -import type { loader } from "./loader.server" +import { useFormRoot } from "./form.js" +import type { loader } from "./loader.server.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [ diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/action.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/action.server.ts index 5657148f..ca9a6607 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/action.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/action.server.ts @@ -11,8 +11,8 @@ import { AlreadyExistError } from "#i/core/errors.server.js" import { Routes } from "#i/core/navigation.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { actionSchema } from "./action" -import { routeParamsSchema } from "./route-params" +import { actionSchema } from "./action.js" +import { routeParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/form.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/form.ts index cbc69416..2fef84b2 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/form.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/form.ts @@ -2,11 +2,11 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" +import { useBackIfPossible } from "#i/core/navigation.js" import { InvoiceStatus } from "#i/show/invoice/status.js" -import { actionSchema } from "./action" -import type { action } from "./route" +import { actionSchema } from "./action.js" +import type { action } from "./route.js" export function useFormRoot() { const fetcher = useFetcher() diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/loader.server.ts index e032e459..2656d5aa 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/loader.server.ts @@ -6,7 +6,7 @@ import { json } from "@remix-run/node" import { db } from "#i/core/db.server.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/route.tsx index 5dd49443..b61e35a8 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors.$id.invoice.new/route.tsx @@ -7,11 +7,11 @@ import { PageLayout } from "#i/core/layout/page.js" import { getPageTitle } from "#i/core/page-title.js" import { FieldsetInvoice } from "#i/show/invoice/fieldset-invoice.js" -import { useFormRoot } from "./form" -import type { loader } from "./loader.server" +import { useFormRoot } from "./form.js" +import type { loader } from "./loader.server.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [ diff --git a/apps/admin/src/routes/_layout.show.exhibitors._index/card-list.tsx b/apps/admin/src/routes/_layout.show.exhibitors._index/card-list.tsx index 923a4305..e8ede0b0 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors._index/card-list.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors._index/card-list.tsx @@ -1,16 +1,16 @@ import { useOptimisticSearchParams } from "@animeaux/search-params-io" import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" import { DownloadExhibitorsTrigger } from "#i/routes/downloads.show.exhibitors/trigger.js" -import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params" +import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" -import type { loader } from "./loader.server" -import { Row, Rows } from "./rows" +import type { loader } from "./loader.server.js" +import { Row, Rows } from "./rows.js" export function CardList() { const { totalCount, pageCount, exhibitors, canExport } = diff --git a/apps/admin/src/routes/_layout.show.exhibitors._index/loader.server.ts b/apps/admin/src/routes/_layout.show.exhibitors._index/loader.server.ts index b8db4765..a1feebaf 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors._index/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.exhibitors._index/loader.server.ts @@ -3,10 +3,10 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { db } from "#i/core/db.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params" +import { db } from "#i/core/db.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" import { hasGroups } from "#i/users/groups.js" const EXHIBITOR_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.show.exhibitors._index/route.tsx b/apps/admin/src/routes/_layout.show.exhibitors._index/route.tsx index a971a679..eb24bdb7 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors._index/route.tsx @@ -1,13 +1,13 @@ import type { MetaFunction } from "@remix-run/react" import { useLoaderData } from "@remix-run/react" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { ExhibitorFilters } from "#i/show/exhibitors/filter-form" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { ExhibitorFilters } from "#i/show/exhibitors/filter-form.js" -import { CardList } from "./card-list" +import { CardList } from "./card-list.js" import type { loader } from "./loader.server.js" export { loader } from "./loader.server.js" diff --git a/apps/admin/src/routes/_layout.show.exhibitors._index/rows.tsx b/apps/admin/src/routes/_layout.show.exhibitors._index/rows.tsx index e1e352cd..22ea6be0 100644 --- a/apps/admin/src/routes/_layout.show.exhibitors._index/rows.tsx +++ b/apps/admin/src/routes/_layout.show.exhibitors._index/rows.tsx @@ -3,14 +3,14 @@ import { Primitive } from "@animeaux/react-primitives" import type { SerializeFrom } from "@remix-run/node" import { forwardRef } from "react" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import { Routes } from "#i/core/navigation" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { Routes } from "#i/core/navigation.js" import { Icon } from "#i/generated/icon.js" import { SponsorshipCategory } from "#i/show/sponsors/category.js" -import { Visibility, VisibilityIcon } from "#i/show/visibility" +import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export const Rows = forwardRef< React.ComponentRef, diff --git a/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-profile.tsx b/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-profile.tsx index 8fa66b6d..67464e3d 100644 --- a/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-profile.tsx +++ b/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-profile.tsx @@ -1,13 +1,13 @@ import { ImageUrl } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" -import { ProseInlineAction } from "#i/core/actions" -import { DynamicImage } from "#i/core/data-display/image" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Icon } from "#i/generated/icon" +import { ProseInlineAction } from "#i/core/actions.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function CardProfile() { const { sponsor } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-situation.tsx b/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-situation.tsx index 8d296b5f..f5c0c653 100644 --- a/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-situation.tsx +++ b/apps/admin/src/routes/_layout.show.sponsors.$id._index/card-situation.tsx @@ -1,15 +1,15 @@ import { useLoaderData } from "@remix-run/react" -import { ProseInlineAction } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { Card } from "#i/core/layout/card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" -import { SponsorshipCategory } from "#i/show/sponsors/category" -import { Visibility, VisibilityIcon } from "#i/show/visibility" +import { ProseInlineAction } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { Card } from "#i/core/layout/card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" +import { SponsorshipCategory } from "#i/show/sponsors/category.js" +import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function CardSituation() { return ( diff --git a/apps/admin/src/routes/_layout.show.sponsors.$id._index/route.tsx b/apps/admin/src/routes/_layout.show.sponsors.$id._index/route.tsx index 2ce01dae..c8ba6ffb 100644 --- a/apps/admin/src/routes/_layout.show.sponsors.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.sponsors.$id._index/route.tsx @@ -6,15 +6,15 @@ import type { MetaFunction } from "@remix-run/react" import { useLoaderData } from "@remix-run/react" import invariant from "tiny-invariant" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" - -import { CardProfile } from "./card-profile" -import { CardSituation } from "./card-situation" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" + +import { CardProfile } from "./card-profile.js" +import { CardSituation } from "./card-situation.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.sponsors._index/card-list.tsx b/apps/admin/src/routes/_layout.show.sponsors._index/card-list.tsx index 53446572..4fee1cf0 100644 --- a/apps/admin/src/routes/_layout.show.sponsors._index/card-list.tsx +++ b/apps/admin/src/routes/_layout.show.sponsors._index/card-list.tsx @@ -1,15 +1,15 @@ import { useOptimisticSearchParams } from "@animeaux/search-params-io" import { useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" -import { SponsorSearchParams } from "#i/show/sponsors/search-params" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" +import { SponsorSearchParams } from "#i/show/sponsors/search-params.js" -import { SponsorItem } from "./item" -import type { loader } from "./route" +import { SponsorItem } from "./item.js" +import type { loader } from "./route.js" export function CardList() { const { totalCount, pageCount, sponsors } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.sponsors._index/item.tsx b/apps/admin/src/routes/_layout.show.sponsors._index/item.tsx index 9ca6d851..8db04d98 100644 --- a/apps/admin/src/routes/_layout.show.sponsors._index/item.tsx +++ b/apps/admin/src/routes/_layout.show.sponsors._index/item.tsx @@ -1,13 +1,13 @@ import { ImageUrl } from "@animeaux/core" import type { SerializeFrom } from "@remix-run/node" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import { Routes } from "#i/core/navigation" -import { SponsorshipCategory } from "#i/show/sponsors/category" -import { Visibility, VisibilityIcon } from "#i/show/visibility" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { Routes } from "#i/core/navigation.js" +import { SponsorshipCategory } from "#i/show/sponsors/category.js" +import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SponsorItem({ sponsor, diff --git a/apps/admin/src/routes/_layout.show.sponsors._index/route.tsx b/apps/admin/src/routes/_layout.show.sponsors._index/route.tsx index 952735ac..cadb534f 100644 --- a/apps/admin/src/routes/_layout.show.sponsors._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.sponsors._index/route.tsx @@ -5,18 +5,18 @@ import type { MetaFunction } from "@remix-run/react" import { useLoaderData } from "@remix-run/react" import invariant from "tiny-invariant" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { SponsorFilters } from "#i/show/sponsors/filter-form" -import { SponsorSearchParams } from "#i/show/sponsors/search-params" - -import { CardList } from "./card-list" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { SponsorFilters } from "#i/show/sponsors/filter-form.js" +import { SponsorSearchParams } from "#i/show/sponsors/search-params.js" + +import { CardList } from "./card-list.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/action.server.ts b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/action.server.ts index 94a23fc9..3458f721 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/action.server.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/action.server.ts @@ -10,7 +10,7 @@ import { Routes } from "#i/core/navigation.js" import { badRequest, notFound } from "#i/core/response.server.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { RouteParamsSchema } from "./route-params" +import { RouteParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/application-item.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/application-item.tsx index 8ab294f9..226f1e05 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/application-item.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/application-item.tsx @@ -6,7 +6,7 @@ import { toRoundedRelative } from "#i/core/dates.js" import { Routes } from "#i/core/navigation.js" import { ApplicationStatusIcon } from "#i/show/exhibitors/applications/status.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" type Application = SerializeFrom["applications"][number] diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-application-list.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-application-list.tsx index f467797b..90a41dbd 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-application-list.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-application-list.tsx @@ -2,16 +2,16 @@ import { useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" import { ApplicationSearchParams, ApplicationSearchParamsN, } from "#i/show/exhibitors/applications/search-params.js" -import { ApplicationItem } from "./application-item" -import type { loader } from "./loader.server" +import { ApplicationItem } from "./application-item.js" +import type { loader } from "./loader.server.js" export function CardApplicationList() { const { standSize, applicationTotalCount, applications } = diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-details.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-details.tsx index ec1018cd..b9ceafd3 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-details.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-details.tsx @@ -4,7 +4,7 @@ import { ItemList, SimpleItem } from "#i/core/data-display/item.js" import { Card } from "#i/core/layout/card.js" import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardDetails() { return ( diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-exhibitor-list.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-exhibitor-list.tsx index 875c543a..cd3c5a2f 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-exhibitor-list.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-exhibitor-list.tsx @@ -2,13 +2,13 @@ import { useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" -import { ExhibitorItem } from "./exhibitor-item" -import type { loader } from "./loader.server" +import { ExhibitorItem } from "./exhibitor-item.js" +import type { loader } from "./loader.server.js" export function CardExhibitorList() { const { standSize, exhibitorTotalCount, exhibitors } = diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-prices.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-prices.tsx index f7ef91f9..408fb373 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-prices.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-prices.tsx @@ -6,7 +6,7 @@ import { Icon } from "#i/generated/icon.js" import { ExhibitorCategory } from "#i/show/exhibitors/category.js" import { Price } from "#i/show/price.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardPrices() { return ( diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-situation.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-situation.tsx index 90241f3c..89c6bebc 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-situation.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/card-situation.tsx @@ -6,7 +6,7 @@ import { formatBooking } from "#i/show/stand-size/booking.js" import { StandSizeBookingIcon } from "#i/show/stand-size/booking-icon.js" import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function CardSituation() { return ( diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/exhibitor-item.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/exhibitor-item.tsx index 0bf19cfc..0c464e56 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/exhibitor-item.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/exhibitor-item.tsx @@ -6,7 +6,7 @@ import { DynamicImage } from "#i/core/data-display/image.js" import { Routes } from "#i/core/navigation.js" import { Visibility, VisibilityIcon } from "#i/show/visibility.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" type Exhibitor = SerializeFrom["exhibitors"][number] diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/loader.server.ts b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/loader.server.ts index d4c0c22d..e3f6c32e 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/loader.server.ts @@ -4,15 +4,15 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { ApplicationSearchParams, ApplicationSearchParamsN, } from "#i/show/exhibitors/applications/search-params.js" import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" -import { RouteParamsSchema } from "./route-params" +import { RouteParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/route.tsx b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/route.tsx index 82d95ed9..8b823cb7 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id._index/route.tsx @@ -4,25 +4,25 @@ import { useFetcher, useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" import { ErrorsInlineHelper } from "#i/core/data-display/errors.js" -import { PageLayout } from "#i/core/layout/page" +import { PageLayout } from "#i/core/layout/page.js" import { Routes } from "#i/core/navigation.js" -import { getPageTitle } from "#i/core/page-title" +import { getPageTitle } from "#i/core/page-title.js" import { Dialog } from "#i/core/popovers/dialog.js" import { Icon } from "#i/generated/icon.js" import { theme } from "#i/generated/theme.js" import type { action } from "./action.server.js" -import { CardApplicationList } from "./card-application-list" -import { CardDetails } from "./card-details" -import { CardExhibitorList } from "./card-exhibitor-list" -import { CardPrices } from "./card-prices" -import { CardSituation } from "./card-situation" -import type { loader } from "./loader.server" - -export { action } from "./action.server" -export { loader } from "./loader.server" +import { CardApplicationList } from "./card-application-list.js" +import { CardDetails } from "./card-details.js" +import { CardExhibitorList } from "./card-exhibitor-list.js" +import { CardPrices } from "./card-prices.js" +import { CardSituation } from "./card-situation.js" +import type { loader } from "./loader.server.js" + +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return [{ title: getPageTitle(data?.standSize.label ?? getErrorTitle(404)) }] diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/action.server.ts b/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/action.server.ts index 5c2cd317..e4e22b4f 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/action.server.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/action.server.ts @@ -10,9 +10,9 @@ import { db } from "#i/core/db.server.js" import { NotFoundError } from "#i/core/errors.server.js" import { Routes } from "#i/core/navigation.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { actionSchema } from "#i/show/stand-size/action-schema" +import { actionSchema } from "#i/show/stand-size/action-schema.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function action({ request, params }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/form.ts b/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/form.ts index f7417ea9..b397b977 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/form.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/form.ts @@ -2,8 +2,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher, useLoaderData } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" -import { actionSchema } from "#i/show/stand-size/action-schema" +import { useBackIfPossible } from "#i/core/navigation.js" +import { actionSchema } from "#i/show/stand-size/action-schema.js" import { Visibility } from "#i/show/visibility.js" import type { action } from "./action.server.js" diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/loader.server.ts b/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/loader.server.ts index 03a0dcc8..4fde977c 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.$id.edit/loader.server.ts @@ -3,10 +3,10 @@ import { safeParseRouteParam } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { routeParamsSchema } from "./route-params" +import { routeParamsSchema } from "./route-params.js" export async function loader({ request, params }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.stand-sizes._index/card-list.tsx b/apps/admin/src/routes/_layout.show.stand-sizes._index/card-list.tsx index 40b9af09..f82ec3f8 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes._index/card-list.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes._index/card-list.tsx @@ -2,12 +2,12 @@ import { useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions.js" import { BaseLink } from "#i/core/base-link.js" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { Card } from "#i/core/layout/card" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { Card } from "#i/core/layout/card.js" import { Routes } from "#i/core/navigation.js" -import { StandSizeItem } from "./item" -import type { loader } from "./loader.server" +import { StandSizeItem } from "./item.js" +import type { loader } from "./loader.server.js" export function CardList() { const { standSizes } = useLoaderData() diff --git a/apps/admin/src/routes/_layout.show.stand-sizes._index/item.tsx b/apps/admin/src/routes/_layout.show.stand-sizes._index/item.tsx index 79d9f209..f05f00c3 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes._index/item.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes._index/item.tsx @@ -6,7 +6,7 @@ import { Routes } from "#i/core/navigation.js" import { StandSizeBookingChip } from "#i/show/stand-size/booking-chip.js" import { StandSizeBookingIcon } from "#i/show/stand-size/booking-icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" type StandSize = SerializeFrom["standSizes"][number] diff --git a/apps/admin/src/routes/_layout.show.stand-sizes._index/route.tsx b/apps/admin/src/routes/_layout.show.stand-sizes._index/route.tsx index 6b7861b7..8e86bad6 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes._index/route.tsx +++ b/apps/admin/src/routes/_layout.show.stand-sizes._index/route.tsx @@ -3,9 +3,9 @@ import type { MetaFunction } from "@remix-run/react" import { PageLayout } from "#i/core/layout/page.js" import { getPageTitle } from "#i/core/page-title.js" -import { CardList } from "./card-list" +import { CardList } from "./card-list.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = () => { return [{ title: getPageTitle("Tailles de stand") }] diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.new/action.server.ts b/apps/admin/src/routes/_layout.show.stand-sizes.new/action.server.ts index 301675ab..7baf2a31 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.new/action.server.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.new/action.server.ts @@ -10,7 +10,7 @@ import { db } from "#i/core/db.server.js" import { AlreadyExistError } from "#i/core/errors.server.js" import { Routes } from "#i/core/navigation.js" import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { actionSchema } from "#i/show/stand-size/action-schema" +import { actionSchema } from "#i/show/stand-size/action-schema.js" export async function action({ request }: ActionFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.new/form.ts b/apps/admin/src/routes/_layout.show.stand-sizes.new/form.ts index 64e582d2..c6b3a1a6 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.new/form.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.new/form.ts @@ -2,8 +2,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useFetcher } from "@remix-run/react" -import { useBackIfPossible } from "#i/core/navigation" -import { actionSchema } from "#i/show/stand-size/action-schema" +import { useBackIfPossible } from "#i/core/navigation.js" +import { actionSchema } from "#i/show/stand-size/action-schema.js" import { Visibility } from "#i/show/visibility.js" import type { action } from "./action.server.js" diff --git a/apps/admin/src/routes/_layout.show.stand-sizes.new/loader.server.ts b/apps/admin/src/routes/_layout.show.stand-sizes.new/loader.server.ts index 87018633..7045e066 100644 --- a/apps/admin/src/routes/_layout.show.stand-sizes.new/loader.server.ts +++ b/apps/admin/src/routes/_layout.show.stand-sizes.new/loader.server.ts @@ -1,9 +1,9 @@ import { UserGroup } from "@animeaux/prisma/server" import type { LoaderFunctionArgs } from "@remix-run/node" -import { db } from "#i/core/db.server" +import { db } from "#i/core/db.server.js" import { ok } from "#i/core/response.server.js" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/_layout.show/route.tsx b/apps/admin/src/routes/_layout.show/route.tsx index 32984c67..119a12c9 100644 --- a/apps/admin/src/routes/_layout.show/route.tsx +++ b/apps/admin/src/routes/_layout.show/route.tsx @@ -3,11 +3,11 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { Outlet, useLoaderData } from "@remix-run/react" -import { db } from "#i/core/db.server" +import { db } from "#i/core/db.server.js" import type { RouteHandle } from "#i/core/handles.js" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" import { Entity } from "#i/routes/resources.global-search/entity.js" import { hasGroups } from "#i/users/groups.js" diff --git a/apps/admin/src/routes/_layout.tsx b/apps/admin/src/routes/_layout.tsx index 9ce2d401..0b3ffe5f 100644 --- a/apps/admin/src/routes/_layout.tsx +++ b/apps/admin/src/routes/_layout.tsx @@ -13,25 +13,25 @@ import { createPath } from "history" import { useEffect, useState } from "react" import { promiseHash } from "remix-utils/promise" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { db } from "#i/core/db.server" -import { SideBar } from "#i/core/layout/side-bar" -import { TabBar } from "#i/core/layout/tab-bar" -import { useCurrentUserForMonitoring } from "#i/core/monitoring" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { DropdownSheet } from "#i/core/popovers/dropdown-sheet" -import { NextSearchParams } from "#i/core/search-params" -import { getCurrentUserPreferences } from "#i/current-user/preferences.server" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { theme } from "#i/generated/theme" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { db } from "#i/core/db.server.js" +import { SideBar } from "#i/core/layout/side-bar.js" +import { TabBar } from "#i/core/layout/tab-bar.js" +import { useCurrentUserForMonitoring } from "#i/core/monitoring.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { DropdownSheet } from "#i/core/popovers/dropdown-sheet.js" +import { NextSearchParams } from "#i/core/search-params.js" +import { getCurrentUserPreferences } from "#i/current-user/preferences.server.js" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { theme } from "#i/generated/theme.js" import nameAndLogo from "#i/images/name-and-logo.svg" -import { GlobalSearch } from "#i/routes/resources.global-search/input" -import { usePreferencesFetcher } from "#i/routes/resources.preferences/fetcher" -import { UserAvatar } from "#i/users/avatar" -import { hasGroups } from "#i/users/groups" +import { GlobalSearch } from "#i/routes/resources.global-search/input.js" +import { usePreferencesFetcher } from "#i/routes/resources.preferences/fetcher.js" +import { UserAvatar } from "#i/users/avatar.js" +import { hasGroups } from "#i/users/groups.js" export async function loader({ request }: LoaderFunctionArgs) { const { currentUser, preferences } = await promiseHash({ diff --git a/apps/admin/src/routes/_layout.users.$id._index.tsx b/apps/admin/src/routes/_layout.users.$id._index.tsx index b5f45109..168aed10 100644 --- a/apps/admin/src/routes/_layout.users.$id._index.tsx +++ b/apps/admin/src/routes/_layout.users.$id._index.tsx @@ -12,37 +12,37 @@ import { useFetcher, useLoaderData } from "@remix-run/react" import { useEffect, useState } from "react" import { promiseHash } from "remix-utils/promise" -import { AnimalItem } from "#i/animals/item" -import { AnimalSearchParams } from "#i/animals/search-params" +import { AnimalItem } from "#i/animals/item.js" +import { AnimalSearchParams } from "#i/animals/search-params.js" import { ACTIVE_ANIMAL_STATUS, NON_ACTIVE_ANIMAL_STATUS, -} from "#i/animals/status" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { ErrorsInlineHelper } from "#i/core/data-display/errors" -import { BlockHelper, InlineHelper } from "#i/core/data-display/helper" -import { inferInstanceColor } from "#i/core/data-display/instance-color" -import { ItemList, SimpleItem } from "#i/core/data-display/item" -import { toRoundedRelative } from "#i/core/dates" -import { db } from "#i/core/db.server" -import { NotFoundError, ReferencedError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { AvatarCard } from "#i/core/layout/avatar-card" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { Dialog } from "#i/core/popovers/dialog" -import { prisma } from "#i/core/prisma.server" -import { badRequest, notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { Icon } from "#i/generated/icon" -import { UserAvatar } from "#i/users/avatar" -import { DeleteMyselfError, DisableMyselfError } from "#i/users/db.server" -import { GROUP_ICON, GROUP_TRANSLATION, hasGroups } from "#i/users/groups" +} from "#i/animals/status.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { ErrorsInlineHelper } from "#i/core/data-display/errors.js" +import { BlockHelper, InlineHelper } from "#i/core/data-display/helper.js" +import { inferInstanceColor } from "#i/core/data-display/instance-color.js" +import { ItemList, SimpleItem } from "#i/core/data-display/item.js" +import { toRoundedRelative } from "#i/core/dates.js" +import { db } from "#i/core/db.server.js" +import { NotFoundError, ReferencedError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { AvatarCard } from "#i/core/layout/avatar-card.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Dialog } from "#i/core/popovers/dialog.js" +import { prisma } from "#i/core/prisma.server.js" +import { badRequest, notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { Icon } from "#i/generated/icon.js" +import { UserAvatar } from "#i/users/avatar.js" +import { DeleteMyselfError, DisableMyselfError } from "#i/users/db.server.js" +import { GROUP_ICON, GROUP_TRANSLATION, hasGroups } from "#i/users/groups.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.users.$id.edit.tsx b/apps/admin/src/routes/_layout.users.$id.edit.tsx index de663d00..bc1b6fb8 100644 --- a/apps/admin/src/routes/_layout.users.$id.edit.tsx +++ b/apps/admin/src/routes/_layout.users.$id.edit.tsx @@ -8,20 +8,20 @@ import type { import { json } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { EmailAlreadyUsedError, NotFoundError } from "#i/core/errors.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes, useBackIfPossible } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { LockMyselfError } from "#i/users/db.server" -import { ActionFormData, UserForm } from "#i/users/form" -import { GROUP_TRANSLATION } from "#i/users/groups" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { EmailAlreadyUsedError, NotFoundError } from "#i/core/errors.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes, useBackIfPossible } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { LockMyselfError } from "#i/users/db.server.js" +import { ActionFormData, UserForm } from "#i/users/form.js" +import { GROUP_TRANSLATION } from "#i/users/groups.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/_layout.users._index.tsx b/apps/admin/src/routes/_layout.users._index.tsx index a4687889..ea0ab4fe 100644 --- a/apps/admin/src/routes/_layout.users._index.tsx +++ b/apps/admin/src/routes/_layout.users._index.tsx @@ -10,26 +10,26 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action" -import { Chip } from "#i/core/data-display/chip" -import { SimpleEmpty } from "#i/core/data-display/empty" -import { toRoundedRelative } from "#i/core/dates" -import { db } from "#i/core/db.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { PageSearchParams } from "#i/core/search-params" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { Icon } from "#i/generated/icon" -import { UserAvatar } from "#i/users/avatar" -import { UserFilterForm } from "#i/users/filter-form" -import { GROUP_ICON } from "#i/users/groups" -import { UserSearchParams } from "#i/users/search-params" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { SortAndFiltersFloatingAction } from "#i/core/controllers/sort-and-filters-floating-action.js" +import { Chip } from "#i/core/data-display/chip.js" +import { SimpleEmpty } from "#i/core/data-display/empty.js" +import { toRoundedRelative } from "#i/core/dates.js" +import { db } from "#i/core/db.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { PageSearchParams } from "#i/core/search-params.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { Icon } from "#i/generated/icon.js" +import { UserAvatar } from "#i/users/avatar.js" +import { UserFilterForm } from "#i/users/filter-form.js" +import { GROUP_ICON } from "#i/users/groups.js" +import { UserSearchParams } from "#i/users/search-params.js" const USER_COUNT_PER_PAGE = 20 diff --git a/apps/admin/src/routes/_layout.users.new.tsx b/apps/admin/src/routes/_layout.users.new.tsx index 80993b94..d4907306 100644 --- a/apps/admin/src/routes/_layout.users.new.tsx +++ b/apps/admin/src/routes/_layout.users.new.tsx @@ -8,16 +8,16 @@ import type { import { json, redirect } from "@remix-run/node" import { useFetcher } from "@remix-run/react" -import { ErrorPage } from "#i/core/data-display/error-page" -import { db } from "#i/core/db.server" -import { EmailAlreadyUsedError } from "#i/core/errors.server" -import { Card } from "#i/core/layout/card" -import { PageLayout } from "#i/core/layout/page" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { MissingPasswordError } from "#i/users/db.server" -import { ActionFormData, UserForm } from "#i/users/form" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { db } from "#i/core/db.server.js" +import { EmailAlreadyUsedError } from "#i/core/errors.server.js" +import { Card } from "#i/core/layout/card.js" +import { PageLayout } from "#i/core/layout/page.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { MissingPasswordError } from "#i/users/db.server.js" +import { ActionFormData, UserForm } from "#i/users/form.js" export async function loader({ request }: LoaderFunctionArgs) { const currentUser = await db.currentUser.get(request, { diff --git a/apps/admin/src/routes/animals.$id.pictures.$pictureId.tsx b/apps/admin/src/routes/animals.$id.pictures.$pictureId.tsx index f1ba1918..20eeea4a 100644 --- a/apps/admin/src/routes/animals.$id.pictures.$pictureId.tsx +++ b/apps/admin/src/routes/animals.$id.pictures.$pictureId.tsx @@ -5,22 +5,22 @@ import type { LoaderFunctionArgs, MetaFunction } from "@remix-run/node" import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" -import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures" -import { getAnimalDisplayName } from "#i/animals/profile/name" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { DynamicImage } from "#i/core/data-display/image" -import { db } from "#i/core/db.server" -import type { RouteHandle } from "#i/core/handles" -import { assertIsDefined } from "#i/core/is-defined.server" -import { useCurrentUserForMonitoring } from "#i/core/monitoring" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { DownloadPictureLink } from "#i/routes/downloads.picture.$id/link" +import { getAllAnimalPictures } from "#i/animals/pictures/all-pictures.js" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { db } from "#i/core/db.server.js" +import type { RouteHandle } from "#i/core/handles.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { useCurrentUserForMonitoring } from "#i/core/monitoring.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { DownloadPictureLink } from "#i/routes/downloads.picture.$id/link.js" export const handle: RouteHandle = { htmlBackgroundColor: cn("bg-white"), diff --git a/apps/admin/src/routes/animals.$id.pictures._index.tsx b/apps/admin/src/routes/animals.$id.pictures._index.tsx index d17fd5d8..71d85e42 100644 --- a/apps/admin/src/routes/animals.$id.pictures._index.tsx +++ b/apps/admin/src/routes/animals.$id.pictures._index.tsx @@ -3,12 +3,12 @@ import { zu } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import { redirect } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertIsDefined } from "#i/core/is-defined.server" -import { Routes } from "#i/core/navigation" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { assertIsDefined } from "#i/core/is-defined.server.js" +import { Routes } from "#i/core/navigation.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string().uuid(), diff --git a/apps/admin/src/routes/define-password.tsx b/apps/admin/src/routes/define-password.tsx index d55395f4..4a55fc81 100644 --- a/apps/admin/src/routes/define-password.tsx +++ b/apps/admin/src/routes/define-password.tsx @@ -10,18 +10,18 @@ import { json, redirect } from "@remix-run/node" import { useFetcher, useLoaderData } from "@remix-run/react" import { useEffect, useRef } from "react" -import { Action } from "#i/core/actions" -import { InlineHelper } from "#i/core/data-display/helper" -import { db } from "#i/core/db.server" -import { Form } from "#i/core/form-elements/form" -import { PasswordInput } from "#i/core/form-elements/password-input" -import type { RouteHandle } from "#i/core/handles" -import { AuthPage } from "#i/core/layout/auth-page" -import { useCurrentUserForMonitoring } from "#i/core/monitoring" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { NextSearchParams } from "#i/core/search-params" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { InlineHelper } from "#i/core/data-display/helper.js" +import { db } from "#i/core/db.server.js" +import { Form } from "#i/core/form-elements/form.js" +import { PasswordInput } from "#i/core/form-elements/password-input.js" +import type { RouteHandle } from "#i/core/handles.js" +import { AuthPage } from "#i/core/layout/auth-page.js" +import { useCurrentUserForMonitoring } from "#i/core/monitoring.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { NextSearchParams } from "#i/core/search-params.js" +import { Icon } from "#i/generated/icon.js" export const handle: RouteHandle = { htmlBackgroundColor: cn("bg-white"), diff --git a/apps/admin/src/routes/downloads.animals.tsx b/apps/admin/src/routes/downloads.animals.tsx index a5963e1a..5f375133 100644 --- a/apps/admin/src/routes/downloads.animals.tsx +++ b/apps/admin/src/routes/downloads.animals.tsx @@ -11,23 +11,26 @@ import { Await, useLoaderData } from "@remix-run/react" import chunk from "lodash.chunk" import { Suspense } from "react" -import { GENDER_ICON } from "#i/animals/gender" +import { GENDER_ICON } from "#i/animals/gender.js" import { AnimalSearchParams, AnimalSortSearchParams, -} from "#i/animals/search-params" -import { Action } from "#i/core/actions" -import { BlockHelper } from "#i/core/data-display/helper" -import type { DynamicImageProps, ImageSize } from "#i/core/data-display/image" -import { BaseImage, createCloudinaryUrl } from "#i/core/data-display/image" -import { db } from "#i/core/db.server" -import type { RouteHandle } from "#i/core/handles" -import { Spinner } from "#i/core/loaders/spinner" -import { useCurrentUserForMonitoring } from "#i/core/monitoring" -import { getPageTitle } from "#i/core/page-title" -import { prisma } from "#i/core/prisma.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { Icon } from "#i/generated/icon" +} from "#i/animals/search-params.js" +import { Action } from "#i/core/actions.js" +import { BlockHelper } from "#i/core/data-display/helper.js" +import type { + DynamicImageProps, + ImageSize, +} from "#i/core/data-display/image.js" +import { BaseImage, createCloudinaryUrl } from "#i/core/data-display/image.js" +import { db } from "#i/core/db.server.js" +import type { RouteHandle } from "#i/core/handles.js" +import { Spinner } from "#i/core/loaders/spinner.js" +import { useCurrentUserForMonitoring } from "#i/core/monitoring.js" +import { getPageTitle } from "#i/core/page-title.js" +import { prisma } from "#i/core/prisma.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { Icon } from "#i/generated/icon.js" export const handle: RouteHandle = { htmlBackgroundColor: cn("bg-gray-50 print:bg-white"), diff --git a/apps/admin/src/routes/downloads.picture.$id/link.tsx b/apps/admin/src/routes/downloads.picture.$id/link.tsx index d801b9c6..7fe4d9b5 100644 --- a/apps/admin/src/routes/downloads.picture.$id/link.tsx +++ b/apps/admin/src/routes/downloads.picture.$id/link.tsx @@ -2,7 +2,7 @@ import { forwardRef } from "react" import type { Except } from "type-fest" import { DownloadTrigger } from "#i/core/actions/download-trigger.js" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" export const DownloadPictureLink = forwardRef< React.ComponentRef, diff --git a/apps/admin/src/routes/downloads.picture.$id/route.tsx b/apps/admin/src/routes/downloads.picture.$id/route.tsx index e2d2a712..975c3885 100644 --- a/apps/admin/src/routes/downloads.picture.$id/route.tsx +++ b/apps/admin/src/routes/downloads.picture.$id/route.tsx @@ -2,10 +2,10 @@ import { UserGroup } from "@animeaux/prisma" import { zu } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" -import { createCloudinaryUrl } from "#i/core/data-display/image" -import { db } from "#i/core/db.server" -import { notFound } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { createCloudinaryUrl } from "#i/core/data-display/image.js" +import { db } from "#i/core/db.server.js" +import { notFound } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" const ParamsSchema = zu.object({ id: zu.string(), diff --git a/apps/admin/src/routes/downloads.show.applications/trigger.tsx b/apps/admin/src/routes/downloads.show.applications/trigger.tsx index 2457526f..3245bb1b 100644 --- a/apps/admin/src/routes/downloads.show.applications/trigger.tsx +++ b/apps/admin/src/routes/downloads.show.applications/trigger.tsx @@ -4,7 +4,7 @@ import { forwardRef } from "react" import type { Except } from "type-fest" import { DownloadTrigger } from "#i/core/actions/download-trigger.js" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" import { ApplicationSearchParams } from "#i/show/exhibitors/applications/search-params.js" export const DownloadApplicationsTrigger = forwardRef< diff --git a/apps/admin/src/routes/downloads.show.exhibitors/trigger.tsx b/apps/admin/src/routes/downloads.show.exhibitors/trigger.tsx index d620c773..e488f177 100644 --- a/apps/admin/src/routes/downloads.show.exhibitors/trigger.tsx +++ b/apps/admin/src/routes/downloads.show.exhibitors/trigger.tsx @@ -4,7 +4,7 @@ import { forwardRef } from "react" import type { Except } from "type-fest" import { DownloadTrigger } from "#i/core/actions/download-trigger.js" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" export const DownloadExhibitorsTrigger = forwardRef< diff --git a/apps/admin/src/routes/healthcheck.tsx b/apps/admin/src/routes/healthcheck.tsx index 375e92ca..800b2d0b 100644 --- a/apps/admin/src/routes/healthcheck.tsx +++ b/apps/admin/src/routes/healthcheck.tsx @@ -1,5 +1,5 @@ // learn more: https://fly.io/docs/reference/configuration/#services-http_checks -import { prisma } from "#i/core/prisma.server" +import { prisma } from "#i/core/prisma.server.js" export async function loader() { try { diff --git a/apps/admin/src/routes/login.tsx b/apps/admin/src/routes/login.tsx index 0c415c0c..e54bba18 100644 --- a/apps/admin/src/routes/login.tsx +++ b/apps/admin/src/routes/login.tsx @@ -10,19 +10,19 @@ import { json, redirect } from "@remix-run/node" import { useFetcher } from "@remix-run/react" import { useEffect, useRef } from "react" -import { Action } from "#i/core/actions" -import { db } from "#i/core/db.server" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" -import { PasswordInput } from "#i/core/form-elements/password-input" -import type { RouteHandle } from "#i/core/handles" -import { AuthPage } from "#i/core/layout/auth-page" -import { useCurrentUserForMonitoring } from "#i/core/monitoring" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { NextSearchParams } from "#i/core/search-params" -import { createCurrentUserSession } from "#i/current-user/session.server" -import { Icon } from "#i/generated/icon" +import { Action } from "#i/core/actions.js" +import { db } from "#i/core/db.server.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" +import { PasswordInput } from "#i/core/form-elements/password-input.js" +import type { RouteHandle } from "#i/core/handles.js" +import { AuthPage } from "#i/core/layout/auth-page.js" +import { useCurrentUserForMonitoring } from "#i/core/monitoring.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { NextSearchParams } from "#i/core/search-params.js" +import { createCurrentUserSession } from "#i/current-user/session.server.js" +import { Icon } from "#i/generated/icon.js" export const handle: RouteHandle = { htmlBackgroundColor: cn("bg-white"), diff --git a/apps/admin/src/routes/logout.tsx b/apps/admin/src/routes/logout.tsx index aa60600f..54d53cf3 100644 --- a/apps/admin/src/routes/logout.tsx +++ b/apps/admin/src/routes/logout.tsx @@ -2,8 +2,8 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { redirect } from "@remix-run/node" import { createPath } from "history" -import { Routes } from "#i/core/navigation" -import { destroyCurrentUserSession } from "#i/current-user/session.server" +import { Routes } from "#i/core/navigation.js" +import { destroyCurrentUserSession } from "#i/current-user/session.server.js" export async function loader() { // Nothing to render here. diff --git a/apps/admin/src/routes/resources.breed/input.tsx b/apps/admin/src/routes/resources.breed/input.tsx index 21450252..73d0b0bb 100644 --- a/apps/admin/src/routes/resources.breed/input.tsx +++ b/apps/admin/src/routes/resources.breed/input.tsx @@ -7,21 +7,21 @@ import { useCombobox } from "downshift" import { createPath } from "history" import { forwardRef, useEffect, useState } from "react" -import { BreedSearchParams } from "#i/breeds/search-params" -import { ensureArray } from "#i/core/collections" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Input } from "#i/core/form-elements/input" +import { BreedSearchParams } from "#i/breeds/search-params.js" +import { ensureArray } from "#i/core/collections.js" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Input } from "#i/core/form-elements/input.js" import { NoSuggestion, ResourceComboboxLayout, ResourceInputLayout, SuggestionItem, SuggestionList, -} from "#i/core/form-elements/resource-input" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +} from "#i/core/form-elements/resource-input.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" type BreedInputProps = { name: string diff --git a/apps/admin/src/routes/resources.breed/route.tsx b/apps/admin/src/routes/resources.breed/route.tsx index 8083d8b8..663b3c5c 100644 --- a/apps/admin/src/routes/resources.breed/route.tsx +++ b/apps/admin/src/routes/resources.breed/route.tsx @@ -2,9 +2,9 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { BreedSearchParams } from "#i/breeds/search-params" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { BreedSearchParams } from "#i/breeds/search-params.js" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export type loader = typeof loader diff --git a/apps/admin/src/routes/resources.color/input.tsx b/apps/admin/src/routes/resources.color/input.tsx index e28f0bd7..bcc84f8b 100644 --- a/apps/admin/src/routes/resources.color/input.tsx +++ b/apps/admin/src/routes/resources.color/input.tsx @@ -7,20 +7,20 @@ import { useCombobox } from "downshift" import { createPath } from "history" import { forwardRef, useEffect, useState } from "react" -import { ColorSearchParams } from "#i/colors/search-params" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Input } from "#i/core/form-elements/input" +import { ColorSearchParams } from "#i/colors/search-params.js" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Input } from "#i/core/form-elements/input.js" import { NoSuggestion, ResourceComboboxLayout, ResourceInputLayout, SuggestionItem, SuggestionList, -} from "#i/core/form-elements/resource-input" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +} from "#i/core/form-elements/resource-input.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" type ColorInputProps = { name: string diff --git a/apps/admin/src/routes/resources.color/route.tsx b/apps/admin/src/routes/resources.color/route.tsx index 4bd54546..fc2e8d27 100644 --- a/apps/admin/src/routes/resources.color/route.tsx +++ b/apps/admin/src/routes/resources.color/route.tsx @@ -2,9 +2,9 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { ColorSearchParams } from "#i/colors/search-params" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { ColorSearchParams } from "#i/colors/search-params.js" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" export type loader = typeof loader diff --git a/apps/admin/src/routes/resources.foster-family/input.tsx b/apps/admin/src/routes/resources.foster-family/input.tsx index 82f474ab..2e562568 100644 --- a/apps/admin/src/routes/resources.foster-family/input.tsx +++ b/apps/admin/src/routes/resources.foster-family/input.tsx @@ -7,20 +7,20 @@ import { useCombobox } from "downshift" import { createPath } from "history" import { forwardRef, useEffect, useState } from "react" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Input } from "#i/core/form-elements/input" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Input } from "#i/core/form-elements/input.js" import { ResourceComboboxLayout, ResourceInputLayout, SuggestionItem, SuggestionList, -} from "#i/core/form-elements/resource-input" -import { Routes, useNavigate } from "#i/core/navigation" -import { NextSearchParams } from "#i/core/search-params" -import { FosterFamilySuggestionItem } from "#i/foster-families/item" -import { FosterFamilySearchParams } from "#i/foster-families/search-params" -import { Icon } from "#i/generated/icon" -import type { loader } from "#i/routes/resources.foster-family/route" +} from "#i/core/form-elements/resource-input.js" +import { Routes, useNavigate } from "#i/core/navigation.js" +import { NextSearchParams } from "#i/core/search-params.js" +import { FosterFamilySuggestionItem } from "#i/foster-families/item.js" +import { FosterFamilySearchParams } from "#i/foster-families/search-params.js" +import { Icon } from "#i/generated/icon.js" +import type { loader } from "#i/routes/resources.foster-family/route.js" type FosterFamilyInputProps = { name: string diff --git a/apps/admin/src/routes/resources.foster-family/route.tsx b/apps/admin/src/routes/resources.foster-family/route.tsx index fa0ecec3..da19bc47 100644 --- a/apps/admin/src/routes/resources.foster-family/route.tsx +++ b/apps/admin/src/routes/resources.foster-family/route.tsx @@ -2,9 +2,9 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { FosterFamilySearchParams } from "#i/foster-families/search-params" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { FosterFamilySearchParams } from "#i/foster-families/search-params.js" export type loader = typeof loader diff --git a/apps/admin/src/routes/resources.global-search/input.tsx b/apps/admin/src/routes/resources.global-search/input.tsx index aa6e1182..9f15036e 100644 --- a/apps/admin/src/routes/resources.global-search/input.tsx +++ b/apps/admin/src/routes/resources.global-search/input.tsx @@ -10,27 +10,27 @@ import { useCombobox } from "downshift" import { createPath } from "history" import { useEffect, useState } from "react" -import { AnimalSuggestionItem } from "#i/animals/item" -import { getAnimalDisplayName } from "#i/animals/profile/name" -import { AnimalSearchParams } from "#i/animals/search-params" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Input } from "#i/core/form-elements/input" +import { AnimalSuggestionItem } from "#i/animals/item.js" +import { getAnimalDisplayName } from "#i/animals/profile/name.js" +import { AnimalSearchParams } from "#i/animals/search-params.js" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Input } from "#i/core/form-elements/input.js" import { SuggestionItem, SuggestionList, -} from "#i/core/form-elements/resource-input" -import { useRouteHandles } from "#i/core/handles" -import { Routes, useNavigate } from "#i/core/navigation" -import { Overlay } from "#i/core/popovers/overlay" -import { FosterFamilySuggestionItem } from "#i/foster-families/item" -import { FosterFamilySearchParams } from "#i/foster-families/search-params" -import { Icon } from "#i/generated/icon" +} from "#i/core/form-elements/resource-input.js" +import { useRouteHandles } from "#i/core/handles.js" +import { Routes, useNavigate } from "#i/core/navigation.js" +import { Overlay } from "#i/core/popovers/overlay.js" +import { FosterFamilySuggestionItem } from "#i/foster-families/item.js" +import { FosterFamilySearchParams } from "#i/foster-families/search-params.js" +import { Icon } from "#i/generated/icon.js" import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" -import { Entity } from "./entity" -import { ItemExhibitor } from "./item-exhibitor" -import type { loader } from "./route" -import { GlobalSearchParams } from "./search-params" +import { Entity } from "./entity.js" +import { ItemExhibitor } from "./item-exhibitor.js" +import type { loader } from "./route.js" +import { GlobalSearchParams } from "./search-params.js" export function GlobalSearch({ currentUser, diff --git a/apps/admin/src/routes/resources.global-search/route.tsx b/apps/admin/src/routes/resources.global-search/route.tsx index 325a0f17..cc4af715 100644 --- a/apps/admin/src/routes/resources.global-search/route.tsx +++ b/apps/admin/src/routes/resources.global-search/route.tsx @@ -2,12 +2,12 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { forbidden } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { forbidden } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { Entity } from "./entity" -import { GlobalSearchParams } from "./search-params" +import { Entity } from "./entity.js" +import { GlobalSearchParams } from "./search-params.js" const MAX_HIT_COUNT = 6 diff --git a/apps/admin/src/routes/resources.global-search/search-params.ts b/apps/admin/src/routes/resources.global-search/search-params.ts index c24663bf..07402774 100644 --- a/apps/admin/src/routes/resources.global-search/search-params.ts +++ b/apps/admin/src/routes/resources.global-search/search-params.ts @@ -1,7 +1,7 @@ import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" -import { Entity } from "./entity" +import { Entity } from "./entity.js" export const GlobalSearchParams = SearchParamsIO.create({ keys: { diff --git a/apps/admin/src/routes/resources.manager/input.tsx b/apps/admin/src/routes/resources.manager/input.tsx index efbcffff..e8bbc697 100644 --- a/apps/admin/src/routes/resources.manager/input.tsx +++ b/apps/admin/src/routes/resources.manager/input.tsx @@ -7,20 +7,20 @@ import { useCombobox } from "downshift" import { createPath } from "history" import { forwardRef, useEffect, useState } from "react" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Input } from "#i/core/form-elements/input" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Input } from "#i/core/form-elements/input.js" import { NoSuggestion, ResourceComboboxLayout, ResourceInputLayout, SuggestionItem, SuggestionList, -} from "#i/core/form-elements/resource-input" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" -import type { loader } from "#i/routes/resources.manager/route" -import { UserAvatar } from "#i/users/avatar" -import { UserSearchParams } from "#i/users/search-params" +} from "#i/core/form-elements/resource-input.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" +import type { loader } from "#i/routes/resources.manager/route.js" +import { UserAvatar } from "#i/users/avatar.js" +import { UserSearchParams } from "#i/users/search-params.js" type ManagerInputProps = { name: string diff --git a/apps/admin/src/routes/resources.manager/route.tsx b/apps/admin/src/routes/resources.manager/route.tsx index 815f02d2..18b48907 100644 --- a/apps/admin/src/routes/resources.manager/route.tsx +++ b/apps/admin/src/routes/resources.manager/route.tsx @@ -2,9 +2,9 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { UserSearchParams } from "#i/users/search-params" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { UserSearchParams } from "#i/users/search-params.js" export type loader = typeof loader diff --git a/apps/admin/src/routes/resources.pick-up-location/input.tsx b/apps/admin/src/routes/resources.pick-up-location/input.tsx index c9dc484e..e138cf2d 100644 --- a/apps/admin/src/routes/resources.pick-up-location/input.tsx +++ b/apps/admin/src/routes/resources.pick-up-location/input.tsx @@ -6,20 +6,20 @@ import { useCombobox } from "downshift" import { createPath } from "history" import { forwardRef, useEffect, useState } from "react" -import { PickUpLocationSearchParams } from "#i/animals/search-params" -import { BaseTextInput } from "#i/core/form-elements/base-text-input" -import { Input } from "#i/core/form-elements/input" +import { PickUpLocationSearchParams } from "#i/animals/search-params.js" +import { BaseTextInput } from "#i/core/form-elements/base-text-input.js" +import { Input } from "#i/core/form-elements/input.js" import { NoSuggestion, ResourceComboboxLayout, ResourceInputLayout, SuggestionItem, SuggestionList, -} from "#i/core/form-elements/resource-input" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" -import type { loader } from "#i/routes/resources.pick-up-location/route" -import { MAX_HIT_COUNT } from "#i/routes/resources.pick-up-location/shared" +} from "#i/core/form-elements/resource-input.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" +import type { loader } from "#i/routes/resources.pick-up-location/route.js" +import { MAX_HIT_COUNT } from "#i/routes/resources.pick-up-location/shared.js" type PickUpLocationInputProps = { name: string diff --git a/apps/admin/src/routes/resources.pick-up-location/route.tsx b/apps/admin/src/routes/resources.pick-up-location/route.tsx index a91c4768..935b6da1 100644 --- a/apps/admin/src/routes/resources.pick-up-location/route.tsx +++ b/apps/admin/src/routes/resources.pick-up-location/route.tsx @@ -2,10 +2,10 @@ import { UserGroup } from "@animeaux/prisma" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { PickUpLocationSearchParams } from "#i/animals/search-params" -import { db } from "#i/core/db.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" -import { MAX_HIT_COUNT } from "#i/routes/resources.pick-up-location/shared" +import { PickUpLocationSearchParams } from "#i/animals/search-params.js" +import { db } from "#i/core/db.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" +import { MAX_HIT_COUNT } from "#i/routes/resources.pick-up-location/shared.js" export type loader = typeof loader diff --git a/apps/admin/src/routes/resources.preferences/fetcher.tsx b/apps/admin/src/routes/resources.preferences/fetcher.tsx index 6a55be49..80a98e21 100644 --- a/apps/admin/src/routes/resources.preferences/fetcher.tsx +++ b/apps/admin/src/routes/resources.preferences/fetcher.tsx @@ -2,9 +2,9 @@ import type { zu } from "@animeaux/zod-utils" import { useFetcher } from "@remix-run/react" import { useCallback, useMemo } from "react" -import { Routes } from "#i/core/navigation" -import type { action } from "#i/routes/resources.preferences/route" -import { ActionFormData } from "#i/routes/resources.preferences/shared" +import { Routes } from "#i/core/navigation.js" +import type { action } from "#i/routes/resources.preferences/route.js" +import { ActionFormData } from "#i/routes/resources.preferences/shared.js" export function usePreferencesFetcher() { const fetcher = useFetcher() diff --git a/apps/admin/src/routes/resources.preferences/route.tsx b/apps/admin/src/routes/resources.preferences/route.tsx index 79b900cf..dd29665b 100644 --- a/apps/admin/src/routes/resources.preferences/route.tsx +++ b/apps/admin/src/routes/resources.preferences/route.tsx @@ -1,10 +1,10 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { json, redirect } from "@remix-run/node" -import { db } from "#i/core/db.server" -import { Routes } from "#i/core/navigation" -import { commitCurrentUserPreferences } from "#i/current-user/preferences.server" -import { ActionFormData } from "#i/routes/resources.preferences/shared" +import { db } from "#i/core/db.server.js" +import { Routes } from "#i/core/navigation.js" +import { commitCurrentUserPreferences } from "#i/current-user/preferences.server.js" +import { ActionFormData } from "#i/routes/resources.preferences/shared.js" export async function loader() { // Nothing to render here. diff --git a/apps/admin/src/routes/resources.scrap-url/hook.tsx b/apps/admin/src/routes/resources.scrap-url/hook.tsx index c83f82a3..d772436b 100644 --- a/apps/admin/src/routes/resources.scrap-url/hook.tsx +++ b/apps/admin/src/routes/resources.scrap-url/hook.tsx @@ -3,10 +3,10 @@ import { useFetcher } from "@remix-run/react" import { createPath } from "history" import { useEffect, useMemo } from "react" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./route" -import { ScrapUrlSearchParams } from "./shared" +import type { loader } from "./route.js" +import { ScrapUrlSearchParams } from "./shared.js" export function useScrapUrlFetcher({ url, diff --git a/apps/admin/src/routes/resources.scrap-url/route.tsx b/apps/admin/src/routes/resources.scrap-url/route.tsx index 59287605..13aa6afa 100644 --- a/apps/admin/src/routes/resources.scrap-url/route.tsx +++ b/apps/admin/src/routes/resources.scrap-url/route.tsx @@ -3,12 +3,12 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" import { DateTime } from "luxon" -import { db } from "#i/core/db.server" -import { scrapUrl } from "#i/core/metascraper.server" -import { badRequest } from "#i/core/response.server" -import { assertCurrentUserHasGroups } from "#i/current-user/groups.server" +import { db } from "#i/core/db.server.js" +import { scrapUrl } from "#i/core/metascraper.server.js" +import { badRequest } from "#i/core/response.server.js" +import { assertCurrentUserHasGroups } from "#i/current-user/groups.server.js" -import { ScrapUrlSearchParams } from "./shared" +import { ScrapUrlSearchParams } from "./shared.js" export type loader = typeof loader diff --git a/apps/admin/src/show/db.server.ts b/apps/admin/src/show/db.server.ts index ef1c66ef..7f95822c 100644 --- a/apps/admin/src/show/db.server.ts +++ b/apps/admin/src/show/db.server.ts @@ -1,8 +1,8 @@ -import { ShowDividerTypeDbDelegate } from "#i/show/divider-type/db.server" -import { ShowExhibitorDbDelegate } from "#i/show/exhibitors/db.server" -import { ShowInvoiceDbDelegate } from "#i/show/invoice/db.server" -import { ShowSponsorDbDelegate } from "#i/show/sponsors/db.server" -import { ShowStandSizeDbDelegate } from "#i/show/stand-size/db.server" +import { ShowDividerTypeDbDelegate } from "#i/show/divider-type/db.server.js" +import { ShowExhibitorDbDelegate } from "#i/show/exhibitors/db.server.js" +import { ShowInvoiceDbDelegate } from "#i/show/invoice/db.server.js" +import { ShowSponsorDbDelegate } from "#i/show/sponsors/db.server.js" +import { ShowStandSizeDbDelegate } from "#i/show/stand-size/db.server.js" export class ShowDbDelegate { readonly exhibitor = new ShowExhibitorDbDelegate() diff --git a/apps/admin/src/show/divider-type/db.server.ts b/apps/admin/src/show/divider-type/db.server.ts index 74eb8ad2..dc61c8f2 100644 --- a/apps/admin/src/show/divider-type/db.server.ts +++ b/apps/admin/src/show/divider-type/db.server.ts @@ -2,7 +2,7 @@ import type { Prisma } from "@animeaux/prisma/server" import merge from "lodash.merge" import type { Simplify } from "type-fest" -import { prisma } from "#i/core/prisma.server" +import { prisma } from "#i/core/prisma.server.js" import { notFound } from "#i/core/response.server.js" import type { ShowDividerTypeAvailability } from "#i/show/divider-type/availability.js" diff --git a/apps/admin/src/show/exhibitors/activity-field/icon.tsx b/apps/admin/src/show/exhibitors/activity-field/icon.tsx index c1dced52..06e9dcd2 100644 --- a/apps/admin/src/show/exhibitors/activity-field/icon.tsx +++ b/apps/admin/src/show/exhibitors/activity-field/icon.tsx @@ -2,9 +2,9 @@ import { ShowActivityField } from "@animeaux/prisma" import { forwardRef } from "react" import type { Except } from "type-fest" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" export const ActivityFieldIcon = forwardRef< React.ComponentRef<"span">, diff --git a/apps/admin/src/show/exhibitors/activity-target/icon.tsx b/apps/admin/src/show/exhibitors/activity-target/icon.tsx index 61677e01..8d6b1e93 100644 --- a/apps/admin/src/show/exhibitors/activity-target/icon.tsx +++ b/apps/admin/src/show/exhibitors/activity-target/icon.tsx @@ -2,9 +2,9 @@ import { ShowActivityTarget } from "@animeaux/prisma" import { forwardRef } from "react" import type { Except } from "type-fest" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" export const ActivityTargetIcon = forwardRef< React.ComponentRef<"span">, diff --git a/apps/admin/src/show/exhibitors/applications/db.server.ts b/apps/admin/src/show/exhibitors/applications/db.server.ts index 8e9d701d..cc0f0627 100644 --- a/apps/admin/src/show/exhibitors/applications/db.server.ts +++ b/apps/admin/src/show/exhibitors/applications/db.server.ts @@ -3,13 +3,13 @@ import type { ShowExhibitorApplication } from "@animeaux/prisma/server" import { Prisma, ShowExhibitorApplicationStatus } from "@animeaux/prisma/server" import { promiseHash } from "remix-utils/promise" -import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server" -import { fileStorage } from "#i/core/file-storage.server" -import { notifyShowApp } from "#i/core/notification.server" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { ApplicationSearchParamsN } from "#i/show/exhibitors/applications/search-params" -import { ExhibitorCategory } from "#i/show/exhibitors/category" +import { NotFoundError, PrismaErrorCodes } from "#i/core/errors.server.js" +import { fileStorage } from "#i/core/file-storage.server.js" +import { notifyShowApp } from "#i/core/notification.server.js" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { ApplicationSearchParamsN } from "#i/show/exhibitors/applications/search-params.js" +import { ExhibitorCategory } from "#i/show/exhibitors/category.js" import { SponsorshipOptionalCategory } from "#i/show/sponsors/category.js" export class MissingRefusalMessageError extends Error {} diff --git a/apps/admin/src/show/exhibitors/applications/filter-form.tsx b/apps/admin/src/show/exhibitors/applications/filter-form.tsx index 77553077..837c28e9 100644 --- a/apps/admin/src/show/exhibitors/applications/filter-form.tsx +++ b/apps/admin/src/show/exhibitors/applications/filter-form.tsx @@ -1,33 +1,33 @@ import type { ShowStandSize } from "@animeaux/prisma" import { useOptimisticSearchParams } from "@animeaux/search-params-io" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { ControlledInput } from "#i/core/form-elements/controlled-input" -import { Form } from "#i/core/form-elements/form" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" +import { Form } from "#i/core/form-elements/form.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { ActivityFieldIcon } from "#i/show/exhibitors/activity-field/icon" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" -import { ActivityTargetIcon } from "#i/show/exhibitors/activity-target/icon" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { ActivityFieldIcon } from "#i/show/exhibitors/activity-field/icon.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" +import { ActivityTargetIcon } from "#i/show/exhibitors/activity-target/icon.js" import { ApplicationSearchParams, ApplicationSearchParamsN, -} from "#i/show/exhibitors/applications/search-params" +} from "#i/show/exhibitors/applications/search-params.js" import { ApplicationStatusIcon, SORTED_STATUSES, TRANSLATION_BY_APPLICATION_STATUS, -} from "#i/show/exhibitors/applications/status" +} from "#i/show/exhibitors/applications/status.js" import { SponsorshipCategoryIcon, SponsorshipOptionalCategory, -} from "#i/show/sponsors/category" +} from "#i/show/sponsors/category.js" export function ApplicationFilters({ standSizes, diff --git a/apps/admin/src/show/exhibitors/applications/search-params.ts b/apps/admin/src/show/exhibitors/applications/search-params.ts index 8a643658..6c08465b 100644 --- a/apps/admin/src/show/exhibitors/applications/search-params.ts +++ b/apps/admin/src/show/exhibitors/applications/search-params.ts @@ -6,7 +6,7 @@ import { import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" -import { SponsorshipOptionalCategory } from "#i/show/sponsors/category" +import { SponsorshipOptionalCategory } from "#i/show/sponsors/category.js" export const ApplicationSearchParams = SearchParamsIO.create({ keys: { diff --git a/apps/admin/src/show/exhibitors/applications/status.tsx b/apps/admin/src/show/exhibitors/applications/status.tsx index 1121d574..e7747e03 100644 --- a/apps/admin/src/show/exhibitors/applications/status.tsx +++ b/apps/admin/src/show/exhibitors/applications/status.tsx @@ -2,8 +2,8 @@ import { cn } from "@animeaux/core" import { ShowExhibitorApplicationStatus } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export const TRANSLATION_BY_APPLICATION_STATUS: Record< ShowExhibitorApplicationStatus, diff --git a/apps/admin/src/show/exhibitors/category.ts b/apps/admin/src/show/exhibitors/category.ts index 1686a881..2e08e6cd 100644 --- a/apps/admin/src/show/exhibitors/category.ts +++ b/apps/admin/src/show/exhibitors/category.ts @@ -1,7 +1,7 @@ import { ShowExhibitorCategory } from "@animeaux/prisma" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { LegalStatus } from "#i/show/exhibitors/applications/legal-status" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { LegalStatus } from "#i/show/exhibitors/applications/legal-status.js" export namespace ExhibitorCategory { export type Enum = ShowExhibitorCategory diff --git a/apps/admin/src/show/exhibitors/db.server.ts b/apps/admin/src/show/exhibitors/db.server.ts index 9ce6f8c3..f30831c3 100644 --- a/apps/admin/src/show/exhibitors/db.server.ts +++ b/apps/admin/src/show/exhibitors/db.server.ts @@ -2,18 +2,18 @@ import { catchError } from "@animeaux/core" import { Prisma } from "@animeaux/prisma/server" import { promiseHash } from "remix-utils/promise" -import { PrismaErrorCodes } from "#i/core/errors.server" -import { fileStorage } from "#i/core/file-storage.server" -import { notifyShowApp } from "#i/core/notification.server" +import { PrismaErrorCodes } from "#i/core/errors.server.js" +import { fileStorage } from "#i/core/file-storage.server.js" +import { notifyShowApp } from "#i/core/notification.server.js" import { orderByRank } from "#i/core/order-by-rank.js" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { ShowExhibitorApplicationDbDelegate } from "#i/show/exhibitors/applications/db.server" -import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { ShowExhibitorApplicationDbDelegate } from "#i/show/exhibitors/applications/db.server.js" +import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" import { InvoiceStatus } from "#i/show/invoice/status.js" -import { SponsorshipOptionalCategory } from "#i/show/sponsors/category" -import { Visibility } from "#i/show/visibility" +import { SponsorshipOptionalCategory } from "#i/show/sponsors/category.js" +import { Visibility } from "#i/show/visibility.js" export class ShowExhibitorDbDelegate { readonly application = new ShowExhibitorApplicationDbDelegate() diff --git a/apps/admin/src/show/exhibitors/filter-form.tsx b/apps/admin/src/show/exhibitors/filter-form.tsx index 63de6270..f82fe682 100644 --- a/apps/admin/src/show/exhibitors/filter-form.tsx +++ b/apps/admin/src/show/exhibitors/filter-form.tsx @@ -1,35 +1,35 @@ import type { ShowDividerType, ShowStandSize } from "@animeaux/prisma" import { useOptimisticSearchParams } from "@animeaux/search-params-io" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { ControlledInput } from "#i/core/form-elements/controlled-input" -import { Form } from "#i/core/form-elements/form" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" +import { Form } from "#i/core/form-elements/form.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" -import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field" -import { ActivityFieldIcon } from "#i/show/exhibitors/activity-field/icon" -import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target" -import { ActivityTargetIcon } from "#i/show/exhibitors/activity-target/icon" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" +import { ActivityField } from "#i/show/exhibitors/activity-field/activity-field.js" +import { ActivityFieldIcon } from "#i/show/exhibitors/activity-field/icon.js" +import { ActivityTarget } from "#i/show/exhibitors/activity-target/activity-target.js" +import { ActivityTargetIcon } from "#i/show/exhibitors/activity-target/icon.js" import { ApplicationStatusIcon, SORTED_STATUSES, TRANSLATION_BY_APPLICATION_STATUS, -} from "#i/show/exhibitors/applications/status" -import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +} from "#i/show/exhibitors/applications/status.js" +import { ExhibitorSearchParams } from "#i/show/exhibitors/search-params.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" import { ExhibitorStatusIcon } from "#i/show/exhibitors/status-icon.js" import { InvoiceIcon } from "#i/show/invoice/icon.js" import { InvoiceStatus } from "#i/show/invoice/status.js" import { SponsorshipCategoryIcon, SponsorshipOptionalCategory, -} from "#i/show/sponsors/category" -import { Visibility, VisibilityIcon } from "#i/show/visibility" +} from "#i/show/sponsors/category.js" +import { Visibility, VisibilityIcon } from "#i/show/visibility.js" export function ExhibitorFilters({ dividerTypes, diff --git a/apps/admin/src/show/exhibitors/search-params.ts b/apps/admin/src/show/exhibitors/search-params.ts index 6e756102..b0ef65bc 100644 --- a/apps/admin/src/show/exhibitors/search-params.ts +++ b/apps/admin/src/show/exhibitors/search-params.ts @@ -6,11 +6,11 @@ import { import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" -import type { IconName } from "#i/generated/icon" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import type { IconName } from "#i/generated/icon.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" import { InvoiceStatus } from "#i/show/invoice/status.js" -import { SponsorshipOptionalCategory } from "#i/show/sponsors/category" -import { Visibility } from "#i/show/visibility" +import { SponsorshipOptionalCategory } from "#i/show/sponsors/category.js" +import { Visibility } from "#i/show/visibility.js" export type ExhibitorSearchParams = SearchParamsIO.Infer< typeof ExhibitorSearchParams.io diff --git a/apps/admin/src/show/exhibitors/status-icon.tsx b/apps/admin/src/show/exhibitors/status-icon.tsx index d47e2949..9cbfa9ad 100644 --- a/apps/admin/src/show/exhibitors/status-icon.tsx +++ b/apps/admin/src/show/exhibitors/status-icon.tsx @@ -1,8 +1,8 @@ import { cn } from "@animeaux/core" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { ExhibitorStatus } from "#i/show/exhibitors/status" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { ExhibitorStatus } from "#i/show/exhibitors/status.js" export function ExhibitorStatusIcon({ status, diff --git a/apps/admin/src/show/invoice/db.server.ts b/apps/admin/src/show/invoice/db.server.ts index c57549e0..0f33ef56 100644 --- a/apps/admin/src/show/invoice/db.server.ts +++ b/apps/admin/src/show/invoice/db.server.ts @@ -1,11 +1,11 @@ import { catchError } from "@animeaux/core" import { Prisma } from "@animeaux/prisma/server" -import { AlreadyExistError, PrismaErrorCodes } from "#i/core/errors.server" +import { AlreadyExistError, PrismaErrorCodes } from "#i/core/errors.server.js" import { notifyShowApp } from "#i/core/notification.server.js" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { InvoiceStatus } from "#i/show/invoice/status" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { InvoiceStatus } from "#i/show/invoice/status.js" export class ShowInvoiceDbDelegate { async create(data: CreateData) { diff --git a/apps/admin/src/show/invoice/fieldset-invoice.tsx b/apps/admin/src/show/invoice/fieldset-invoice.tsx index 2ffdca04..00e523ad 100644 --- a/apps/admin/src/show/invoice/fieldset-invoice.tsx +++ b/apps/admin/src/show/invoice/fieldset-invoice.tsx @@ -2,13 +2,13 @@ import type { FieldMetadata, FormMetadata } from "@conform-to/react" import { FieldDate } from "#i/core/form-elements/field-date.js" import { FieldDecimal } from "#i/core/form-elements/field-decimal.js" -import { FieldRadios } from "#i/core/form-elements/field-radios" -import { FieldText } from "#i/core/form-elements/field-text" +import { FieldRadios } from "#i/core/form-elements/field-radios.js" +import { FieldText } from "#i/core/form-elements/field-text.js" import { FieldUrl } from "#i/core/form-elements/field-url.js" -import { Form } from "#i/core/form-elements/form" +import { Form } from "#i/core/form-elements/form.js" import { Input } from "#i/core/form-elements/input.js" -import { Card } from "#i/core/layout/card" -import { Separator } from "#i/core/layout/separator" +import { Card } from "#i/core/layout/card.js" +import { Separator } from "#i/core/layout/separator.js" import { Icon } from "#i/generated/icon.js" import { InvoiceStatus } from "#i/show/invoice/status.js" diff --git a/apps/admin/src/show/invoice/icon.tsx b/apps/admin/src/show/invoice/icon.tsx index c1a2a568..828460d0 100644 --- a/apps/admin/src/show/invoice/icon.tsx +++ b/apps/admin/src/show/invoice/icon.tsx @@ -2,7 +2,7 @@ import { cn } from "@animeaux/core" import type { IconName } from "#i/generated/icon.js" import { Icon } from "#i/generated/icon.js" -import { InvoiceStatus } from "#i/show/invoice/status" +import { InvoiceStatus } from "#i/show/invoice/status.js" export function InvoiceIcon({ status, diff --git a/apps/admin/src/show/sponsors/category.tsx b/apps/admin/src/show/sponsors/category.tsx index 44075b37..e5705dd4 100644 --- a/apps/admin/src/show/sponsors/category.tsx +++ b/apps/admin/src/show/sponsors/category.tsx @@ -2,8 +2,8 @@ import { ShowSponsorshipCategory } from "@animeaux/prisma" import { forwardRef } from "react" import type { Except } from "type-fest" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export namespace SponsorshipCategory { export const Enum = ShowSponsorshipCategory diff --git a/apps/admin/src/show/sponsors/db.server.ts b/apps/admin/src/show/sponsors/db.server.ts index d5cb8dd0..90275951 100644 --- a/apps/admin/src/show/sponsors/db.server.ts +++ b/apps/admin/src/show/sponsors/db.server.ts @@ -1,10 +1,10 @@ import type { Prisma } from "@animeaux/prisma/server" import { promiseHash } from "remix-utils/promise" -import { prisma } from "#i/core/prisma.server" -import { notFound } from "#i/core/response.server" -import { SponsorSearchParamsN } from "#i/show/sponsors/search-params" -import { Visibility } from "#i/show/visibility" +import { prisma } from "#i/core/prisma.server.js" +import { notFound } from "#i/core/response.server.js" +import { SponsorSearchParamsN } from "#i/show/sponsors/search-params.js" +import { Visibility } from "#i/show/visibility.js" export class ShowSponsorDbDelegate { async findUnique( diff --git a/apps/admin/src/show/sponsors/filter-form.tsx b/apps/admin/src/show/sponsors/filter-form.tsx index 47dec719..167269c7 100644 --- a/apps/admin/src/show/sponsors/filter-form.tsx +++ b/apps/admin/src/show/sponsors/filter-form.tsx @@ -1,23 +1,23 @@ import { useOptimisticSearchParams } from "@animeaux/search-params-io" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { ControlledInput } from "#i/core/form-elements/controlled-input" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" import { SponsorshipCategory, SponsorshipCategoryIcon, -} from "#i/show/sponsors/category" +} from "#i/show/sponsors/category.js" import { SponsorSearchParams, SponsorSearchParamsN, -} from "#i/show/sponsors/search-params" -import { Visibility, VisibilityIcon } from "#i/show/visibility" +} from "#i/show/sponsors/search-params.js" +import { Visibility, VisibilityIcon } from "#i/show/visibility.js" export function SponsorFilters() { return ( diff --git a/apps/admin/src/show/sponsors/search-params.ts b/apps/admin/src/show/sponsors/search-params.ts index c99d669c..ce62e610 100644 --- a/apps/admin/src/show/sponsors/search-params.ts +++ b/apps/admin/src/show/sponsors/search-params.ts @@ -2,8 +2,8 @@ import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" import type { IconName } from "#i/generated/icon.js" -import { SponsorshipCategory } from "#i/show/sponsors/category" -import { Visibility } from "#i/show/visibility" +import { SponsorshipCategory } from "#i/show/sponsors/category.js" +import { Visibility } from "#i/show/visibility.js" export const SponsorSearchParams = SearchParamsIO.create({ keys: { diff --git a/apps/admin/src/show/stand-size/db.server.ts b/apps/admin/src/show/stand-size/db.server.ts index 71b62820..f6be06c2 100644 --- a/apps/admin/src/show/stand-size/db.server.ts +++ b/apps/admin/src/show/stand-size/db.server.ts @@ -9,7 +9,7 @@ import { PrismaErrorCodes, ReferencedError, } from "#i/core/errors.server.js" -import { prisma } from "#i/core/prisma.server" +import { prisma } from "#i/core/prisma.server.js" import { notFound } from "#i/core/response.server.js" import type { ShowStandSizeBooking } from "#i/show/stand-size/booking.js" diff --git a/apps/admin/src/show/stand-size/fieldset-details.tsx b/apps/admin/src/show/stand-size/fieldset-details.tsx index 1541c719..b11fbc41 100644 --- a/apps/admin/src/show/stand-size/fieldset-details.tsx +++ b/apps/admin/src/show/stand-size/fieldset-details.tsx @@ -1,9 +1,9 @@ import type { FieldMetadata } from "@conform-to/react" import { FieldNumeric } from "#i/core/form-elements/field-numeric.js" -import { Form } from "#i/core/form-elements/form" +import { Form } from "#i/core/form-elements/form.js" import { Input } from "#i/core/form-elements/input.js" -import { Card } from "#i/core/layout/card" +import { Card } from "#i/core/layout/card.js" import { Icon } from "#i/generated/icon.js" export function FieldsetDetails({ diff --git a/apps/admin/src/show/stand-size/fieldset-identification.tsx b/apps/admin/src/show/stand-size/fieldset-identification.tsx index 2bb9b5a2..e0def9a0 100644 --- a/apps/admin/src/show/stand-size/fieldset-identification.tsx +++ b/apps/admin/src/show/stand-size/fieldset-identification.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata, FormMetadata } from "@conform-to/react" import { FieldText } from "#i/core/form-elements/field-text.js" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" export function FieldsetIdentification({ form, diff --git a/apps/admin/src/show/stand-size/fieldset-prices.tsx b/apps/admin/src/show/stand-size/fieldset-prices.tsx index 9883beb5..49fe951b 100644 --- a/apps/admin/src/show/stand-size/fieldset-prices.tsx +++ b/apps/admin/src/show/stand-size/fieldset-prices.tsx @@ -2,9 +2,9 @@ import type { FieldMetadata } from "@conform-to/react" import { InlineHelper } from "#i/core/data-display/helper.js" import { FieldNumeric } from "#i/core/form-elements/field-numeric.js" -import { Form } from "#i/core/form-elements/form" +import { Form } from "#i/core/form-elements/form.js" import { Input } from "#i/core/form-elements/input.js" -import { Card } from "#i/core/layout/card" +import { Card } from "#i/core/layout/card.js" import { Icon } from "#i/generated/icon.js" import { ExhibitorCategory } from "#i/show/exhibitors/category.js" diff --git a/apps/admin/src/show/stand-size/fieldset-situation.tsx b/apps/admin/src/show/stand-size/fieldset-situation.tsx index 7660183e..8d432d01 100644 --- a/apps/admin/src/show/stand-size/fieldset-situation.tsx +++ b/apps/admin/src/show/stand-size/fieldset-situation.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata } from "@conform-to/react" import { FieldRadios } from "#i/core/form-elements/field-radios.js" -import { Form } from "#i/core/form-elements/form" -import { Card } from "#i/core/layout/card" +import { Form } from "#i/core/form-elements/form.js" +import { Card } from "#i/core/layout/card.js" import { Visibility } from "#i/show/visibility.js" export function FieldsetSituation({ diff --git a/apps/admin/src/show/visibility.tsx b/apps/admin/src/show/visibility.tsx index 61af0405..36946feb 100644 --- a/apps/admin/src/show/visibility.tsx +++ b/apps/admin/src/show/visibility.tsx @@ -1,5 +1,5 @@ -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export namespace Visibility { export const Enum = { diff --git a/apps/admin/src/users/avatar.tsx b/apps/admin/src/users/avatar.tsx index a4fde428..a3af9427 100644 --- a/apps/admin/src/users/avatar.tsx +++ b/apps/admin/src/users/avatar.tsx @@ -2,8 +2,8 @@ import type { User } from "@animeaux/prisma" import invariant from "tiny-invariant" import type { Except } from "type-fest" -import { Avatar } from "#i/core/data-display/avatar" -import { inferInstanceColor } from "#i/core/data-display/instance-color" +import { Avatar } from "#i/core/data-display/avatar.js" +import { inferInstanceColor } from "#i/core/data-display/instance-color.js" export function UserAvatar({ user, diff --git a/apps/admin/src/users/db.server.ts b/apps/admin/src/users/db.server.ts index e0d0e37a..39467c2b 100644 --- a/apps/admin/src/users/db.server.ts +++ b/apps/admin/src/users/db.server.ts @@ -9,11 +9,11 @@ import { NotFoundError, PrismaErrorCodes, ReferencedError, -} from "#i/core/errors.server" -import { orderByRank } from "#i/core/order-by-rank" -import { prisma } from "#i/core/prisma.server" -import type { UserSearchParams } from "#i/users/search-params" -import { UserSort } from "#i/users/search-params" +} from "#i/core/errors.server.js" +import { orderByRank } from "#i/core/order-by-rank.js" +import { prisma } from "#i/core/prisma.server.js" +import type { UserSearchParams } from "#i/users/search-params.js" +import { UserSort } from "#i/users/search-params.js" export class DisableMyselfError extends Error {} export class DeleteMyselfError extends Error {} diff --git a/apps/admin/src/users/filter-form.tsx b/apps/admin/src/users/filter-form.tsx index 3ac12997..40f8e0c3 100644 --- a/apps/admin/src/users/filter-form.tsx +++ b/apps/admin/src/users/filter-form.tsx @@ -1,22 +1,26 @@ import { useOptimisticSearchParams } from "@animeaux/search-params-io" -import { Action } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Filters } from "#i/core/controllers/filters" -import { toIsoDateValue } from "#i/core/dates" -import { ControlledInput } from "#i/core/form-elements/controlled-input" -import { Form } from "#i/core/form-elements/form" +import { Action } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Filters } from "#i/core/controllers/filters.js" +import { toIsoDateValue } from "#i/core/dates.js" +import { ControlledInput } from "#i/core/form-elements/controlled-input.js" +import { Form } from "#i/core/form-elements/form.js" import { ToggleInput, ToggleInputList, -} from "#i/core/form-elements/toggle-input" -import { Icon } from "#i/generated/icon" -import { GROUP_ICON, GROUP_TRANSLATION, SORTED_GROUPS } from "#i/users/groups" +} from "#i/core/form-elements/toggle-input.js" +import { Icon } from "#i/generated/icon.js" +import { + GROUP_ICON, + GROUP_TRANSLATION, + SORTED_GROUPS, +} from "#i/users/groups.js" import { USER_DEFAULT_SORT, UserSearchParams, UserSort, -} from "#i/users/search-params" +} from "#i/users/search-params.js" export function UserFilterForm() { const [searchParams, setSearchParams] = useOptimisticSearchParams() diff --git a/apps/admin/src/users/form.tsx b/apps/admin/src/users/form.tsx index 4f7f9694..faa53e90 100644 --- a/apps/admin/src/users/form.tsx +++ b/apps/admin/src/users/form.tsx @@ -6,18 +6,18 @@ import type { SerializeFrom } from "@remix-run/node" import type { FetcherWithComponents } from "@remix-run/react" import { useEffect, useRef } from "react" -import { Action } from "#i/core/actions" -import { Form } from "#i/core/form-elements/form" -import { Input } from "#i/core/form-elements/input" +import { Action } from "#i/core/actions.js" +import { Form } from "#i/core/form-elements/form.js" +import { Input } from "#i/core/form-elements/input.js" import { CheckboxInput, CheckboxInputList, -} from "#i/core/form-elements/input-choice" -import { PasswordInput } from "#i/core/form-elements/password-input" -import { RequiredStar } from "#i/core/form-elements/required-star" -import { Separator } from "#i/core/layout/separator" -import { Icon } from "#i/generated/icon" -import { GROUP_TRANSLATION, SORTED_GROUPS } from "#i/users/groups" +} from "#i/core/form-elements/input-choice.js" +import { PasswordInput } from "#i/core/form-elements/password-input.js" +import { RequiredStar } from "#i/core/form-elements/required-star.js" +import { Separator } from "#i/core/layout/separator.js" +import { Icon } from "#i/generated/icon.js" +import { GROUP_TRANSLATION, SORTED_GROUPS } from "#i/users/groups.js" export const ActionFormData = FormDataDelegate.create( zu.object({ diff --git a/apps/admin/src/users/groups.tsx b/apps/admin/src/users/groups.tsx index 9a877706..e372a110 100644 --- a/apps/admin/src/users/groups.tsx +++ b/apps/admin/src/users/groups.tsx @@ -3,7 +3,7 @@ import { UserGroup } from "@animeaux/prisma" import intersection from "lodash.intersection" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const GROUP_TRANSLATION: Record = { [UserGroup.ADMIN]: "Administrateur", diff --git a/apps/admin/src/users/search-params.ts b/apps/admin/src/users/search-params.ts index 406fceb5..f8b57b87 100644 --- a/apps/admin/src/users/search-params.ts +++ b/apps/admin/src/users/search-params.ts @@ -3,7 +3,7 @@ import { SearchParamsIO } from "@animeaux/search-params-io" import { zu } from "@animeaux/zod-utils" import { DateTime } from "luxon" -import { endOfDay } from "#i/core/dates" +import { endOfDay } from "#i/core/dates.js" export enum UserSort { LAST_ACTIVITY = "L", diff --git a/apps/admin/tailwind.config.ts b/apps/admin/tailwind.config.ts index 9e74bd34..53fad09a 100644 --- a/apps/admin/tailwind.config.ts +++ b/apps/admin/tailwind.config.ts @@ -1,10 +1,10 @@ import { tailwindAnimation } from "@animeaux/tailwind-animation" import containerQueries from "@tailwindcss/container-queries" import type { Config } from "tailwindcss" -import defaultColors from "tailwindcss/colors" -import defaultTheme from "tailwindcss/defaultTheme" -import plugin from "tailwindcss/plugin" -import type { CSSRuleObject } from "tailwindcss/types/config" +import defaultColors from "tailwindcss/colors.js" +import defaultTheme from "tailwindcss/defaultTheme.js" +import plugin from "tailwindcss/plugin.js" +import type { CSSRuleObject } from "tailwindcss/types/config.js" export const spacing = { 0: "0px", diff --git a/apps/show/scripts/generate-icon-sprite.ts b/apps/show/scripts/generate-icon-sprite.ts index db0fd804..e23c85c0 100644 --- a/apps/show/scripts/generate-icon-sprite.ts +++ b/apps/show/scripts/generate-icon-sprite.ts @@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url" import { watch } from "chokidar" import { parse } from "node-html-parser" -import { oneAtTheTime, relativeToCwd, safelyReadFile } from "./shared" +import { oneAtTheTime, relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/show/scripts/generate-pictogram-sprite.ts b/apps/show/scripts/generate-pictogram-sprite.ts index dc88d7f8..2a553374 100644 --- a/apps/show/scripts/generate-pictogram-sprite.ts +++ b/apps/show/scripts/generate-pictogram-sprite.ts @@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url" import { watch } from "chokidar" import { parse } from "node-html-parser" -import { oneAtTheTime, relativeToCwd, safelyReadFile } from "./shared" +import { oneAtTheTime, relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/show/scripts/generate-theme.ts b/apps/show/scripts/generate-theme.ts index 612d079b..1414b96a 100644 --- a/apps/show/scripts/generate-theme.ts +++ b/apps/show/scripts/generate-theme.ts @@ -2,8 +2,8 @@ import { mkdir, writeFile } from "node:fs/promises" import { dirname, resolve } from "node:path" import { fileURLToPath } from "node:url" -import { colors, fonts, screens, spacing } from "../tailwind.config" -import { relativeToCwd, safelyReadFile } from "./shared" +import { colors, fonts, screens, spacing } from "../tailwind.config.js" +import { relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/show/src/animations/service.server.ts b/apps/show/src/animations/service.server.ts index 11721320..5b447354 100644 --- a/apps/show/src/animations/service.server.ts +++ b/apps/show/src/animations/service.server.ts @@ -2,7 +2,7 @@ import type { Prisma } from "@animeaux/prisma/server" import type { ServicePrisma } from "#i/core/prisma.service.server.js" import { notFound } from "#i/core/response.server.js" -import { ShowDay } from "#i/core/show-day" +import { ShowDay } from "#i/core/show-day.js" export class ServiceAnimation { constructor(private prisma: ServicePrisma) {} diff --git a/apps/show/src/core/actions/action.tsx b/apps/show/src/core/actions/action.tsx index 717bc436..a7ada06b 100644 --- a/apps/show/src/core/actions/action.tsx +++ b/apps/show/src/core/actions/action.tsx @@ -2,7 +2,7 @@ import { cn } from "@animeaux/core" import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" -import { Spinner } from "#i/core/loaders/spinner" +import { Spinner } from "#i/core/loaders/spinner.js" export const Action = Object.assign( forwardRef< diff --git a/apps/show/src/core/data-display/email-html.server.tsx b/apps/show/src/core/data-display/email-html.server.tsx index 20a30009..06d55a08 100644 --- a/apps/show/src/core/data-display/email-html.server.tsx +++ b/apps/show/src/core/data-display/email-html.server.tsx @@ -18,15 +18,15 @@ import { import { Children, cloneElement, isValidElement } from "react" import type { ExtraProps } from "react-markdown" -import tailwindConfig, { fonts } from "#i/../tailwind.config" -import { createImageUrl } from "#i/core/data-display/image" -import type { MarkdownComponents } from "#i/core/data-display/markdown" +import tailwindConfig, { fonts } from "#i/../tailwind.config.js" +import { createImageUrl } from "#i/core/data-display/image.js" +import type { MarkdownComponents } from "#i/core/data-display/markdown.js" import { Markdown, PARAGRAPH_COMPONENTS, SENTENCE_COMPONENTS, withoutNode, -} from "#i/core/data-display/markdown" +} from "#i/core/data-display/markdown.js" export const EmailHtml = { Root: function EmailHtmlRoot({ children }: React.PropsWithChildren) { diff --git a/apps/show/src/core/data-display/error-page.tsx b/apps/show/src/core/data-display/error-page.tsx index e139921f..9f380afc 100644 --- a/apps/show/src/core/data-display/error-page.tsx +++ b/apps/show/src/core/data-display/error-page.tsx @@ -3,11 +3,11 @@ import { isRouteErrorResponse, Link, useRouteError } from "@remix-run/react" import { captureRemixErrorBoundaryError } from "@sentry/remix" import { useEffect } from "react" -import { Action } from "#i/core/actions/action" -import { DynamicImage } from "#i/core/data-display/image" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" +import { Action } from "#i/core/actions/action.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" export function getErrorTitle(status: number): string { return STATUS_CODE_ERROR_META_DATA[asStatusCode(status)].title diff --git a/apps/show/src/core/data-display/file-item.tsx b/apps/show/src/core/data-display/file-item.tsx index 38a27c0b..0d8d1938 100644 --- a/apps/show/src/core/data-display/file-item.tsx +++ b/apps/show/src/core/data-display/file-item.tsx @@ -3,8 +3,8 @@ import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" import type { Except } from "type-fest" -import type { IconName } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export const FileItem = { Root: forwardRef< diff --git a/apps/show/src/core/data-display/icon-inline.tsx b/apps/show/src/core/data-display/icon-inline.tsx index 8fdf1861..45548a9d 100644 --- a/apps/show/src/core/data-display/icon-inline.tsx +++ b/apps/show/src/core/data-display/icon-inline.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" import { forwardRef } from "react" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const IconInline = forwardRef< React.ComponentRef, diff --git a/apps/show/src/core/data-display/image.tsx b/apps/show/src/core/data-display/image.tsx index 32425547..db4c585e 100644 --- a/apps/show/src/core/data-display/image.tsx +++ b/apps/show/src/core/data-display/image.tsx @@ -4,8 +4,8 @@ import orderBy from "lodash.orderby" import { forwardRef } from "react" import type { ImageData } from "#i/core/image/data.js" -import type { ScreenSize } from "#i/generated/theme" -import { theme } from "#i/generated/theme" +import type { ScreenSize } from "#i/generated/theme.js" +import { theme } from "#i/generated/theme.js" export const DynamicImage = forwardRef< React.ComponentRef<"img">, diff --git a/apps/show/src/core/data-display/markdown.tsx b/apps/show/src/core/data-display/markdown.tsx index 908bd537..dea25322 100644 --- a/apps/show/src/core/data-display/markdown.tsx +++ b/apps/show/src/core/data-display/markdown.tsx @@ -7,7 +7,7 @@ import ReactMarkdown from "react-markdown" import breaks from "remark-breaks" import gfm from "remark-gfm" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" export type MarkdownComponents = NonNullable diff --git a/apps/show/src/core/data-display/task-item.tsx b/apps/show/src/core/data-display/task-item.tsx index 20e9f734..f54a3fc8 100644 --- a/apps/show/src/core/data-display/task-item.tsx +++ b/apps/show/src/core/data-display/task-item.tsx @@ -3,7 +3,7 @@ import { Primitive } from "@animeaux/react-primitives" import { Link } from "@remix-run/react" import { forwardRef } from "react" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const TaskItem = { Root: forwardRef< diff --git a/apps/show/src/core/form-elements/field-email.tsx b/apps/show/src/core/form-elements/field-email.tsx index 79e79d3d..01ad8f0d 100644 --- a/apps/show/src/core/form-elements/field-email.tsx +++ b/apps/show/src/core/form-elements/field-email.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldEmail({ field, diff --git a/apps/show/src/core/form-elements/field-error-helper.tsx b/apps/show/src/core/form-elements/field-error-helper.tsx index 5b03710e..a0ec445e 100644 --- a/apps/show/src/core/form-elements/field-error-helper.tsx +++ b/apps/show/src/core/form-elements/field-error-helper.tsx @@ -2,7 +2,7 @@ import type { FieldMetadata } from "@conform-to/react" import { forwardRef } from "react" import type { Except } from "type-fest" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export const FieldErrorHelper = forwardRef< React.ComponentRef, diff --git a/apps/show/src/core/form-elements/field-file.tsx b/apps/show/src/core/form-elements/field-file.tsx index d3203886..1125ec5c 100644 --- a/apps/show/src/core/form-elements/field-file.tsx +++ b/apps/show/src/core/form-elements/field-file.tsx @@ -2,9 +2,9 @@ import type { FileStorage } from "@animeaux/file-storage/server" import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { InputFile } from "#i/core/form-elements/input-file" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { InputFile } from "#i/core/form-elements/input-file.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldFile({ field, diff --git a/apps/show/src/core/form-elements/field-numeric.tsx b/apps/show/src/core/form-elements/field-numeric.tsx index e2ff3491..fc337757 100644 --- a/apps/show/src/core/form-elements/field-numeric.tsx +++ b/apps/show/src/core/form-elements/field-numeric.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldNumeric({ field, diff --git a/apps/show/src/core/form-elements/field-phone.tsx b/apps/show/src/core/form-elements/field-phone.tsx index 0d4abf41..88319914 100644 --- a/apps/show/src/core/form-elements/field-phone.tsx +++ b/apps/show/src/core/form-elements/field-phone.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldPhone({ field, diff --git a/apps/show/src/core/form-elements/field-stepper.tsx b/apps/show/src/core/form-elements/field-stepper.tsx index a4314076..9bded740 100644 --- a/apps/show/src/core/form-elements/field-stepper.tsx +++ b/apps/show/src/core/form-elements/field-stepper.tsx @@ -2,9 +2,9 @@ import { toBooleanAttribute } from "@animeaux/core" import type { FieldMetadata } from "@conform-to/react" import { useInputControl } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { InputStepper } from "#i/core/form-elements/input-stepper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { InputStepper } from "#i/core/form-elements/input-stepper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldStepper({ field, diff --git a/apps/show/src/core/form-elements/field-switch.tsx b/apps/show/src/core/form-elements/field-switch.tsx index 37c266c7..ed1ce1fd 100644 --- a/apps/show/src/core/form-elements/field-switch.tsx +++ b/apps/show/src/core/form-elements/field-switch.tsx @@ -2,8 +2,8 @@ import { withoutKey } from "@animeaux/core" import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldSwitch({ field, diff --git a/apps/show/src/core/form-elements/field-text.tsx b/apps/show/src/core/form-elements/field-text.tsx index 76043186..177c5c52 100644 --- a/apps/show/src/core/form-elements/field-text.tsx +++ b/apps/show/src/core/form-elements/field-text.tsx @@ -2,8 +2,8 @@ import { withoutKey } from "@animeaux/core" import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldText({ field, diff --git a/apps/show/src/core/form-elements/field-textarea.tsx b/apps/show/src/core/form-elements/field-textarea.tsx index b148d1a7..5abc5823 100644 --- a/apps/show/src/core/form-elements/field-textarea.tsx +++ b/apps/show/src/core/form-elements/field-textarea.tsx @@ -2,8 +2,8 @@ import { withoutKey } from "@animeaux/core" import type { FieldMetadata } from "@conform-to/react" import { getTextareaProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldTextarea({ field, diff --git a/apps/show/src/core/form-elements/field-url.tsx b/apps/show/src/core/form-elements/field-url.tsx index c545266e..0e903ede 100644 --- a/apps/show/src/core/form-elements/field-url.tsx +++ b/apps/show/src/core/form-elements/field-url.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldUrl({ field, diff --git a/apps/show/src/core/form-elements/field-yes-no.tsx b/apps/show/src/core/form-elements/field-yes-no.tsx index 68bb468c..922735e9 100644 --- a/apps/show/src/core/form-elements/field-yes-no.tsx +++ b/apps/show/src/core/form-elements/field-yes-no.tsx @@ -1,8 +1,8 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldYesNo({ field, diff --git a/apps/show/src/core/form-elements/input-active-filter.tsx b/apps/show/src/core/form-elements/input-active-filter.tsx index ac4fea24..6009be74 100644 --- a/apps/show/src/core/form-elements/input-active-filter.tsx +++ b/apps/show/src/core/form-elements/input-active-filter.tsx @@ -3,7 +3,7 @@ import { Primitive } from "@animeaux/react-primitives" import { forwardRef } from "react" import type { Except } from "type-fest" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const InputActiveFilter = { Root: forwardRef< diff --git a/apps/show/src/core/form-elements/input-file-image.tsx b/apps/show/src/core/form-elements/input-file-image.tsx index 012b6b63..35b95776 100644 --- a/apps/show/src/core/form-elements/input-file-image.tsx +++ b/apps/show/src/core/form-elements/input-file-image.tsx @@ -5,9 +5,9 @@ import { Primitive } from "@animeaux/react-primitives" import { forwardRef, useState } from "react" import type { Except } from "type-fest" -import { DynamicImage } from "#i/core/data-display/image" +import { DynamicImage } from "#i/core/data-display/image.js" import { ImageData } from "#i/core/image/data.js" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export const InputFileImage = { Root: forwardRef< diff --git a/apps/show/src/core/form-elements/input-file.tsx b/apps/show/src/core/form-elements/input-file.tsx index 1bc4a3bc..5682f361 100644 --- a/apps/show/src/core/form-elements/input-file.tsx +++ b/apps/show/src/core/form-elements/input-file.tsx @@ -1,7 +1,7 @@ import { cn, createHookContext } from "@animeaux/core" import { forwardRef, useState } from "react" -import { FileItem } from "#i/core/data-display/file-item" +import { FileItem } from "#i/core/data-display/file-item.js" export const InputFile = { Root: forwardRef< diff --git a/apps/show/src/core/form-elements/input-stepper.tsx b/apps/show/src/core/form-elements/input-stepper.tsx index 1c5ed649..8185d3ef 100644 --- a/apps/show/src/core/form-elements/input-stepper.tsx +++ b/apps/show/src/core/form-elements/input-stepper.tsx @@ -2,9 +2,9 @@ import { cn, useRefOrProp } from "@animeaux/core" import { forwardRef, useEffect } from "react" import type { Merge } from "type-fest" -import { ActionIcon } from "#i/core/actions/action" -import { FormLayout } from "#i/core/layout/form-layout" -import { Icon } from "#i/generated/icon" +import { ActionIcon } from "#i/core/actions/action.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { Icon } from "#i/generated/icon.js" export const InputStepper = forwardRef< React.ComponentRef<"input">, diff --git a/apps/show/src/core/image/blurhash.service.server.ts b/apps/show/src/core/image/blurhash.service.server.ts index b2fedf90..3e61abbf 100644 --- a/apps/show/src/core/image/blurhash.service.server.ts +++ b/apps/show/src/core/image/blurhash.service.server.ts @@ -1,7 +1,7 @@ import { getPixels } from "@unpic/pixels" import { encode } from "blurhash" -import { createImageUrl } from "#i/core/data-display/image" +import { createImageUrl } from "#i/core/data-display/image.js" export class ServiceBlurhash { async create(imageId: string) { diff --git a/apps/show/src/core/image/service.cloudinary.server.ts b/apps/show/src/core/image/service.cloudinary.server.ts index 128e5351..a680a512 100644 --- a/apps/show/src/core/image/service.cloudinary.server.ts +++ b/apps/show/src/core/image/service.cloudinary.server.ts @@ -1,5 +1,5 @@ import { zu } from "@animeaux/zod-utils" -import cachified from "@epic-web/cachified" +import { cachified } from "@epic-web/cachified" import { LazyFile } from "@mjackson/lazy-file" import { writeReadableStreamToWritable } from "@remix-run/node" import { captureException } from "@sentry/remix" diff --git a/apps/show/src/core/layout/board-card.tsx b/apps/show/src/core/layout/board-card.tsx index b0a77b94..f4d5c831 100644 --- a/apps/show/src/core/layout/board-card.tsx +++ b/apps/show/src/core/layout/board-card.tsx @@ -1,10 +1,10 @@ import { cn } from "@animeaux/core" import { forwardRef } from "react" -import { useElementSize } from "#i/core/elements" -import { BeeIllustration } from "#i/core/illustration/bee" -import { useScreenSizeCondition } from "#i/core/screen-size" -import { theme } from "#i/generated/theme" +import { useElementSize } from "#i/core/elements.js" +import { BeeIllustration } from "#i/core/illustration/bee.js" +import { useScreenSizeCondition } from "#i/core/screen-size.js" +import { theme } from "#i/generated/theme.js" export const BoardCard = forwardRef< React.ComponentRef<"div">, diff --git a/apps/show/src/core/layout/footer.tsx b/apps/show/src/core/layout/footer.tsx index b4565592..bfa606b4 100644 --- a/apps/show/src/core/layout/footer.tsx +++ b/apps/show/src/core/layout/footer.tsx @@ -1,14 +1,14 @@ import { cn } from "@animeaux/core" import { Link } from "@remix-run/react" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { SocialLink } from "#i/core/actions/social-link" -import { DynamicImage } from "#i/core/data-display/image" -import { LegalBackground } from "#i/core/layout/legal-background" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" -import { Pictogram } from "#i/generated/pictogram" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { SocialLink } from "#i/core/actions/social-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LegalBackground } from "#i/core/layout/legal-background.js" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" +import { Pictogram } from "#i/generated/pictogram.js" export const Footer = { Root: function FooterRoot({ children }: React.PropsWithChildren) { diff --git a/apps/show/src/core/layout/form-layout.tsx b/apps/show/src/core/layout/form-layout.tsx index f3b8aed8..af169314 100644 --- a/apps/show/src/core/layout/form-layout.tsx +++ b/apps/show/src/core/layout/form-layout.tsx @@ -4,11 +4,11 @@ import { Link } from "@remix-run/react" import { forwardRef } from "react" import type { Except } from "type-fest" -import { Action, ActionIcon } from "#i/core/actions/action" -import { ActionInline } from "#i/core/actions/inline" -import { HelperCard } from "#i/core/layout/helper-card" -import { HorizontalSeparator } from "#i/core/layout/separator" -import { Icon } from "#i/generated/icon" +import { Action, ActionIcon } from "#i/core/actions/action.js" +import { ActionInline } from "#i/core/actions/inline.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { HorizontalSeparator } from "#i/core/layout/separator.js" +import { Icon } from "#i/generated/icon.js" export const FormLayout = { Root: forwardRef< diff --git a/apps/show/src/core/layout/header.tsx b/apps/show/src/core/layout/header.tsx index 7194029e..47fff4ff 100644 --- a/apps/show/src/core/layout/header.tsx +++ b/apps/show/src/core/layout/header.tsx @@ -4,10 +4,10 @@ import { createPath, Link, NavLink, useLocation } from "@remix-run/react" import { Children, forwardRef, isValidElement } from "react" import type { Except } from "type-fest" -import { createImageMedia } from "#i/core/data-display/image" -import type { To } from "#i/core/navigation" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +import { createImageMedia } from "#i/core/data-display/image.js" +import type { To } from "#i/core/navigation.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" import logoMedium from "#i/images/logo-medium.svg" import logoSmall from "#i/images/logo-small.svg" diff --git a/apps/show/src/core/layout/helper-card.tsx b/apps/show/src/core/layout/helper-card.tsx index 57a4524e..bd22481e 100644 --- a/apps/show/src/core/layout/helper-card.tsx +++ b/apps/show/src/core/layout/helper-card.tsx @@ -4,7 +4,7 @@ import { forwardRef, useEffect } from "react" import scrollIntoView from "scroll-into-view-if-needed" import type { Except } from "type-fest" -import { Action } from "#i/core/actions/action" +import { Action } from "#i/core/actions/action.js" export const HelperCard = { Root: forwardRef< diff --git a/apps/show/src/core/layout/light-board-card.tsx b/apps/show/src/core/layout/light-board-card.tsx index 3303ab96..fc171cc1 100644 --- a/apps/show/src/core/layout/light-board-card.tsx +++ b/apps/show/src/core/layout/light-board-card.tsx @@ -1,10 +1,10 @@ import { cn } from "@animeaux/core" import { forwardRef } from "react" -import { useElementSize } from "#i/core/elements" -import { BeeIllustration } from "#i/core/illustration/bee" -import { useScreenSizeCondition } from "#i/core/screen-size" -import { theme } from "#i/generated/theme" +import { useElementSize } from "#i/core/elements.js" +import { BeeIllustration } from "#i/core/illustration/bee.js" +import { useScreenSizeCondition } from "#i/core/screen-size.js" +import { theme } from "#i/generated/theme.js" export const LightBoardCard = forwardRef< React.ComponentRef<"div">, diff --git a/apps/show/src/core/navigation.tsx b/apps/show/src/core/navigation.tsx index 5fddb5b3..47f5f7f5 100644 --- a/apps/show/src/core/navigation.tsx +++ b/apps/show/src/core/navigation.tsx @@ -1,8 +1,8 @@ import type { Path } from "@remix-run/react" import { createPath } from "@remix-run/react" -import type { ShowDay } from "#i/core/show-day" -import type { PreviousEdition } from "#i/previous-editions/previous-edition" +import type { ShowDay } from "#i/core/show-day.js" +import type { PreviousEdition } from "#i/previous-editions/previous-edition.js" import type { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" export type To = string | Partial diff --git a/apps/show/src/core/scroll-restoration.ts b/apps/show/src/core/scroll-restoration.ts index 6649313e..39cb8ed5 100644 --- a/apps/show/src/core/scroll-restoration.ts +++ b/apps/show/src/core/scroll-restoration.ts @@ -1,6 +1,6 @@ import { zu } from "@animeaux/zod-utils" -import { createLocationState } from "#i/core/location-state" +import { createLocationState } from "#i/core/location-state.js" export const ScrollRestorationLocationState = createLocationState( zu diff --git a/apps/show/src/entry.client.tsx b/apps/show/src/entry.client.tsx index 349e7cae..7ab85f8f 100644 --- a/apps/show/src/entry.client.tsx +++ b/apps/show/src/entry.client.tsx @@ -2,12 +2,12 @@ import { RemixBrowser } from "@remix-run/react" import { startTransition, StrictMode } from "react" import { hydrateRoot } from "react-dom/client" -import { initMonitoring } from "#i/core/monitoring.client" +import { initMonitoring } from "#i/core/monitoring.client.js" initMonitoring() if (process.env.NODE_ENV === "development") { - void import("#i/mocks/mocks.client").then((module) => module.startWorker()) + void import("#i/mocks/mocks.client.js").then((module) => module.startWorker()) } startTransition(() => { diff --git a/apps/show/src/entry.server.tsx b/apps/show/src/entry.server.tsx index 13df8b57..a81df108 100644 --- a/apps/show/src/entry.server.tsx +++ b/apps/show/src/entry.server.tsx @@ -8,8 +8,8 @@ import { isbot } from "isbot" import type { RenderToPipeableStreamOptions } from "react-dom/server" import { renderToPipeableStream } from "react-dom/server" -import { checkEnv, getClientEnv } from "#i/core/env.server" -import { initMonitoring } from "#i/core/monitoring.server" +import { checkEnv, getClientEnv } from "#i/core/env.server.js" +import { initMonitoring } from "#i/core/monitoring.server.js" checkEnv() global.CLIENT_ENV = getClientEnv() diff --git a/apps/show/src/exhibitors/activity-field/activity-field.tsx b/apps/show/src/exhibitors/activity-field/activity-field.tsx index bda96c7f..171e1b6d 100644 --- a/apps/show/src/exhibitors/activity-field/activity-field.tsx +++ b/apps/show/src/exhibitors/activity-field/activity-field.tsx @@ -1,7 +1,7 @@ import { ShowActivityField } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export namespace ActivityField { export const Enum = ShowActivityField diff --git a/apps/show/src/exhibitors/activity-field/chip.tsx b/apps/show/src/exhibitors/activity-field/chip.tsx index 6897fc08..b04b7191 100644 --- a/apps/show/src/exhibitors/activity-field/chip.tsx +++ b/apps/show/src/exhibitors/activity-field/chip.tsx @@ -1,6 +1,6 @@ -import { Chip } from "#i/core/data-display/chip" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import { Icon } from "#i/generated/icon" +import { Chip } from "#i/core/data-display/chip.js" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import { Icon } from "#i/generated/icon.js" export function ChipActivityField({ activityField, diff --git a/apps/show/src/exhibitors/activity-field/field.tsx b/apps/show/src/exhibitors/activity-field/field.tsx index 456cfdad..0bc40175 100644 --- a/apps/show/src/exhibitors/activity-field/field.tsx +++ b/apps/show/src/exhibitors/activity-field/field.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import { Icon } from "#i/generated/icon" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import { Icon } from "#i/generated/icon.js" export function FieldActivityField({ field, diff --git a/apps/show/src/exhibitors/activity-target/activity-target.tsx b/apps/show/src/exhibitors/activity-target/activity-target.tsx index 6b5bdf92..f39d54c8 100644 --- a/apps/show/src/exhibitors/activity-target/activity-target.tsx +++ b/apps/show/src/exhibitors/activity-target/activity-target.tsx @@ -1,7 +1,7 @@ import { ShowActivityTarget } from "@animeaux/prisma" import orderBy from "lodash.orderby" -import type { IconName } from "#i/generated/icon" +import type { IconName } from "#i/generated/icon.js" export const ACTIVITY_TARGET_TRANSLATION: Record = { [ShowActivityTarget.CATS]: "Chats", diff --git a/apps/show/src/exhibitors/activity-target/chip.tsx b/apps/show/src/exhibitors/activity-target/chip.tsx index d030e9d8..df303c9d 100644 --- a/apps/show/src/exhibitors/activity-target/chip.tsx +++ b/apps/show/src/exhibitors/activity-target/chip.tsx @@ -1,11 +1,11 @@ import type { ShowActivityTarget } from "@animeaux/prisma" -import { Chip } from "#i/core/data-display/chip" +import { Chip } from "#i/core/data-display/chip.js" import { ACTIVITY_TARGET_ICON, ACTIVITY_TARGET_TRANSLATION, -} from "#i/exhibitors/activity-target/activity-target" -import { Icon } from "#i/generated/icon" +} from "#i/exhibitors/activity-target/activity-target.js" +import { Icon } from "#i/generated/icon.js" export function ChipActivityTarget({ activityTarget, diff --git a/apps/show/src/exhibitors/activity-target/field.tsx b/apps/show/src/exhibitors/activity-target/field.tsx index 6ae1a4c3..7f256633 100644 --- a/apps/show/src/exhibitors/activity-target/field.tsx +++ b/apps/show/src/exhibitors/activity-target/field.tsx @@ -2,14 +2,14 @@ import type { ShowActivityTarget } from "@animeaux/prisma" import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import { ACTIVITY_TARGET_ICON, ACTIVITY_TARGET_TRANSLATION, SORTED_ACTIVITY_TARGETS, -} from "#i/exhibitors/activity-target/activity-target" -import { Icon } from "#i/generated/icon" +} from "#i/exhibitors/activity-target/activity-target.js" +import { Icon } from "#i/generated/icon.js" export function FieldActivityTarget({ field, diff --git a/apps/show/src/exhibitors/animations/card-animations-on-stand.tsx b/apps/show/src/exhibitors/animations/card-animations-on-stand.tsx index e6d40ea9..92f9abaa 100644 --- a/apps/show/src/exhibitors/animations/card-animations-on-stand.tsx +++ b/apps/show/src/exhibitors/animations/card-animations-on-stand.tsx @@ -1,5 +1,5 @@ -import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown" -import { Icon } from "#i/generated/icon" +import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" +import { Icon } from "#i/generated/icon.js" export function CardAnimationsOnStand({ onStandAnimations, diff --git a/apps/show/src/exhibitors/application/email.service.server.tsx b/apps/show/src/exhibitors/application/email.service.server.tsx index de53697e..1d6c3db3 100644 --- a/apps/show/src/exhibitors/application/email.service.server.tsx +++ b/apps/show/src/exhibitors/application/email.service.server.tsx @@ -8,18 +8,18 @@ import { EMAIL_PARAGRAPH_COMPONENTS, EMAIL_SENTENCE_COMPONENTS, EmailHtml, -} from "#i/core/data-display/email-html.server" -import { createImageUrl } from "#i/core/data-display/image" +} from "#i/core/data-display/email-html.server.js" +import { createImageUrl } from "#i/core/data-display/image.js" import type { ServiceEmail } from "#i/core/email/service.server.js" import { ImageData } from "#i/core/image/data.js" -import { Routes } from "#i/core/navigation" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import { ACTIVITY_TARGET_TRANSLATION } from "#i/exhibitors/activity-target/activity-target" -import { DiscoverySource } from "#i/exhibitors/application/discovery-source" -import { LegalStatus } from "#i/exhibitors/application/legal-status" -import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category" - -import type { ServiceApplication } from "./service.server" +import { Routes } from "#i/core/navigation.js" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import { ACTIVITY_TARGET_TRANSLATION } from "#i/exhibitors/activity-target/activity-target.js" +import { DiscoverySource } from "#i/exhibitors/application/discovery-source.js" +import { LegalStatus } from "#i/exhibitors/application/legal-status.js" +import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category.js" + +import type { ServiceApplication } from "./service.server.js" export class ServiceApplicationEmail { constructor( diff --git a/apps/show/src/exhibitors/application/service.server.ts b/apps/show/src/exhibitors/application/service.server.ts index e6e7eea1..a10a5377 100644 --- a/apps/show/src/exhibitors/application/service.server.ts +++ b/apps/show/src/exhibitors/application/service.server.ts @@ -5,7 +5,7 @@ import type { Except } from "type-fest" import type { ServiceBlurhash } from "#i/core/image/blurhash.service.server.js" import { ImageData } from "#i/core/image/data.js" import { ServicePrisma } from "#i/core/prisma.service.server.js" -import { notFound } from "#i/core/response.server" +import { notFound } from "#i/core/response.server.js" export class ServiceApplication { constructor( diff --git a/apps/show/src/exhibitors/category.ts b/apps/show/src/exhibitors/category.ts index fedf09f5..726c4d12 100644 --- a/apps/show/src/exhibitors/category.ts +++ b/apps/show/src/exhibitors/category.ts @@ -1,7 +1,7 @@ import { ShowExhibitorCategory } from "@animeaux/prisma" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import { LegalStatus } from "#i/exhibitors/application/legal-status" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import { LegalStatus } from "#i/exhibitors/application/legal-status.js" export namespace ExhibitorCategory { export type Enum = ShowExhibitorCategory diff --git a/apps/show/src/exhibitors/dogs-configuration/helper.tsx b/apps/show/src/exhibitors/dogs-configuration/helper.tsx index f44490d1..f5c61f64 100644 --- a/apps/show/src/exhibitors/dogs-configuration/helper.tsx +++ b/apps/show/src/exhibitors/dogs-configuration/helper.tsx @@ -1,4 +1,4 @@ -import { HelperCard } from "#i/core/layout/helper-card" +import { HelperCard } from "#i/core/layout/helper-card.js" export function DogsHelper() { return ( diff --git a/apps/show/src/exhibitors/email.module.server.ts b/apps/show/src/exhibitors/email.module.server.ts index b5d9528b..68fa3e51 100644 --- a/apps/show/src/exhibitors/email.module.server.ts +++ b/apps/show/src/exhibitors/email.module.server.ts @@ -1,9 +1,9 @@ import type { ServiceEmail } from "#i/core/email/service.server.js" -import { ServiceExhibitorOnStandAnimationEmail } from "#i/exhibitors/animations/email.service.server" +import { ServiceExhibitorOnStandAnimationEmail } from "#i/exhibitors/animations/email.service.server.js" import type { ServiceApplication } from "#i/exhibitors/application/service.server.js" import { ServiceExhibitorDocumentEmail } from "#i/exhibitors/documents/email.service.server.js" import { ServiceExhibitorDogConfigurationEmail } from "#i/exhibitors/dogs-configuration/email.service.server.js" -import { ServiceExhibitorPerksEmail } from "#i/exhibitors/perks/email.service.server" +import { ServiceExhibitorPerksEmail } from "#i/exhibitors/perks/email.service.server.js" import { ServiceExhibitorDescriptionEmail, ServiceExhibitorPublicProfileEmail, diff --git a/apps/show/src/exhibitors/field-logo.tsx b/apps/show/src/exhibitors/field-logo.tsx index 496291d7..afadb072 100644 --- a/apps/show/src/exhibitors/field-logo.tsx +++ b/apps/show/src/exhibitors/field-logo.tsx @@ -2,9 +2,9 @@ import { withoutKey } from "@animeaux/core" import type { FieldMetadata } from "@conform-to/react" import { getInputProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { InputFileImage } from "#i/core/form-elements/input-file-image" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { InputFileImage } from "#i/core/form-elements/input-file-image.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldLogo({ field, diff --git a/apps/show/src/exhibitors/item.tsx b/apps/show/src/exhibitors/item.tsx index 9bb45b7b..06241c32 100644 --- a/apps/show/src/exhibitors/item.tsx +++ b/apps/show/src/exhibitors/item.tsx @@ -2,19 +2,19 @@ import { cn } from "@animeaux/core" import type { ShowActivityTarget } from "@animeaux/prisma" import { Link } from "@remix-run/react" -import { Chip } from "#i/core/data-display/chip" -import { IconInline } from "#i/core/data-display/icon-inline" -import { DynamicImage } from "#i/core/data-display/image" +import { Chip } from "#i/core/data-display/chip.js" +import { IconInline } from "#i/core/data-display/icon-inline.js" +import { DynamicImage } from "#i/core/data-display/image.js" import { ImageData } from "#i/core/image/data.js" -import type { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import { ChipActivityField } from "#i/exhibitors/activity-field/chip" -import { ChipActivityTarget } from "#i/exhibitors/activity-target/chip" -import { CardAnimationsOnStand } from "#i/exhibitors/animations/card-animations-on-stand" +import type { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import { ChipActivityField } from "#i/exhibitors/activity-field/chip.js" +import { ChipActivityTarget } from "#i/exhibitors/activity-target/chip.js" +import { CardAnimationsOnStand } from "#i/exhibitors/animations/card-animations-on-stand.js" import { ExhibitorSearchParams, useExhibitorSearchParams, -} from "#i/exhibitors/search-params" -import { Icon } from "#i/generated/icon" +} from "#i/exhibitors/search-params.js" +import { Icon } from "#i/generated/icon.js" export function ExhibitorItem({ exhibitor, diff --git a/apps/show/src/exhibitors/perks/helper.tsx b/apps/show/src/exhibitors/perks/helper.tsx index bebbd39e..c7850eae 100644 --- a/apps/show/src/exhibitors/perks/helper.tsx +++ b/apps/show/src/exhibitors/perks/helper.tsx @@ -1,4 +1,4 @@ -import { HelperCard } from "#i/core/layout/helper-card" +import { HelperCard } from "#i/core/layout/helper-card.js" export function PerksHelper() { return ( diff --git a/apps/show/src/exhibitors/search-params.ts b/apps/show/src/exhibitors/search-params.ts index 7ee9a265..2fa7af54 100644 --- a/apps/show/src/exhibitors/search-params.ts +++ b/apps/show/src/exhibitors/search-params.ts @@ -7,8 +7,8 @@ import { import { zu } from "@animeaux/zod-utils" import { useMemo } from "react" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import type { IconName } from "#i/generated/icon" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import type { IconName } from "#i/generated/icon.js" export type ExhibitorSearchParams = SearchParamsReader.Infer< typeof ExhibitorSearchParams.io diff --git a/apps/show/src/faq/item.tsx b/apps/show/src/faq/item.tsx index 51317f87..d8658c89 100644 --- a/apps/show/src/faq/item.tsx +++ b/apps/show/src/faq/item.tsx @@ -2,10 +2,13 @@ import * as Collapsible from "@radix-ui/react-collapsible" import chunk from "lodash.chunk" import { Children } from "react" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { LazyElement } from "#i/core/layout/lazy-element" -import type { Faq } from "#i/faq/faq" -import { Icon } from "#i/generated/icon" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import type { Faq } from "#i/faq/faq.js" +import { Icon } from "#i/generated/icon.js" export function FaqList({ children }: React.PropsWithChildren) { const childrenElements = Children.toArray(children) diff --git a/apps/show/src/invoice/email.service.server.tsx b/apps/show/src/invoice/email.service.server.tsx index 25fe89c6..214d1077 100644 --- a/apps/show/src/invoice/email.service.server.tsx +++ b/apps/show/src/invoice/email.service.server.tsx @@ -9,7 +9,7 @@ import type { ServiceEmail } from "#i/core/email/service.server.js" import { Routes } from "#i/core/navigation.js" import type { ServiceApplication } from "#i/exhibitors/application/service.server.js" import type { ServiceExhibitor } from "#i/exhibitors/service.server.js" -import type { ServiceInvoice } from "#i/invoice/service.server" +import type { ServiceInvoice } from "#i/invoice/service.server.js" export class ServiceInvoiceEmail { constructor( diff --git a/apps/show/src/mocks/mocks.client.ts b/apps/show/src/mocks/mocks.client.ts index 27fdbd57..354e7851 100644 --- a/apps/show/src/mocks/mocks.client.ts +++ b/apps/show/src/mocks/mocks.client.ts @@ -1,6 +1,6 @@ import { setupWorker } from "msw/browser" -import { cloudinaryHandlers } from "#i/mocks/cloudinary.client" +import { cloudinaryHandlers } from "#i/mocks/cloudinary.client.js" const worker = setupWorker(...cloudinaryHandlers) diff --git a/apps/show/src/previous-editions/pictures-location-state.ts b/apps/show/src/previous-editions/pictures-location-state.ts index 29dffdcd..ddff24ea 100644 --- a/apps/show/src/previous-editions/pictures-location-state.ts +++ b/apps/show/src/previous-editions/pictures-location-state.ts @@ -1,6 +1,6 @@ import { zu } from "@animeaux/zod-utils" -import { createLocationState } from "#i/core/location-state" +import { createLocationState } from "#i/core/location-state.js" export const PicturesLocationState = createLocationState( zu diff --git a/apps/show/src/providers/item.tsx b/apps/show/src/providers/item.tsx index 9a47d23f..7c38ab6d 100644 --- a/apps/show/src/providers/item.tsx +++ b/apps/show/src/providers/item.tsx @@ -3,7 +3,7 @@ import { Link } from "@remix-run/react" import { forwardRef } from "react" import type { Except } from "type-fest" -import { DynamicImage } from "#i/core/data-display/image" +import { DynamicImage } from "#i/core/data-display/image.js" import { ImageData } from "#i/core/image/data.js" export const ProviderItem = forwardRef< diff --git a/apps/show/src/providers/placeholder-image.tsx b/apps/show/src/providers/placeholder-image.tsx index 56f7be70..ff7648ec 100644 --- a/apps/show/src/providers/placeholder-image.tsx +++ b/apps/show/src/providers/placeholder-image.tsx @@ -1,7 +1,7 @@ import { forwardRef } from "react" import type { Except } from "type-fest" -import { DynamicImage } from "#i/core/data-display/image" +import { DynamicImage } from "#i/core/data-display/image.js" export const ProvidersPlaceholderImage = forwardRef< React.ComponentRef, diff --git a/apps/show/src/root.tsx b/apps/show/src/root.tsx index b63a5f03..4f9ea195 100644 --- a/apps/show/src/root.tsx +++ b/apps/show/src/root.tsx @@ -16,12 +16,12 @@ import { import { withSentry } from "@sentry/remix" import { Settings } from "luxon" -import { ErrorPage } from "#i/core/data-display/error-page" -import { createImageUrl } from "#i/core/data-display/image" -import { asRouteHandle } from "#i/core/handles" -import { getPageTitle, pageDescription } from "#i/core/page-title" -import { ScrollRestorationLocationState } from "#i/core/scroll-restoration" -import { theme } from "#i/generated/theme" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { createImageUrl } from "#i/core/data-display/image.js" +import { asRouteHandle } from "#i/core/handles.js" +import { getPageTitle, pageDescription } from "#i/core/page-title.js" +import { ScrollRestorationLocationState } from "#i/core/scroll-restoration.js" +import { theme } from "#i/generated/theme.js" import appleTouchIcon from "#i/images/apple-touch-icon.png" import faviconDark from "#i/images/favicon-dark.png" import faviconLight from "#i/images/favicon-light.png" diff --git a/apps/show/src/routes/[manifest.json].tsx b/apps/show/src/routes/[manifest.json].tsx index 5ff29be3..38215586 100644 --- a/apps/show/src/routes/[manifest.json].tsx +++ b/apps/show/src/routes/[manifest.json].tsx @@ -1,8 +1,8 @@ import type { LinksFunction } from "@remix-run/node" import { json } from "@remix-run/node" -import { getPageTitle } from "#i/core/page-title" -import { theme } from "#i/generated/theme" +import { getPageTitle } from "#i/core/page-title.js" +import { theme } from "#i/generated/theme.js" import googleTouchIcon from "#i/images/google-touch-icon.png" // Make sure `google-touch-icon.png` is added to the build assets. diff --git a/apps/show/src/routes/[sitemap.xml].tsx b/apps/show/src/routes/[sitemap.xml].tsx index e587856c..8f597536 100644 --- a/apps/show/src/routes/[sitemap.xml].tsx +++ b/apps/show/src/routes/[sitemap.xml].tsx @@ -1,8 +1,8 @@ import { renderToStaticMarkup } from "react-dom/server" -import { Routes } from "#i/core/navigation" -import { ShowDay } from "#i/core/show-day" -import { SORTED_PREVIOUS_EDITIONS } from "#i/previous-editions/previous-edition" +import { Routes } from "#i/core/navigation.js" +import { ShowDay } from "#i/core/show-day.js" +import { SORTED_PREVIOUS_EDITIONS } from "#i/previous-editions/previous-edition.js" export async function loader() { const urlDefinitions: UrlDefinition[] = [ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/loader.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/loader.server.ts index 3c05954f..2eb3b633 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/loader.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/loader.server.ts @@ -3,7 +3,7 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/route.tsx index 01fdb702..6f8f8918 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/route.tsx @@ -1,22 +1,22 @@ import type { MetaFunction } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" - -import type { loader } from "./loader.server" -import { SectionAwaitingValidation } from "./section-awaiting-validation" -import { SectionDocuments } from "./section-documents" -import { SectionHelper } from "./section-helper" -import { SectionLaureat } from "./section-laureat" -import { SectionPayment } from "./section-payment" -import { SectionSponsorship } from "./section-sponsorship" -import { SectionStandNumber } from "./section-stand-number" -import { SectionToComplete } from "./section-to-complete" -import { SectionValidated } from "./section-validated" - -export { loader } from "./loader.server" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" + +import type { loader } from "./loader.server.js" +import { SectionAwaitingValidation } from "./section-awaiting-validation.js" +import { SectionDocuments } from "./section-documents.js" +import { SectionHelper } from "./section-helper.js" +import { SectionLaureat } from "./section-laureat.js" +import { SectionPayment } from "./section-payment.js" +import { SectionSponsorship } from "./section-sponsorship.js" +import { SectionStandNumber } from "./section-stand-number.js" +import { SectionToComplete } from "./section-to-complete.js" +import { SectionValidated } from "./section-validated.js" + +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-awaiting-validation.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-awaiting-validation.tsx index 7aa50b28..29deca25 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-awaiting-validation.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-awaiting-validation.tsx @@ -1,9 +1,9 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { useLoaderData } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" import { TaskItemDescription, TaskItemDocument, @@ -12,7 +12,7 @@ import { TaskItemPerks, TaskItemPublicProfile, TaskItemStand, -} from "./task-items" +} from "./task-items.js" export function SectionAwaitingValidation() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-documents.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-documents.tsx index e9689879..5e3710c5 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-documents.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-documents.tsx @@ -1,10 +1,10 @@ import { useLoaderData } from "@remix-run/react" -import { FileItem } from "#i/core/data-display/file-item" -import { FormLayout } from "#i/core/layout/form-layout" +import { FileItem } from "#i/core/data-display/file-item.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import { HelperCard } from "#i/core/layout/helper-card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionDocuments() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-helper.tsx index 8f07f34a..fd01ff16 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-helper.tsx @@ -1,5 +1,5 @@ -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { FormLayout } from "#i/core/layout/form-layout" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-laureat.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-laureat.tsx index d5bb408a..37b03517 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-laureat.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-laureat.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionLaureat() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-payment.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-payment.tsx index e96e43ad..5e8c360f 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-payment.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-payment.tsx @@ -1,11 +1,11 @@ import { Link, useLoaderData } from "@remix-run/react" import { Action } from "#i/core/actions/action.js" -import { HelperCard } from "#i/core/layout/helper-card" +import { HelperCard } from "#i/core/layout/helper-card.js" import { Routes } from "#i/core/navigation.js" import { InvoiceStatus } from "#i/invoice/status.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionPayment() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-sponsorship.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-sponsorship.tsx index f83d1ada..a7e8e157 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-sponsorship.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-sponsorship.tsx @@ -1,12 +1,12 @@ import { useLoaderData } from "@remix-run/react" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionSponsorship() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-stand-number.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-stand-number.tsx index 5a640b03..58f598fb 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-stand-number.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-stand-number.tsx @@ -1,8 +1,8 @@ import { useLoaderData } from "@remix-run/react" -import { HelperCard } from "#i/core/layout/helper-card" +import { HelperCard } from "#i/core/layout/helper-card.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionStandNumber() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-to-complete.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-to-complete.tsx index 299b577e..bdb1d82f 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-to-complete.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-to-complete.tsx @@ -1,9 +1,9 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { useLoaderData } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" import { TaskItemDescription, TaskItemDocument, @@ -12,7 +12,7 @@ import { TaskItemPerks, TaskItemPublicProfile, TaskItemStand, -} from "./task-items" +} from "./task-items.js" export function SectionToComplete() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-validated.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-validated.tsx index e2ba7845..625a93c8 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-validated.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/section-validated.tsx @@ -1,9 +1,9 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { useLoaderData } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" import { TaskItemDescription, TaskItemDocument, @@ -12,7 +12,7 @@ import { TaskItemPerks, TaskItemPublicProfile, TaskItemStand, -} from "./task-items" +} from "./task-items.js" export function SectionValidated() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/task-items.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/task-items.tsx index 617fea97..aee84a86 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config._index/task-items.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config._index/task-items.tsx @@ -2,13 +2,16 @@ import type { Extends } from "@animeaux/core" import { ShowExhibitorStatus } from "@animeaux/prisma" import { useLoaderData } from "@remix-run/react" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { TaskItem } from "#i/core/data-display/task-item" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { TaskItem } from "#i/core/data-display/task-item.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function TaskItemDocument({ status }: { status: ShowExhibitorStatus }) { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/route.tsx index d923b5ba..02dc5110 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/route.tsx @@ -3,16 +3,16 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { SectionDocuments } from "./section-documents" -import { SectionHelper } from "./section-helper" -import { SectionStructure } from "./section-structure" +import { SectionDocuments } from "./section-documents.js" +import { SectionHelper } from "./section-helper.js" +import { SectionStructure } from "./section-structure.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-documents.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-documents.tsx index 481cae1c..5651d2c7 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-documents.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-documents.tsx @@ -1,14 +1,17 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" -import { FileItem } from "#i/core/data-display/file-item" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" - -import type { loader } from "./route" +import { FileItem } from "#i/core/data-display/file-item.js" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" + +import type { loader } from "./route.js" export function SectionDocuments() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-helper.tsx index d82f6ddb..5e3a9378 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-helper.tsx @@ -1,5 +1,5 @@ -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { FormLayout } from "#i/core/layout/form-layout" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-structure.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-structure.tsx index b5fb8110..2917c4a3 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-structure.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents._index/section-structure.tsx @@ -1,11 +1,11 @@ import { getCompleteLocation } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" -import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { LegalStatus } from "#i/exhibitors/application/legal-status" +import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { LegalStatus } from "#i/exhibitors/application/legal-status.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SectionStructure() { const { exhibitor, application } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/route.tsx index 41905f7b..97badc48 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/route.tsx @@ -8,18 +8,18 @@ import type { MetaFunction } from "@remix-run/react" import { captureException } from "@sentry/remix" import { promiseHash } from "remix-utils/promise" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { badRequest } from "#i/core/response.server" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { ActionSchema } from "./action" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import { ActionSchema } from "./action.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-form.tsx index 12f44060..9083cf56 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-form.tsx @@ -8,11 +8,11 @@ import { useNavigation, } from "@remix-run/react" -import { FieldFile } from "#i/core/form-elements/field-file" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldFile } from "#i/core/form-elements/field-file.js" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function SectionForm() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-helper.tsx index 2802b164..643d1486 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.documents.modifier/section-helper.tsx @@ -1,5 +1,5 @@ -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { FormLayout } from "#i/core/layout/form-layout" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/route.tsx index 38f0d665..ca09090c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/route.tsx @@ -5,12 +5,12 @@ import { FormLayout } from "#i/core/layout/form-layout.js" import { createSocialMeta } from "#i/core/meta.js" import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionBillingInfo } from "./section-billing-info" -import { SectionHelper } from "./section-helper" -import { SectionInvoices } from "./section-invoices" +import type { loader } from "./loader.server.js" +import { SectionBillingInfo } from "./section-billing-info.js" +import { SectionHelper } from "./section-helper.js" +import { SectionInvoices } from "./section-invoices.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-billing-info.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-billing-info.tsx index 96c097c0..36dfd9dd 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-billing-info.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-billing-info.tsx @@ -2,11 +2,11 @@ import { getCompleteLocation } from "@animeaux/core" import { Link, useLoaderData } from "@remix-run/react" import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" import { Routes } from "#i/core/navigation.js" import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionBillingInfo() { const { exhibitor, invoices } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-helper.tsx index 78196b46..8709f5e6 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-invoices.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-invoices.tsx index cb93c749..8c095bdf 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-invoices.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation._index/section-invoices.tsx @@ -3,12 +3,12 @@ import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" import { TaskItem } from "#i/core/data-display/task-item.js" -import { FormLayout } from "#i/core/layout/form-layout" -import { LightBoardCard } from "#i/core/layout/light-board-card" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" import { Icon } from "#i/generated/icon.js" import { InvoiceStatus } from "#i/invoice/status.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionInvoices() { const { invoices } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/action.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/action.server.ts index a6725871..cba22f00 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/action.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/action.server.ts @@ -9,7 +9,7 @@ import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { actionSchema } from "./action" +import { actionSchema } from "./action.js" export async function action({ request, params }: ActionFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/fieldset-billing.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/fieldset-billing.tsx index 7fc954df..0b6ae83a 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/fieldset-billing.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/fieldset-billing.tsx @@ -1,9 +1,9 @@ -import { FieldNumeric } from "#i/core/form-elements/field-numeric" -import { FieldSwitch } from "#i/core/form-elements/field-switch" -import { FieldText } from "#i/core/form-elements/field-text" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldNumeric } from "#i/core/form-elements/field-numeric.js" +import { FieldSwitch } from "#i/core/form-elements/field-switch.js" +import { FieldText } from "#i/core/form-elements/field-text.js" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetBilling() { const { fields } = useForm() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/form.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/form.ts index c2b79d11..e3a272a1 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/form.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/form.ts @@ -3,8 +3,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" -import { actionSchema } from "./action" -import type { action, loader } from "./route" +import { actionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor, application } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/route.tsx index e41c07aa..5df7fa41 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/route.tsx @@ -5,12 +5,12 @@ import { FormLayout } from "#i/core/layout/form-layout.js" import { createSocialMeta } from "#i/core/meta.js" import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import type { loader } from "./loader.server.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-form.tsx index be73a1cf..3d2dda8c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-form.tsx @@ -1,10 +1,10 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetBilling } from "./fieldset-billing" -import { FormProvider, useFormRoot } from "./form" +import { FieldsetBilling } from "./fieldset-billing.js" +import { FormProvider, useFormRoot } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-helper.tsx index a5ac3ac4..64da36a3 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.facturation.modifier/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/loader.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/loader.server.ts index 9f153e0d..e09984b7 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/loader.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/loader.server.ts @@ -4,7 +4,7 @@ import { promiseHash } from "remix-utils/promise" import { notFound } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/route.tsx index e089a488..47945337 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/route.tsx @@ -1,18 +1,18 @@ import type { MetaFunction } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import type { loader } from "./loader.server.js" -import { SectionDogs } from "./section-dogs" -import { SectionHelper } from "./section-helper" +import { SectionDogs } from "./section-dogs.js" +import { SectionHelper } from "./section-helper.js" import { SectionOnStageAnimations } from "./section-on-stage-animations.js" import { SectionOnStandAnimations } from "./section-on-stand-animations.js" import { SectionPerks } from "./section-perks.js" import { SectionPrice } from "./section-price.js" -import { SectionStandConfiguration } from "./section-stand-configuration" +import { SectionStandConfiguration } from "./section-stand-configuration.js" export { loader } from "./loader.server.js" diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-dogs.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-dogs.tsx index 419895c5..a29b2ce1 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-dogs.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-dogs.tsx @@ -2,14 +2,17 @@ import { joinReactNodes } from "@animeaux/core" import { Gender, ShowExhibitorStatus } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Routes } from "#i/core/navigation" -import { GENDER_TRANSLATION } from "#i/exhibitors/dogs-configuration/gender" -import { DogsHelper } from "#i/exhibitors/dogs-configuration/helper" -import { Icon } from "#i/generated/icon" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Routes } from "#i/core/navigation.js" +import { GENDER_TRANSLATION } from "#i/exhibitors/dogs-configuration/gender.js" +import { DogsHelper } from "#i/exhibitors/dogs-configuration/helper.js" +import { Icon } from "#i/generated/icon.js" import type { loader } from "./loader.server.js" import { SectionId } from "./section-id.js" diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-helper.tsx index 5ba21d3a..52bd3da0 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stage-animations.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stage-animations.tsx index 4e06313a..530c63a6 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stage-animations.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stage-animations.tsx @@ -4,15 +4,15 @@ import { ShowStandZone } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" import { Markdown, SENTENCE_COMPONENTS } from "#i/core/data-display/markdown.js" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { LightBoardCard } from "#i/core/layout/light-board-card" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" import { ChipActivityTarget } from "#i/exhibitors/activity-target/chip.js" -import type { loader } from "./route" -import { SectionId } from "./section-id" +import type { loader } from "./route.js" +import { SectionId } from "./section-id.js" export function SectionOnStageAnimations() { const { exhibitor, animations } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stand-animations.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stand-animations.tsx index 5d3b79e9..4ff7af16 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stand-animations.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-on-stand-animations.tsx @@ -1,16 +1,19 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Routes } from "#i/core/navigation" -import { CardAnimationsOnStand } from "#i/exhibitors/animations/card-animations-on-stand" -import { Icon } from "#i/generated/icon" - -import type { loader } from "./route" -import { SectionId } from "./section-id" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Routes } from "#i/core/navigation.js" +import { CardAnimationsOnStand } from "#i/exhibitors/animations/card-animations-on-stand.js" +import { Icon } from "#i/generated/icon.js" + +import type { loader } from "./route.js" +import { SectionId } from "./section-id.js" export function SectionOnStandAnimations() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-perks.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-perks.tsx index 1d8df96b..5ea9c768 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-perks.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-perks.tsx @@ -1,12 +1,15 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { Routes } from "#i/core/navigation" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { Routes } from "#i/core/navigation.js" import { PerksHelper } from "#i/exhibitors/perks/helper.js" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" import type { loader } from "./loader.server.js" import { SectionId } from "./section-id.js" diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-stand-configuration.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-stand-configuration.tsx index 789db640..62793dd0 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-stand-configuration.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation._index/section-stand-configuration.tsx @@ -5,12 +5,12 @@ import { Markdown, PARAGRAPH_COMPONENTS, SENTENCE_COMPONENTS, -} from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { Routes } from "#i/core/navigation" -import { INSTALLATION_DAY_TRANSLATION } from "#i/exhibitors/stand-configuration/installation-day" -import { Icon } from "#i/generated/icon" +} from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { Routes } from "#i/core/navigation.js" +import { INSTALLATION_DAY_TRANSLATION } from "#i/exhibitors/stand-configuration/installation-day.js" +import { Icon } from "#i/generated/icon.js" import type { loader } from "./loader.server.js" import { SectionId } from "./section-id.js" diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/route.tsx index 0556af7d..bef33be8 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/route.tsx @@ -5,19 +5,19 @@ import type { ActionFunctionArgs, LoaderFunctionArgs } from "@remix-run/node" import { json, redirect } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { badRequest } from "#i/core/response.server" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" -import { ActionSchema } from "./action" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import { ActionSchema } from "./action.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-form.tsx index deba32ae..18900122 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-form.tsx @@ -9,13 +9,13 @@ import { useNavigation, } from "@remix-run/react" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { CardAnimationsOnStand } from "#i/exhibitors/animations/card-animations-on-stand" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { CardAnimationsOnStand } from "#i/exhibitors/animations/card-animations-on-stand.js" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-helper.tsx index 493dee9c..a901be68 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-animations/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/action.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/action.server.ts index 4db8db62..607115c7 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/action.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/action.server.ts @@ -4,13 +4,13 @@ import { parseWithZod } from "@conform-to/zod" import type { ActionFunctionArgs } from "@remix-run/node" import { json, redirect } from "@remix-run/node" -import { Routes } from "#i/core/navigation" -import { badRequest } from "#i/core/response.server" +import { Routes } from "#i/core/navigation.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" -import { createActionSchema } from "./action-schema" +import { createActionSchema } from "./action-schema.js" export async function action({ request, params }: ActionFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/fieldset-perks.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/fieldset-perks.tsx index 2b309fa9..5e3147b7 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/fieldset-perks.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/fieldset-perks.tsx @@ -1,13 +1,13 @@ import { useLoaderData } from "@remix-run/react" -import { FieldStepper } from "#i/core/form-elements/field-stepper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldStepper } from "#i/core/form-elements/field-stepper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import { PerksHelper } from "#i/exhibitors/perks/helper.js" import { Price } from "#i/price/price.js" -import { useForm } from "./form" -import { HelperPriceDetails } from "./helper-price-details" -import type { loader } from "./loader.server" +import { useForm } from "./form.js" +import { HelperPriceDetails } from "./helper-price-details.js" +import type { loader } from "./loader.server.js" export function FieldsetPerks() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/form.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/form.ts index a78e013c..1a75c6bd 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/form.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/form.ts @@ -4,9 +4,9 @@ import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" import { useMemo } from "react" -import type { action } from "./action.server" -import { createActionSchema } from "./action-schema" -import type { loader } from "./loader.server" +import type { action } from "./action.server.js" +import { createActionSchema } from "./action-schema.js" +import type { loader } from "./loader.server.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/helper-price-details.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/helper-price-details.tsx index a44aeff6..4c7d64bb 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/helper-price-details.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/helper-price-details.tsx @@ -3,8 +3,8 @@ import { useLoaderData } from "@remix-run/react" import { HelperCard } from "#i/core/layout/helper-card.js" import { ParticipationReceipt } from "#i/exhibitors/participation-receipt.js" -import { useForm } from "./form" -import type { loader } from "./loader.server" +import { useForm } from "./form.js" +import type { loader } from "./loader.server.js" export function HelperPriceDetails() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/loader.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/loader.server.ts index f5276b22..6624d92b 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/loader.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/loader.server.ts @@ -3,9 +3,9 @@ import { safeParseRouteParam } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import { redirect } from "@remix-run/node" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" export async function loader({ params }: LoaderFunctionArgs) { diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/route.tsx index 7491446a..29f4750c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/route.tsx @@ -1,16 +1,16 @@ import type { MetaFunction } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import type { loader } from "./loader.server.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-form.tsx index e6dd7695..51176ee7 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-form.tsx @@ -1,10 +1,10 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetPerks } from "./fieldset-perks" -import { FormProvider, useFormRoot } from "./form" +import { FieldsetPerks } from "./fieldset-perks.js" +import { FormProvider, useFormRoot } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-helper.tsx index 6c0cb8d3..c2cffa0c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-avantages/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/field-dog-gender.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/field-dog-gender.tsx index 1c71e08d..07e8f37a 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/field-dog-gender.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/field-dog-gender.tsx @@ -2,12 +2,12 @@ import type { Gender } from "@animeaux/prisma" import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import { GENDER_TRANSLATION, SORTED_GENDERS, -} from "#i/exhibitors/dogs-configuration/gender" +} from "#i/exhibitors/dogs-configuration/gender.js" export function FieldDogGender({ field, diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/fieldset-dogs.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/fieldset-dogs.tsx index 0201a917..ddc05331 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/fieldset-dogs.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/fieldset-dogs.tsx @@ -1,13 +1,13 @@ import { Gender } from "@animeaux/prisma" import { Fragment } from "react" -import { FieldText } from "#i/core/form-elements/field-text" -import { FieldYesNo } from "#i/core/form-elements/field-yes-no" -import { FormLayout } from "#i/core/layout/form-layout" -import { DogsHelper } from "#i/exhibitors/dogs-configuration/helper" +import { FieldText } from "#i/core/form-elements/field-text.js" +import { FieldYesNo } from "#i/core/form-elements/field-yes-no.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { DogsHelper } from "#i/exhibitors/dogs-configuration/helper.js" -import { FieldDogGender } from "./field-dog-gender" -import { useForm } from "./form" +import { FieldDogGender } from "./field-dog-gender.js" +import { useForm } from "./form.js" export function FieldsetDogs() { const { form, fields } = useForm() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/form.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/form.ts index 5be3f2c0..5d0b04c3 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/form.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/form.ts @@ -3,8 +3,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/route.tsx index 281a3bd2..de9ab0ec 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/route.tsx @@ -6,19 +6,19 @@ import { json, redirect } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import { createPath } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { badRequest } from "#i/core/response.server" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" -import { ActionSchema } from "./action" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import { ActionSchema } from "./action.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-form.tsx index 452a5b55..43b32ae2 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-form.tsx @@ -1,10 +1,10 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetDogs } from "./fieldset-dogs" -import { FormProvider, useFormRoot } from "./form" +import { FieldsetDogs } from "./fieldset-dogs.js" +import { FormProvider, useFormRoot } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-helper.tsx index 6c0cb8d3..c2cffa0c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-chiens/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/action.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/action.server.ts index beb20d1c..f516534e 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/action.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/action.server.ts @@ -5,15 +5,15 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { json, redirect } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { Routes } from "#i/core/navigation" -import { badRequest } from "#i/core/response.server" +import { Routes } from "#i/core/navigation.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" -import { createActionSchema } from "./action-schema" -import { getDividerTypesData } from "./divider-types.server" -import { getStandSizesData } from "./stand-sizes.server" +import { createActionSchema } from "./action-schema.js" +import { getDividerTypesData } from "./divider-types.server.js" +import { getStandSizesData } from "./stand-sizes.server.js" export async function action({ request, params }: ActionFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-divider-type.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-divider-type.tsx index 796dad7a..9eef8f14 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-divider-type.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-divider-type.tsx @@ -3,12 +3,12 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" import type { Simplify } from "type-fest" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import type { DividerTypeAvailability } from "#i/divider-type/availability.js" import { Price } from "#i/price/price.js" -import { DividerType } from "./action-schema" +import { DividerType } from "./action-schema.js" export function FieldDividerType({ field, diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-installation-day.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-installation-day.tsx index 771a247e..8b59b87b 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-installation-day.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/field-installation-day.tsx @@ -2,12 +2,12 @@ import type { ShowInstallationDay } from "@animeaux/prisma" import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import { INSTALLATION_DAY_TRANSLATION, SORTED_INSTALLATION_DAYS, -} from "#i/exhibitors/stand-configuration/installation-day" +} from "#i/exhibitors/stand-configuration/installation-day.js" export function FieldInstallationDay({ field, diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/fieldset-stand.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/fieldset-stand.tsx index fd183975..e6efef93 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/fieldset-stand.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/fieldset-stand.tsx @@ -1,18 +1,18 @@ import type { Prisma } from "@animeaux/prisma" import { useLoaderData } from "@remix-run/react" -import { FieldStepper } from "#i/core/form-elements/field-stepper" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { FieldYesNo } from "#i/core/form-elements/field-yes-no" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldStepper } from "#i/core/form-elements/field-stepper.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { FieldYesNo } from "#i/core/form-elements/field-yes-no.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import { Price } from "#i/price/price.js" import { FieldStandSize } from "#i/stand-size/field.js" -import { FieldDividerType } from "./field-divider-type" -import { FieldInstallationDay } from "./field-installation-day" -import { useForm } from "./form" -import { HelperPriceDetails } from "./helper-price-details" -import type { loader } from "./loader.server" +import { FieldDividerType } from "./field-divider-type.js" +import { FieldInstallationDay } from "./field-installation-day.js" +import { useForm } from "./form.js" +import { HelperPriceDetails } from "./helper-price-details.js" +import type { loader } from "./loader.server.js" export function FieldsetStand() { const { standSizes, dividerTypes } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/form.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/form.ts index 9932222d..edd46468 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/form.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/form.ts @@ -4,9 +4,9 @@ import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" import { useMemo } from "react" -import type { action } from "./action.server" -import { createActionSchema, DividerType } from "./action-schema" -import type { loader } from "./loader.server" +import type { action } from "./action.server.js" +import { createActionSchema, DividerType } from "./action-schema.js" +import type { loader } from "./loader.server.js" export function useFormRoot() { const { exhibitor, availableStandSizes, availableDividerTypes } = diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/helper-price-details.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/helper-price-details.tsx index c1b434a3..a280e344 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/helper-price-details.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/helper-price-details.tsx @@ -3,8 +3,8 @@ import { useLoaderData } from "@remix-run/react" import { HelperCard } from "#i/core/layout/helper-card.js" import { ParticipationReceipt } from "#i/exhibitors/participation-receipt.js" -import { useForm } from "./form" -import type { loader } from "./loader.server" +import { useForm } from "./form.js" +import type { loader } from "./loader.server.js" export function HelperPriceDetails() { const { exhibitor, standSizes } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/loader.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/loader.server.ts index f4792ccf..86554f64 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/loader.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/loader.server.ts @@ -4,13 +4,13 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { redirect } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" import { SectionId } from "#i/routes/_exhibitor.exposants.$token._config.participation._index/section-id.js" -import { getDividerTypesData } from "./divider-types.server" -import { getStandSizesData } from "./stand-sizes.server" +import { getDividerTypesData } from "./divider-types.server.js" +import { getStandSizesData } from "./stand-sizes.server.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/route.tsx index 25cfc8f1..25bc39ac 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/route.tsx @@ -1,16 +1,16 @@ import type { MetaFunction } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import type { loader } from "./loader.server.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-form.tsx index 6bc60ad1..36b72114 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-form.tsx @@ -1,10 +1,10 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetStand } from "./fieldset-stand" -import { FormProvider, useFormRoot } from "./form" +import { FieldsetStand } from "./fieldset-stand.js" +import { FormProvider, useFormRoot } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-helper.tsx index 6c0cb8d3..c2cffa0c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.participation.modifier-stand/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/route.tsx index 94bd3eb8..e768fb76 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/route.tsx @@ -2,16 +2,16 @@ import { safeParseRouteParam } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { SectionDescription } from "./section-description" -import { SectionHelper } from "./section-helper" -import { SectionPublicProfile } from "./section-public-profile" +import { SectionDescription } from "./section-description.js" +import { SectionHelper } from "./section-helper.js" +import { SectionPublicProfile } from "./section-public-profile.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-description.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-description.tsx index 36717975..7a30e3aa 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-description.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-description.tsx @@ -1,14 +1,17 @@ import { ShowExhibitorStatus } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Routes } from "#i/core/navigation" -import { Icon } from "#i/generated/icon" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Routes } from "#i/core/navigation.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SectionDescription() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-helper.tsx index 0d76c5f6..1474c2c6 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-public-profile.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-public-profile.tsx index b448c88d..0d25b97d 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-public-profile.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil._index/section-public-profile.tsx @@ -2,19 +2,22 @@ import { joinReactNodes } from "@animeaux/core" import { ShowExhibitorStatus } from "@animeaux/prisma" import { Link, useLoaderData } from "@remix-run/react" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { ChipList } from "#i/core/data-display/chip" -import { DynamicImage } from "#i/core/data-display/image" -import { Markdown, PARAGRAPH_COMPONENTS } from "#i/core/data-display/markdown" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { ChipList } from "#i/core/data-display/chip.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { + Markdown, + PARAGRAPH_COMPONENTS, +} from "#i/core/data-display/markdown.js" import { ImageData } from "#i/core/image/data.js" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { Routes } from "#i/core/navigation" -import { ChipActivityField } from "#i/exhibitors/activity-field/chip" -import { ChipActivityTarget } from "#i/exhibitors/activity-target/chip" -import { Icon } from "#i/generated/icon" - -import type { loader } from "./route" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { Routes } from "#i/core/navigation.js" +import { ChipActivityField } from "#i/exhibitors/activity-field/chip.js" +import { ChipActivityTarget } from "#i/exhibitors/activity-target/chip.js" +import { Icon } from "#i/generated/icon.js" + +import type { loader } from "./route.js" export function SectionPublicProfile() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/fieldset-description.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/fieldset-description.tsx index 4d333c7b..97896e17 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/fieldset-description.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/fieldset-description.tsx @@ -1,10 +1,10 @@ import type { FieldMetadata } from "@conform-to/react" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" -import { useForm } from "./form" +import { useForm } from "./form.js" export function FieldsetDescription() { const { fields } = useForm() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/form.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/form.ts index 8261a237..08a2e803 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/form.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/form.ts @@ -3,8 +3,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/route.tsx index 87fb36b5..ab8511e4 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/route.tsx @@ -6,18 +6,18 @@ import { json, redirect } from "@remix-run/node" import type { MetaFunction } from "@remix-run/react" import { createPath } from "@remix-run/react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { badRequest } from "#i/core/response.server" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { ActionSchema } from "./action" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import { ActionSchema } from "./action.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-form.tsx index ea9aebc0..cee0b548 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-form.tsx @@ -1,10 +1,10 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetDescription } from "./fieldset-description" -import { FormProvider, useFormRoot } from "./form" +import { FieldsetDescription } from "./fieldset-description.js" +import { FormProvider, useFormRoot } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-helper.tsx index f48a383e..97996da5 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-description/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/fieldset-public-profile.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/fieldset-public-profile.tsx index a19aaa01..58a2e25d 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/fieldset-public-profile.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/fieldset-public-profile.tsx @@ -2,16 +2,16 @@ import { withoutKey } from "@animeaux/core" import { getInputProps } from "@conform-to/react" import { useLoaderData } from "@remix-run/react" -import { ActionIcon } from "#i/core/actions/action" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" -import { FieldActivityField } from "#i/exhibitors/activity-field/field" -import { FieldActivityTarget } from "#i/exhibitors/activity-target/field" -import { FieldLogo } from "#i/exhibitors/field-logo" -import { Icon } from "#i/generated/icon" +import { ActionIcon } from "#i/core/actions/action.js" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { FieldActivityField } from "#i/exhibitors/activity-field/field.js" +import { FieldActivityTarget } from "#i/exhibitors/activity-target/field.js" +import { FieldLogo } from "#i/exhibitors/field-logo.js" +import { Icon } from "#i/generated/icon.js" -import { useForm } from "./form" -import type { loader } from "./route" +import { useForm } from "./form.js" +import type { loader } from "./route.js" export function FieldsetPublicProfile() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/form.ts b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/form.ts index 58664100..13fa1a2e 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/form.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/form.ts @@ -3,8 +3,8 @@ import { useForm as useFormBase } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" -import { ActionSchema } from "./action" -import type { action, loader } from "./route" +import { ActionSchema } from "./action.js" +import type { action, loader } from "./route.js" export function useFormRoot() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/route.tsx index 46058a0c..4fd9a058 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/route.tsx @@ -8,18 +8,18 @@ import type { MetaFunction } from "@remix-run/react" import { captureException } from "@sentry/remix" import { v4 as uuid } from "uuid" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { FormLayout } from "#i/core/layout/form-layout" -import { createSocialMeta } from "#i/core/meta" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { badRequest } from "#i/core/response.server" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { createSocialMeta } from "#i/core/meta.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { badRequest } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { ActionSchema } from "./action" -import { SectionForm } from "./section-form" -import { SectionHelper } from "./section-helper" +import { ActionSchema } from "./action.js" +import { SectionForm } from "./section-form.js" +import { SectionHelper } from "./section-helper.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-form.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-form.tsx index 7efbf7a8..6a58e75d 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-form.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-form.tsx @@ -1,10 +1,10 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetPublicProfile } from "./fieldset-public-profile" -import { FormProvider, useFormRoot } from "./form" +import { FieldsetPublicProfile } from "./fieldset-public-profile.js" +import { FormProvider, useFormRoot } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-helper.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-helper.tsx index f48a383e..97996da5 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-helper.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config.profil.modifier-profil-public/section-helper.tsx @@ -1,4 +1,4 @@ -import { FormLayout } from "#i/core/layout/form-layout" +import { FormLayout } from "#i/core/layout/form-layout.js" export function SectionHelper() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config/route.tsx index 936345e6..c591735d 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config/route.tsx @@ -3,10 +3,10 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { Outlet } from "@remix-run/react" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { SectionTabs } from "./section-tabs" -import { SectionTitle } from "./section-title" +import { SectionTabs } from "./section-tabs.js" +import { SectionTitle } from "./section-title.js" export async function loader({ params }: LoaderFunctionArgs) { const routeParams = safeParseRouteParam(RouteParamsSchema, params) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config/section-tabs.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config/section-tabs.tsx index 72aa20c8..32e7c22e 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config/section-tabs.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config/section-tabs.tsx @@ -1,10 +1,10 @@ import { cn } from "@animeaux/core" import { useLoaderData } from "@remix-run/react" -import { Tab, Tabs } from "#i/core/controllers/tabs" -import { Routes } from "#i/core/navigation" +import { Tab, Tabs } from "#i/core/controllers/tabs.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SectionTabs() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token._config/section-title.tsx b/apps/show/src/routes/_exhibitor.exposants.$token._config/section-title.tsx index 970b97f3..e77d5bcb 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token._config/section-title.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token._config/section-title.tsx @@ -1,8 +1,8 @@ import { useLoaderData } from "@remix-run/react" -import { Section } from "#i/core/layout/section" +import { Section } from "#i/core/layout/section.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SectionTitle() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token.faq/loader.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token.faq/loader.server.ts index 51c5398c..021fa11a 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token.faq/loader.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token.faq/loader.server.ts @@ -1,6 +1,6 @@ import { json } from "@remix-run/node" -import { QUESTIONS } from "./questions.server" +import { QUESTIONS } from "./questions.server.js" export async function loader() { return json({ questions: QUESTIONS }) diff --git a/apps/show/src/routes/_exhibitor.exposants.$token.faq/questions.server.ts b/apps/show/src/routes/_exhibitor.exposants.$token.faq/questions.server.ts index f10d13d8..05ba7158 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token.faq/questions.server.ts +++ b/apps/show/src/routes/_exhibitor.exposants.$token.faq/questions.server.ts @@ -1,4 +1,4 @@ -import type { Faq } from "#i/faq/faq" +import type { Faq } from "#i/faq/faq.js" export const QUESTIONS: Faq[] = [ { diff --git a/apps/show/src/routes/_exhibitor.exposants.$token.faq/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token.faq/route.tsx index 4ad4a542..3264b1d7 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token.faq/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token.faq/route.tsx @@ -1,15 +1,15 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionMoreQuestions } from "./section-more-questions" -import { SectionQuestions } from "./section-questions" -import { SectionTitle } from "./section-title" +import type { loader } from "./loader.server.js" +import { SectionMoreQuestions } from "./section-more-questions.js" +import { SectionQuestions } from "./section-questions.js" +import { SectionTitle } from "./section-title.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-more-questions.tsx b/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-more-questions.tsx index 57b7f7a6..f1c56b16 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-more-questions.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-more-questions.tsx @@ -1,7 +1,7 @@ -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { LazyElement } from "#i/core/layout/lazy-element" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Section } from "#i/core/layout/section" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Section } from "#i/core/layout/section.js" export function SectionMoreQuestions() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-questions.tsx b/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-questions.tsx index d4f7f5c2..58b781ab 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-questions.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-questions.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { Section } from "#i/core/layout/section" -import { FaqItem, FaqList } from "#i/faq/item" +import { Section } from "#i/core/layout/section.js" +import { FaqItem, FaqList } from "#i/faq/item.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionQuestions() { const { questions } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-title.tsx b/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-title.tsx index a62a0ccb..8f836967 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-title.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token.faq/section-title.tsx @@ -1,6 +1,6 @@ -import { DynamicImage } from "#i/core/data-display/image" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token/footer.tsx b/apps/show/src/routes/_exhibitor.exposants.$token/footer.tsx index f8ffd389..c99cd2aa 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token/footer.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token/footer.tsx @@ -1,4 +1,4 @@ -import { Footer } from "#i/core/layout/footer" +import { Footer } from "#i/core/layout/footer.js" export function LayoutFooter() { return ( diff --git a/apps/show/src/routes/_exhibitor.exposants.$token/header.tsx b/apps/show/src/routes/_exhibitor.exposants.$token/header.tsx index c4e1bbd7..cdb6352c 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token/header.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token/header.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { Header } from "#i/core/layout/header" -import { Routes } from "#i/core/navigation" +import { Header } from "#i/core/layout/header.js" +import { Routes } from "#i/core/navigation.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function LayoutHeader() { const { exhibitor } = useLoaderData() diff --git a/apps/show/src/routes/_exhibitor.exposants.$token/route.tsx b/apps/show/src/routes/_exhibitor.exposants.$token/route.tsx index b9456391..052dfcd1 100644 --- a/apps/show/src/routes/_exhibitor.exposants.$token/route.tsx +++ b/apps/show/src/routes/_exhibitor.exposants.$token/route.tsx @@ -4,14 +4,14 @@ import type { LoaderFunctionArgs } from "@remix-run/node" import { Outlet } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { ErrorPage } from "#i/core/data-display/error-page" -import { PageBackground } from "#i/core/layout/page-background" -import { notFound } from "#i/core/response.server" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { PageBackground } from "#i/core/layout/page-background.js" +import { notFound } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { RouteParamsSchema } from "#i/exhibitors/route-params" +import { RouteParamsSchema } from "#i/exhibitors/route-params.js" -import { LayoutFooter } from "./footer" -import { LayoutHeader } from "./header" +import { LayoutFooter } from "./footer.js" +import { LayoutHeader } from "./header.js" export async function loader({ params }: LoaderFunctionArgs) { if (process.env.FEATURE_FLAG_EXHIBITOR_APPLICATION_ONLINE !== "true") { diff --git a/apps/show/src/routes/_layout.$.tsx b/apps/show/src/routes/_layout.$.tsx index 35caa58d..59121de1 100644 --- a/apps/show/src/routes/_layout.$.tsx +++ b/apps/show/src/routes/_layout.$.tsx @@ -1,9 +1,9 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" export async function loader() { throw notFound() diff --git a/apps/show/src/routes/_layout._index/route-online.tsx b/apps/show/src/routes/_layout._index/route-online.tsx index 15ae89bd..95f0c841 100644 --- a/apps/show/src/routes/_layout._index/route-online.tsx +++ b/apps/show/src/routes/_layout._index/route-online.tsx @@ -3,22 +3,22 @@ import { Link, useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" import { useEffect, useState } from "react" -import { Action } from "#i/core/actions/action" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { DynamicImage } from "#i/core/data-display/image" -import { BoardCard } from "#i/core/layout/board-card" -import { HighLightBackground } from "#i/core/layout/highlight-background" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" -import { ShowDay } from "#i/core/show-day" -import { Pictogram } from "#i/generated/pictogram" -import { ProviderItem } from "#i/providers/item" -import { ProvidersPlaceholderImage } from "#i/providers/placeholder-image" +import { Action } from "#i/core/actions/action.js" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { BoardCard } from "#i/core/layout/board-card.js" +import { HighLightBackground } from "#i/core/layout/highlight-background.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" +import { ShowDay } from "#i/core/show-day.js" +import { Pictogram } from "#i/generated/pictogram.js" +import { ProviderItem } from "#i/providers/item.js" +import { ProvidersPlaceholderImage } from "#i/providers/placeholder-image.js" import { SponsorItem } from "#i/sponsors/item.js" import { SponsorsPlaceholderImage } from "#i/sponsors/placeholder-image.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function RouteOnline() { return ( diff --git a/apps/show/src/routes/_layout._index/route-waiting.tsx b/apps/show/src/routes/_layout._index/route-waiting.tsx index 49343c6f..5090cb75 100644 --- a/apps/show/src/routes/_layout._index/route-waiting.tsx +++ b/apps/show/src/routes/_layout._index/route-waiting.tsx @@ -1,13 +1,13 @@ import { Link } from "@remix-run/react" -import { Action } from "#i/core/actions/action" -import { SocialLink } from "#i/core/actions/social-link" -import { DynamicImage } from "#i/core/data-display/image" -import { HighLightBackground } from "#i/core/layout/highlight-background" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" -import { Pictogram } from "#i/generated/pictogram" +import { Action } from "#i/core/actions/action.js" +import { SocialLink } from "#i/core/actions/social-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { HighLightBackground } from "#i/core/layout/highlight-background.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" +import { Pictogram } from "#i/generated/pictogram.js" import logoLarge from "#i/images/logo-large.svg" export function RouteWaiting() { diff --git a/apps/show/src/routes/_layout._index/route.tsx b/apps/show/src/routes/_layout._index/route.tsx index 8331815c..18644e38 100644 --- a/apps/show/src/routes/_layout._index/route.tsx +++ b/apps/show/src/routes/_layout._index/route.tsx @@ -2,14 +2,14 @@ import type { MetaFunction } from "@remix-run/node" import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { ErrorPage } from "#i/core/data-display/error-page" -import type { RouteHandle } from "#i/core/handles" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import type { RouteHandle } from "#i/core/handles.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import { services } from "#i/core/services.server.js" -import { RouteOnline } from "./route-online" -import { RouteWaiting } from "./route-waiting" +import { RouteOnline } from "./route-online.js" +import { RouteWaiting } from "./route-waiting.js" export const handle: RouteHandle = { hasExpandedPageBackground: true, diff --git a/apps/show/src/routes/_layout.acces/route.tsx b/apps/show/src/routes/_layout.acces/route.tsx index 5233745e..a26ced29 100644 --- a/apps/show/src/routes/_layout.acces/route.tsx +++ b/apps/show/src/routes/_layout.acces/route.tsx @@ -1,15 +1,15 @@ import type { MetaFunction } from "@remix-run/node" import { json } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" -import { SectionCarpool } from "./section-carpool" -import { SectionEcology } from "./section-ecology" -import { SectionInformation } from "./section-information" -import { SectionTitle } from "./section-title" +import { SectionCarpool } from "./section-carpool.js" +import { SectionEcology } from "./section-ecology.js" +import { SectionInformation } from "./section-information.js" +import { SectionTitle } from "./section-title.js" export async function loader() { if (process.env.FEATURE_FLAG_SITE_ONLINE !== "true") { diff --git a/apps/show/src/routes/_layout.acces/section-carpool.tsx b/apps/show/src/routes/_layout.acces/section-carpool.tsx index b20ea250..3c559f2e 100644 --- a/apps/show/src/routes/_layout.acces/section-carpool.tsx +++ b/apps/show/src/routes/_layout.acces/section-carpool.tsx @@ -1,9 +1,9 @@ import { Link } from "@remix-run/react" -import { Action } from "#i/core/actions/action" -import { DynamicImage } from "#i/core/data-display/image" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" +import { Action } from "#i/core/actions/action.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" export function SectionCarpool() { return ( diff --git a/apps/show/src/routes/_layout.acces/section-ecology.tsx b/apps/show/src/routes/_layout.acces/section-ecology.tsx index f2107adb..ca1901fa 100644 --- a/apps/show/src/routes/_layout.acces/section-ecology.tsx +++ b/apps/show/src/routes/_layout.acces/section-ecology.tsx @@ -1,6 +1,6 @@ -import { BoardCard } from "#i/core/layout/board-card" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" +import { BoardCard } from "#i/core/layout/board-card.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" export function SectionEcology() { return ( diff --git a/apps/show/src/routes/_layout.acces/section-information.tsx b/apps/show/src/routes/_layout.acces/section-information.tsx index 0dcd0739..b07ce885 100644 --- a/apps/show/src/routes/_layout.acces/section-information.tsx +++ b/apps/show/src/routes/_layout.acces/section-information.tsx @@ -1,7 +1,7 @@ -import { HighLightBackground } from "#i/core/layout/highlight-background" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" -import { Pictogram } from "#i/generated/pictogram" +import { HighLightBackground } from "#i/core/layout/highlight-background.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" +import { Pictogram } from "#i/generated/pictogram.js" export function SectionInformation() { return ( diff --git a/apps/show/src/routes/_layout.acces/section-title.tsx b/apps/show/src/routes/_layout.acces/section-title.tsx index a5c158de..6961a373 100644 --- a/apps/show/src/routes/_layout.acces/section-title.tsx +++ b/apps/show/src/routes/_layout.acces/section-title.tsx @@ -1,9 +1,9 @@ import { Link } from "@remix-run/react" -import { Action } from "#i/core/actions/action" -import { DynamicImage } from "#i/core/data-display/image" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" +import { Action } from "#i/core/actions/action.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.editions-precedentes.$edition/route.tsx b/apps/show/src/routes/_layout.editions-precedentes.$edition/route.tsx index 3f6b2bb3..4583e610 100644 --- a/apps/show/src/routes/_layout.editions-precedentes.$edition/route.tsx +++ b/apps/show/src/routes/_layout.editions-precedentes.$edition/route.tsx @@ -2,14 +2,14 @@ import { safeParseRouteParam, zu } from "@animeaux/zod-utils" import type { LoaderFunctionArgs, MetaFunction } from "@remix-run/node" import { defer } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import { services } from "#i/core/services.server.js" -import { PreviousEdition } from "#i/previous-editions/previous-edition" +import { PreviousEdition } from "#i/previous-editions/previous-edition.js" -import { SectionPictures } from "./section-pictures" -import { SectionTitle } from "./section-title" +import { SectionPictures } from "./section-pictures.js" +import { SectionTitle } from "./section-title.js" const ParamsSchema = zu.object({ edition: zu.nativeEnum(PreviousEdition), diff --git a/apps/show/src/routes/_layout.editions-precedentes.$edition/section-pictures.tsx b/apps/show/src/routes/_layout.editions-precedentes.$edition/section-pictures.tsx index 9c1c2de8..8098be7b 100644 --- a/apps/show/src/routes/_layout.editions-precedentes.$edition/section-pictures.tsx +++ b/apps/show/src/routes/_layout.editions-precedentes.$edition/section-pictures.tsx @@ -3,20 +3,20 @@ import type { SerializeFrom } from "@remix-run/node" import { Await, Link, useLoaderData, useLocation } from "@remix-run/react" import { Suspense } from "react" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { Tab, Tabs } from "#i/core/controllers/tabs" -import { DynamicImage } from "#i/core/data-display/image" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { Tab, Tabs } from "#i/core/controllers/tabs.js" +import { DynamicImage } from "#i/core/data-display/image.js" import type { ServiceImage } from "#i/core/image/service.server.js" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" -import { ScrollRestorationLocationState } from "#i/core/scroll-restoration" -import { PicturesLocationState } from "#i/previous-editions/pictures-location-state" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" +import { ScrollRestorationLocationState } from "#i/core/scroll-restoration.js" +import { PicturesLocationState } from "#i/previous-editions/pictures-location-state.js" import { PREVIOUS_EDITION_PHOTOGRAPH, SORTED_PREVIOUS_EDITIONS, -} from "#i/previous-editions/previous-edition" +} from "#i/previous-editions/previous-edition.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SectionPictures() { const { pictures, edition } = useLoaderData() diff --git a/apps/show/src/routes/_layout.editions-precedentes.$edition/section-title.tsx b/apps/show/src/routes/_layout.editions-precedentes.$edition/section-title.tsx index d1ba473c..408045bf 100644 --- a/apps/show/src/routes/_layout.editions-precedentes.$edition/section-title.tsx +++ b/apps/show/src/routes/_layout.editions-precedentes.$edition/section-title.tsx @@ -1,6 +1,6 @@ -import { DynamicImage } from "#i/core/data-display/image" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.editions-precedentes._index.tsx b/apps/show/src/routes/_layout.editions-precedentes._index.tsx index d87da81b..f41a1c42 100644 --- a/apps/show/src/routes/_layout.editions-precedentes._index.tsx +++ b/apps/show/src/routes/_layout.editions-precedentes._index.tsx @@ -1,8 +1,8 @@ import { redirect } from "@remix-run/node" import invariant from "tiny-invariant" -import { Routes } from "#i/core/navigation" -import { SORTED_PREVIOUS_EDITIONS } from "#i/previous-editions/previous-edition" +import { Routes } from "#i/core/navigation.js" +import { SORTED_PREVIOUS_EDITIONS } from "#i/previous-editions/previous-edition.js" export async function loader() { const latestEdition = SORTED_PREVIOUS_EDITIONS[0] diff --git a/apps/show/src/routes/_layout.exposants._index/loader.server.ts b/apps/show/src/routes/_layout.exposants._index/loader.server.ts index 0e5c8967..9a3dcbda 100644 --- a/apps/show/src/routes/_layout.exposants._index/loader.server.ts +++ b/apps/show/src/routes/_layout.exposants._index/loader.server.ts @@ -2,9 +2,9 @@ import { ShowExhibitorStatus } from "@animeaux/prisma/server" import type { LoaderFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { notFound } from "#i/core/response.server" +import { notFound } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { ExhibitorSearchParams } from "#i/exhibitors/search-params" +import { ExhibitorSearchParams } from "#i/exhibitors/search-params.js" export async function loader({ request }: LoaderFunctionArgs) { if (process.env.FEATURE_FLAG_SITE_ONLINE !== "true") { diff --git a/apps/show/src/routes/_layout.exposants._index/modal-filters.tsx b/apps/show/src/routes/_layout.exposants._index/modal-filters.tsx index 405e8187..2efe3c34 100644 --- a/apps/show/src/routes/_layout.exposants._index/modal-filters.tsx +++ b/apps/show/src/routes/_layout.exposants._index/modal-filters.tsx @@ -4,22 +4,22 @@ import { useLoaderData } from "@remix-run/react" import { forwardRef, useLayoutEffect, useRef, useState } from "react" import invariant from "tiny-invariant" -import { Action } from "#i/core/actions/action" -import { FormLayout } from "#i/core/layout/form-layout" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" +import { Action } from "#i/core/actions/action.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" import { ACTIVITY_TARGET_ICON, ACTIVITY_TARGET_TRANSLATION, SORTED_ACTIVITY_TARGETS, -} from "#i/exhibitors/activity-target/activity-target" +} from "#i/exhibitors/activity-target/activity-target.js" import { ExhibitorSearchParams, useExhibitorSearchParams, -} from "#i/exhibitors/search-params" -import { Icon } from "#i/generated/icon" +} from "#i/exhibitors/search-params.js" +import { Icon } from "#i/generated/icon.js" -import type { loader } from "./loader.server" -import { SearchParamsForm } from "./search-params-form" +import type { loader } from "./loader.server.js" +import { SearchParamsForm } from "./search-params-form.js" export const ModalFilters = { Root: Dialog.Root, diff --git a/apps/show/src/routes/_layout.exposants._index/route.tsx b/apps/show/src/routes/_layout.exposants._index/route.tsx index 2d17175c..e012648e 100644 --- a/apps/show/src/routes/_layout.exposants._index/route.tsx +++ b/apps/show/src/routes/_layout.exposants._index/route.tsx @@ -1,13 +1,13 @@ import type { MetaFunction } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import type { loader } from "./loader.server.js" -import { SectionList } from "./section-list" -import { SectionTitle } from "./section-title" -import { SectionWaitingHelper } from "./section-waiting-helper" +import { SectionList } from "./section-list.js" +import { SectionTitle } from "./section-title.js" +import { SectionWaitingHelper } from "./section-waiting-helper.js" export { loader } from "./loader.server.js" diff --git a/apps/show/src/routes/_layout.exposants._index/section-list.tsx b/apps/show/src/routes/_layout.exposants._index/section-list.tsx index 6749f7b2..48c090a1 100644 --- a/apps/show/src/routes/_layout.exposants._index/section-list.tsx +++ b/apps/show/src/routes/_layout.exposants._index/section-list.tsx @@ -1,26 +1,26 @@ import { Link, useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions/action" -import { InputActiveFilter } from "#i/core/form-elements/input-active-filter" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" +import { Action } from "#i/core/actions/action.js" +import { InputActiveFilter } from "#i/core/form-elements/input-active-filter.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" import { ACTIVITY_TARGET_ICON, ACTIVITY_TARGET_TRANSLATION, -} from "#i/exhibitors/activity-target/activity-target" -import { ExhibitorItem } from "#i/exhibitors/item" +} from "#i/exhibitors/activity-target/activity-target.js" +import { ExhibitorItem } from "#i/exhibitors/item.js" import { ExhibitorSearchParams, useExhibitorSearchParams, -} from "#i/exhibitors/search-params" -import { Icon } from "#i/generated/icon" -import { Pictogram } from "#i/generated/pictogram" +} from "#i/exhibitors/search-params.js" +import { Icon } from "#i/generated/icon.js" +import { Pictogram } from "#i/generated/pictogram.js" -import type { loader } from "./loader.server" -import { ModalFilters } from "./modal-filters" -import { SearchParamsForm } from "./search-params-form" +import type { loader } from "./loader.server.js" +import { ModalFilters } from "./modal-filters.js" +import { SearchParamsForm } from "./search-params-form.js" export function SectionList() { const { exhibitors } = useLoaderData() diff --git a/apps/show/src/routes/_layout.exposants._index/section-title.tsx b/apps/show/src/routes/_layout.exposants._index/section-title.tsx index 8917a4c9..1d0f84e3 100644 --- a/apps/show/src/routes/_layout.exposants._index/section-title.tsx +++ b/apps/show/src/routes/_layout.exposants._index/section-title.tsx @@ -1,4 +1,4 @@ -import { Section } from "#i/core/layout/section" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.exposants._index/section-waiting-helper.tsx b/apps/show/src/routes/_layout.exposants._index/section-waiting-helper.tsx index 99e82e7a..2d54ab65 100644 --- a/apps/show/src/routes/_layout.exposants._index/section-waiting-helper.tsx +++ b/apps/show/src/routes/_layout.exposants._index/section-waiting-helper.tsx @@ -1,9 +1,9 @@ import { Link } from "@remix-run/react" -import { Action } from "#i/core/actions/action" -import { BoardCard } from "#i/core/layout/board-card" -import { Section } from "#i/core/layout/section" -import { Routes } from "#i/core/navigation" +import { Action } from "#i/core/actions/action.js" +import { BoardCard } from "#i/core/layout/board-card.js" +import { Section } from "#i/core/layout/section.js" +import { Routes } from "#i/core/navigation.js" export function SectionWaitingHelper() { return ( diff --git a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/loader.server.ts b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/loader.server.ts index 27eb0801..4007ed13 100644 --- a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/loader.server.ts +++ b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/loader.server.ts @@ -1,7 +1,7 @@ import { safeParseRouteParam, zu } from "@animeaux/zod-utils" import type { LoaderFunctionArgs } from "@remix-run/node" -import { notFound } from "#i/core/response.server" +import { notFound } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" export async function loader({ params }: LoaderFunctionArgs) { diff --git a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/route.tsx b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/route.tsx index 235a93b4..70167997 100644 --- a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/route.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/route.tsx @@ -1,14 +1,14 @@ import type { MetaFunction } from "@remix-run/react" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionInformation } from "./section-information" -import { SectionTitle } from "./section-title" +import type { loader } from "./loader.server.js" +import { SectionInformation } from "./section-information.js" +import { SectionTitle } from "./section-title.js" -export { loader } from "./loader.server" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-information.tsx b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-information.tsx index 46291867..960fb57c 100644 --- a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-information.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-information.tsx @@ -1,11 +1,11 @@ import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { BoardCard } from "#i/core/layout/board-card" -import { Section } from "#i/core/layout/section" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { BoardCard } from "#i/core/layout/board-card.js" +import { Section } from "#i/core/layout/section.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionInformation() { const { application } = useLoaderData() diff --git a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-title.tsx b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-title.tsx index d19c250b..b9d1b751 100644 --- a/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-title.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature.$applicationId/section-title.tsx @@ -1,4 +1,4 @@ -import { Section } from "#i/core/layout/section" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/action-schema.ts b/apps/show/src/routes/_layout.exposants.candidature._index/action-schema.ts index 6cf3d221..9731c14c 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/action-schema.ts +++ b/apps/show/src/routes/_layout.exposants.candidature._index/action-schema.ts @@ -5,11 +5,11 @@ import invariant from "tiny-invariant" import { Enums } from "#i/core/enums.js" import { ImageLimits } from "#i/core/image/limits.js" -import { ActivityField } from "#i/exhibitors/activity-field/activity-field" -import { DiscoverySource } from "#i/exhibitors/application/discovery-source" -import { LegalStatus } from "#i/exhibitors/application/legal-status" +import { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" +import { DiscoverySource } from "#i/exhibitors/application/discovery-source.js" +import { LegalStatus } from "#i/exhibitors/application/legal-status.js" import { ExhibitorCategory } from "#i/exhibitors/category.js" -import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category" +import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category.js" import type { StandSizeAllowedCategories } from "#i/stand-size/allowed-categories.js" export function createActionSchema( diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/action.server.ts b/apps/show/src/routes/_layout.exposants.candidature._index/action.server.ts index e4bf9fa0..0ccc37f0 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/action.server.ts +++ b/apps/show/src/routes/_layout.exposants.candidature._index/action.server.ts @@ -6,13 +6,13 @@ import { json, redirect } from "@remix-run/node" import { captureException } from "@sentry/remix" import { v4 as uuid } from "uuid" -import { Routes } from "#i/core/navigation" +import { Routes } from "#i/core/navigation.js" import { services } from "#i/core/services.server.js" -import { ServiceApplication } from "#i/exhibitors/application/service.server" -import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category" +import { ServiceApplication } from "#i/exhibitors/application/service.server.js" +import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category.js" -import { createActionSchema } from "./action-schema" -import { getStandSizesData } from "./stand-sizes.server" +import { createActionSchema } from "./action-schema.js" +import { getStandSizesData } from "./stand-sizes.server.js" export async function action({ request }: ActionFunctionArgs) { const standSizes = await getStandSizesData() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-comments.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-comments.tsx index 7e56822a..593c5c84 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-comments.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-comments.tsx @@ -1,13 +1,13 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FieldText } from "#i/core/form-elements/field-text" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { FormLayout } from "#i/core/layout/form-layout" -import { DiscoverySource } from "#i/exhibitors/application/discovery-source" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FieldText } from "#i/core/form-elements/field-text.js" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { DiscoverySource } from "#i/exhibitors/application/discovery-source.js" -import { FieldsetId, useFieldsets } from "./form" +import { FieldsetId, useFieldsets } from "./form.js" export function FieldsetComments() { const { fieldsets } = useFieldsets() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-contact.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-contact.tsx index dbf5242d..13f3fe5c 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-contact.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-contact.tsx @@ -1,9 +1,9 @@ -import { FieldEmail } from "#i/core/form-elements/field-email" -import { FieldPhone } from "#i/core/form-elements/field-phone" -import { FieldText } from "#i/core/form-elements/field-text" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldEmail } from "#i/core/form-elements/field-email.js" +import { FieldPhone } from "#i/core/form-elements/field-phone.js" +import { FieldText } from "#i/core/form-elements/field-text.js" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetId, useFieldsets } from "./form" +import { FieldsetId, useFieldsets } from "./form.js" export function FieldsetContact() { const { fieldsets } = useFieldsets() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-documents.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-documents.tsx index de484572..d9b92e87 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-documents.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-documents.tsx @@ -1,11 +1,11 @@ import { useLoaderData } from "@remix-run/react" -import { FileItem } from "#i/core/data-display/file-item" -import { FieldSwitch } from "#i/core/form-elements/field-switch" -import { FormLayout } from "#i/core/layout/form-layout" +import { FileItem } from "#i/core/data-display/file-item.js" +import { FieldSwitch } from "#i/core/form-elements/field-switch.js" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetId, useFieldsets } from "./form" -import type { loader } from "./loader.server" +import { FieldsetId, useFieldsets } from "./form.js" +import type { loader } from "./loader.server.js" export function FieldsetDocuments() { const { files } = useLoaderData() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-participation.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-participation.tsx index b7690718..b90152cb 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-participation.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-participation.tsx @@ -2,15 +2,15 @@ import { ensureArray } from "@animeaux/core" import type { FieldMetadata } from "@conform-to/react" import { useLoaderData } from "@remix-run/react" -import { FieldTextarea } from "#i/core/form-elements/field-textarea" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" +import { FormLayout } from "#i/core/layout/form-layout.js" import type { ActivityField } from "#i/exhibitors/activity-field/activity-field.js" import type { LegalStatus } from "#i/exhibitors/application/legal-status.js" import { ExhibitorCategory } from "#i/exhibitors/category.js" import { FieldStandSize } from "#i/stand-size/field.js" -import { FieldsetId, useFieldsets } from "./form" -import type { loader } from "./loader.server" +import { FieldsetId, useFieldsets } from "./form.js" +import type { loader } from "./loader.server.js" export function FieldsetParticipation() { const { standSizes } = useLoaderData() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-personal-data.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-personal-data.tsx index f33e86d4..ffadcc38 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-personal-data.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-personal-data.tsx @@ -1,7 +1,7 @@ -import { FieldSwitch } from "#i/core/form-elements/field-switch" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldSwitch } from "#i/core/form-elements/field-switch.js" +import { FormLayout } from "#i/core/layout/form-layout.js" -import { FieldsetId, useFieldsets } from "./form" +import { FieldsetId, useFieldsets } from "./form.js" export function FieldsetPersonalData() { const { fieldsets } = useFieldsets() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-sponsorship.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-sponsorship.tsx index dec61080..6fa97cec 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-sponsorship.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-sponsorship.tsx @@ -1,12 +1,12 @@ import { getCollectionProps } from "@conform-to/react" -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" -import { HelperCard } from "#i/core/layout/helper-card" -import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { HelperCard } from "#i/core/layout/helper-card.js" +import { SponsorshipCategory } from "#i/exhibitors/sponsorship/category.js" -import { FieldsetId, useFieldsets } from "./form" +import { FieldsetId, useFieldsets } from "./form.js" export function FieldsetSponsorship() { return ( diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-structure.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-structure.tsx index c8d6a849..591d15ad 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-structure.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/fieldset-structure.tsx @@ -1,19 +1,19 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FieldNumeric } from "#i/core/form-elements/field-numeric" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FieldNumeric } from "#i/core/form-elements/field-numeric.js" import { FieldSwitch } from "#i/core/form-elements/field-switch.js" -import { FieldText } from "#i/core/form-elements/field-text" +import { FieldText } from "#i/core/form-elements/field-text.js" import { FieldTextarea } from "#i/core/form-elements/field-textarea.js" -import { FieldUrl } from "#i/core/form-elements/field-url" -import { FormLayout } from "#i/core/layout/form-layout" -import { FieldActivityField } from "#i/exhibitors/activity-field/field" -import { FieldActivityTarget } from "#i/exhibitors/activity-target/field" -import { LegalStatus } from "#i/exhibitors/application/legal-status" -import { FieldLogo } from "#i/exhibitors/field-logo" - -import { FieldsetId, useFieldsets } from "./form" +import { FieldUrl } from "#i/core/form-elements/field-url.js" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { FieldActivityField } from "#i/exhibitors/activity-field/field.js" +import { FieldActivityTarget } from "#i/exhibitors/activity-target/field.js" +import { LegalStatus } from "#i/exhibitors/application/legal-status.js" +import { FieldLogo } from "#i/exhibitors/field-logo.js" + +import { FieldsetId, useFieldsets } from "./form.js" export function FieldsetStructure() { const { fieldsets } = useFieldsets() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/form.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/form.tsx index cb41bfec..cf1b4a5f 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/form.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/form.tsx @@ -4,9 +4,9 @@ import { getZodConstraint, parseWithZod } from "@conform-to/zod" import { useActionData, useLoaderData } from "@remix-run/react" import { useMemo } from "react" -import type { action } from "./action.server" -import { createActionSchema } from "./action-schema" -import type { loader } from "./loader.server" +import type { action } from "./action.server.js" +import { createActionSchema } from "./action-schema.js" +import type { loader } from "./loader.server.js" export function useForm() { const { availableStandSizes } = useLoaderData() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/loader.server.ts b/apps/show/src/routes/_layout.exposants.candidature._index/loader.server.ts index fd1d2006..c682981b 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/loader.server.ts +++ b/apps/show/src/routes/_layout.exposants.candidature._index/loader.server.ts @@ -1,10 +1,10 @@ import { json } from "@remix-run/node" import { promiseHash } from "remix-utils/promise" -import { notFound } from "#i/core/response.server" +import { notFound } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" -import { getStandSizesData } from "./stand-sizes.server" +import { getStandSizesData } from "./stand-sizes.server.js" export async function loader() { if (process.env.FEATURE_FLAG_EXHIBITOR_APPLICATION_ONLINE !== "true") { diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/route.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/route.tsx index ebbbe635..d3c96029 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/route.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/route.tsx @@ -1,16 +1,16 @@ import type { MetaFunction } from "@remix-run/react" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" -import type { loader } from "./loader.server" -import { SectionDescription } from "./section-description" -import { SectionForm } from "./section-form" -import { SectionTitle } from "./section-title" +import type { loader } from "./loader.server.js" +import { SectionDescription } from "./section-description.js" +import { SectionForm } from "./section-form.js" +import { SectionTitle } from "./section-title.js" -export { action } from "./action.server" -export { loader } from "./loader.server" +export { action } from "./action.server.js" +export { loader } from "./loader.server.js" export const meta: MetaFunction = ({ data }) => { return createSocialMeta({ diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/section-description.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/section-description.tsx index be98c374..69c3b516 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/section-description.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/section-description.tsx @@ -1,6 +1,6 @@ -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Section } from "#i/core/layout/section" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Section } from "#i/core/layout/section.js" export function SectionDescription() { return ( diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/section-form.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/section-form.tsx index f9f284c4..cdd903d5 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/section-form.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/section-form.tsx @@ -1,17 +1,17 @@ import { getFormProps } from "@conform-to/react" import { Form, useFormAction, useNavigation } from "@remix-run/react" -import { FormLayout } from "#i/core/layout/form-layout" -import { DiscoverySource } from "#i/exhibitors/application/discovery-source" - -import { FieldsetComments } from "./fieldset-comments" -import { FieldsetContact } from "./fieldset-contact" -import { FieldsetDocuments } from "./fieldset-documents" -import { FieldsetParticipation } from "./fieldset-participation" -import { FieldsetPersonalData } from "./fieldset-personal-data" -import { FieldsetSponsorship } from "./fieldset-sponsorship" -import { FieldsetStructure } from "./fieldset-structure" -import { FieldsetId, FieldsetsProvider, useForm } from "./form" +import { FormLayout } from "#i/core/layout/form-layout.js" +import { DiscoverySource } from "#i/exhibitors/application/discovery-source.js" + +import { FieldsetComments } from "./fieldset-comments.js" +import { FieldsetContact } from "./fieldset-contact.js" +import { FieldsetDocuments } from "./fieldset-documents.js" +import { FieldsetParticipation } from "./fieldset-participation.js" +import { FieldsetPersonalData } from "./fieldset-personal-data.js" +import { FieldsetSponsorship } from "./fieldset-sponsorship.js" +import { FieldsetStructure } from "./fieldset-structure.js" +import { FieldsetId, FieldsetsProvider, useForm } from "./form.js" export function SectionForm() { const formAction = useFormAction() diff --git a/apps/show/src/routes/_layout.exposants.candidature._index/section-title.tsx b/apps/show/src/routes/_layout.exposants.candidature._index/section-title.tsx index d19c250b..b9d1b751 100644 --- a/apps/show/src/routes/_layout.exposants.candidature._index/section-title.tsx +++ b/apps/show/src/routes/_layout.exposants.candidature._index/section-title.tsx @@ -1,4 +1,4 @@ -import { Section } from "#i/core/layout/section" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.faq/data.server.ts b/apps/show/src/routes/_layout.faq/data.server.ts index 1b618a6f..8bfffeca 100644 --- a/apps/show/src/routes/_layout.faq/data.server.ts +++ b/apps/show/src/routes/_layout.faq/data.server.ts @@ -1,5 +1,5 @@ -import { Routes } from "#i/core/navigation" -import type { Faq } from "#i/faq/faq" +import { Routes } from "#i/core/navigation.js" +import type { Faq } from "#i/faq/faq.js" export const QUESTIONS: Faq[] = [ { diff --git a/apps/show/src/routes/_layout.faq/route.tsx b/apps/show/src/routes/_layout.faq/route.tsx index 1968e4b6..c9d5bdb0 100644 --- a/apps/show/src/routes/_layout.faq/route.tsx +++ b/apps/show/src/routes/_layout.faq/route.tsx @@ -1,15 +1,15 @@ import type { MetaFunction } from "@remix-run/node" import { json } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" -import { QUESTIONS } from "./data.server" -import { SectionMoreQuestions } from "./section-more-questions" -import { SectionQuestions } from "./section-questions" -import { SectionTitle } from "./section-title" +import { QUESTIONS } from "./data.server.js" +import { SectionMoreQuestions } from "./section-more-questions.js" +import { SectionQuestions } from "./section-questions.js" +import { SectionTitle } from "./section-title.js" export async function loader() { if (process.env.FEATURE_FLAG_SITE_ONLINE !== "true") { diff --git a/apps/show/src/routes/_layout.faq/section-more-questions.tsx b/apps/show/src/routes/_layout.faq/section-more-questions.tsx index 57b7f7a6..f1c56b16 100644 --- a/apps/show/src/routes/_layout.faq/section-more-questions.tsx +++ b/apps/show/src/routes/_layout.faq/section-more-questions.tsx @@ -1,7 +1,7 @@ -import { ProseInlineAction } from "#i/core/actions/prose-inline-action" -import { LazyElement } from "#i/core/layout/lazy-element" -import { LightBoardCard } from "#i/core/layout/light-board-card" -import { Section } from "#i/core/layout/section" +import { ProseInlineAction } from "#i/core/actions/prose-inline-action.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { LightBoardCard } from "#i/core/layout/light-board-card.js" +import { Section } from "#i/core/layout/section.js" export function SectionMoreQuestions() { return ( diff --git a/apps/show/src/routes/_layout.faq/section-questions.tsx b/apps/show/src/routes/_layout.faq/section-questions.tsx index 421c727d..37b96a60 100644 --- a/apps/show/src/routes/_layout.faq/section-questions.tsx +++ b/apps/show/src/routes/_layout.faq/section-questions.tsx @@ -1,9 +1,9 @@ import { useLoaderData } from "@remix-run/react" -import { Section } from "#i/core/layout/section" -import { FaqItem, FaqList } from "#i/faq/item" +import { Section } from "#i/core/layout/section.js" +import { FaqItem, FaqList } from "#i/faq/item.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function SectionQuestions() { const { questions } = useLoaderData() diff --git a/apps/show/src/routes/_layout.faq/section-title.tsx b/apps/show/src/routes/_layout.faq/section-title.tsx index a62a0ccb..8f836967 100644 --- a/apps/show/src/routes/_layout.faq/section-title.tsx +++ b/apps/show/src/routes/_layout.faq/section-title.tsx @@ -1,6 +1,6 @@ -import { DynamicImage } from "#i/core/data-display/image" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.programme.$day/route-params.ts b/apps/show/src/routes/_layout.programme.$day/route-params.ts index edb5b9fd..f339926d 100644 --- a/apps/show/src/routes/_layout.programme.$day/route-params.ts +++ b/apps/show/src/routes/_layout.programme.$day/route-params.ts @@ -1,6 +1,6 @@ import { zu } from "@animeaux/zod-utils" -import { ShowDay } from "#i/core/show-day" +import { ShowDay } from "#i/core/show-day.js" export const routeParamsSchema = zu.object({ day: zu.nativeEnum(ShowDay.Enum), diff --git a/apps/show/src/routes/_layout.programme.$day/route.tsx b/apps/show/src/routes/_layout.programme.$day/route.tsx index 3041beed..9f11e101 100644 --- a/apps/show/src/routes/_layout.programme.$day/route.tsx +++ b/apps/show/src/routes/_layout.programme.$day/route.tsx @@ -5,9 +5,9 @@ import { createSocialMeta } from "#i/core/meta.js" import { getPageTitle } from "#i/core/page-title.js" import type { loader } from "./loader.server.js" -import { SectionEventList } from "./section-event-list" -import { SectionOnStandEvents } from "./section-on-stand-events" -import { SectionTitle } from "./section-title" +import { SectionEventList } from "./section-event-list.js" +import { SectionOnStandEvents } from "./section-on-stand-events.js" +import { SectionTitle } from "./section-title.js" export { loader } from "./loader.server.js" diff --git a/apps/show/src/routes/_layout.programme.$day/section-event-list.tsx b/apps/show/src/routes/_layout.programme.$day/section-event-list.tsx index f34c69b7..3d293f33 100644 --- a/apps/show/src/routes/_layout.programme.$day/section-event-list.tsx +++ b/apps/show/src/routes/_layout.programme.$day/section-event-list.tsx @@ -17,7 +17,7 @@ import { ImageData } from "#i/core/image/data.js" import { Section } from "#i/core/layout/section.js" import { HorizontalSeparator } from "#i/core/layout/separator.js" import { Routes } from "#i/core/navigation.js" -import { ShowDay } from "#i/core/show-day" +import { ShowDay } from "#i/core/show-day.js" import { ACTIVITY_TARGET_ICON, ACTIVITY_TARGET_TRANSLATION, @@ -26,7 +26,7 @@ import { ChipActivityTarget } from "#i/exhibitors/activity-target/chip.js" import { Icon } from "#i/generated/icon.js" import { theme } from "#i/generated/theme.js" -import type { loader } from "./loader.server" +import type { loader } from "./loader.server.js" export function SectionEventList() { const { animations } = useLoaderData() diff --git a/apps/show/src/routes/_layout.programme.$day/section-title.tsx b/apps/show/src/routes/_layout.programme.$day/section-title.tsx index fbc83ff4..d9f59add 100644 --- a/apps/show/src/routes/_layout.programme.$day/section-title.tsx +++ b/apps/show/src/routes/_layout.programme.$day/section-title.tsx @@ -1,4 +1,4 @@ -import { Section } from "#i/core/layout/section" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.programme._index/route.tsx b/apps/show/src/routes/_layout.programme._index/route.tsx index 60729a6f..1a1bf961 100644 --- a/apps/show/src/routes/_layout.programme._index/route.tsx +++ b/apps/show/src/routes/_layout.programme._index/route.tsx @@ -1,15 +1,15 @@ import type { MetaFunction } from "@remix-run/node" import { json, redirect } from "@remix-run/node" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" import { Routes } from "#i/core/navigation.js" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" -import { ShowDay } from "#i/core/show-day" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" +import { ShowDay } from "#i/core/show-day.js" -import { SectionTitle } from "./section-title" -import { SectionWaitingHelper } from "./section-waiting-helper" +import { SectionTitle } from "./section-title.js" +import { SectionWaitingHelper } from "./section-waiting-helper.js" export async function loader() { if (process.env.FEATURE_FLAG_SITE_ONLINE !== "true") { diff --git a/apps/show/src/routes/_layout.programme._index/section-title.tsx b/apps/show/src/routes/_layout.programme._index/section-title.tsx index fbc83ff4..d9f59add 100644 --- a/apps/show/src/routes/_layout.programme._index/section-title.tsx +++ b/apps/show/src/routes/_layout.programme._index/section-title.tsx @@ -1,4 +1,4 @@ -import { Section } from "#i/core/layout/section" +import { Section } from "#i/core/layout/section.js" export function SectionTitle() { return ( diff --git a/apps/show/src/routes/_layout.programme._index/section-waiting-helper.tsx b/apps/show/src/routes/_layout.programme._index/section-waiting-helper.tsx index f2a32a5e..84d9cc30 100644 --- a/apps/show/src/routes/_layout.programme._index/section-waiting-helper.tsx +++ b/apps/show/src/routes/_layout.programme._index/section-waiting-helper.tsx @@ -1,5 +1,5 @@ -import { BoardCard } from "#i/core/layout/board-card" -import { Section } from "#i/core/layout/section" +import { BoardCard } from "#i/core/layout/board-card.js" +import { Section } from "#i/core/layout/section.js" export function SectionWaitingHelper() { return ( diff --git a/apps/show/src/routes/_layout/footer.tsx b/apps/show/src/routes/_layout/footer.tsx index 1043c625..dda1cd56 100644 --- a/apps/show/src/routes/_layout/footer.tsx +++ b/apps/show/src/routes/_layout/footer.tsx @@ -1,15 +1,15 @@ import { Link, useLoaderData } from "@remix-run/react" -import { Action } from "#i/core/actions/action" -import { DynamicImage } from "#i/core/data-display/image" -import { Footer } from "#i/core/layout/footer" -import { LazyElement } from "#i/core/layout/lazy-element" -import { Section } from "#i/core/layout/section" -import { ShowDay } from "#i/core/show-day" +import { Action } from "#i/core/actions/action.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { Footer } from "#i/core/layout/footer.js" +import { LazyElement } from "#i/core/layout/lazy-element.js" +import { Section } from "#i/core/layout/section.js" +import { ShowDay } from "#i/core/show-day.js" import { SponsorItem } from "#i/sponsors/item.js" import { SponsorsPlaceholderImage } from "#i/sponsors/placeholder-image.js" -import type { loader } from "./route" +import type { loader } from "./route.js" export function LayoutFooter() { if (CLIENT_ENV.FEATURE_FLAG_SITE_ONLINE === "true") { diff --git a/apps/show/src/routes/_layout/header.tsx b/apps/show/src/routes/_layout/header.tsx index 0b71a610..9819e0b5 100644 --- a/apps/show/src/routes/_layout/header.tsx +++ b/apps/show/src/routes/_layout/header.tsx @@ -1,8 +1,8 @@ import { useLocation } from "@remix-run/react" -import { Header } from "#i/core/layout/header" -import { Routes } from "#i/core/navigation" -import { ShowDay } from "#i/core/show-day" +import { Header } from "#i/core/layout/header.js" +import { Routes } from "#i/core/navigation.js" +import { ShowDay } from "#i/core/show-day.js" export function LayoutHeader() { const location = useLocation() diff --git a/apps/show/src/routes/_layout/route.tsx b/apps/show/src/routes/_layout/route.tsx index 1287d3cd..9f93cf3a 100644 --- a/apps/show/src/routes/_layout/route.tsx +++ b/apps/show/src/routes/_layout/route.tsx @@ -1,12 +1,12 @@ import { json } from "@remix-run/node" import { Outlet, useMatches } from "@remix-run/react" -import { asRouteHandle } from "#i/core/handles" -import { PageBackground } from "#i/core/layout/page-background" +import { asRouteHandle } from "#i/core/handles.js" +import { PageBackground } from "#i/core/layout/page-background.js" import { services } from "#i/core/services.server.js" -import { LayoutFooter } from "./footer" -import { LayoutHeader } from "./header" +import { LayoutFooter } from "./footer.js" +import { LayoutHeader } from "./header.js" export async function loader() { if ( diff --git a/apps/show/src/routes/api.notification.tsx b/apps/show/src/routes/api.notification.tsx index 89757397..6ed4843e 100644 --- a/apps/show/src/routes/api.notification.tsx +++ b/apps/show/src/routes/api.notification.tsx @@ -2,7 +2,7 @@ import { zu } from "@animeaux/zod-utils" import type { ActionFunctionArgs } from "@remix-run/node" import { json } from "@remix-run/node" -import { badRequest, unauthorized } from "#i/core/response.server" +import { badRequest, unauthorized } from "#i/core/response.server.js" import { services } from "#i/core/services.server.js" export async function action({ request }: ActionFunctionArgs) { diff --git a/apps/show/src/routes/editions-precedentes.$edition.$pictureIndex.tsx b/apps/show/src/routes/editions-precedentes.$edition.$pictureIndex.tsx index 552994cc..d33d8f42 100644 --- a/apps/show/src/routes/editions-precedentes.$edition.$pictureIndex.tsx +++ b/apps/show/src/routes/editions-precedentes.$edition.$pictureIndex.tsx @@ -6,22 +6,22 @@ import { json } from "@remix-run/node" import { Link, useLoaderData, useLocation, useParams } from "@remix-run/react" import { forwardRef } from "react" -import { getErrorTitle } from "#i/core/data-display/error-page" -import { DynamicImage } from "#i/core/data-display/image" -import { useElementSize } from "#i/core/elements" -import type { RouteHandle } from "#i/core/handles" -import { createSocialMeta } from "#i/core/meta" -import { Routes } from "#i/core/navigation" -import { getPageTitle } from "#i/core/page-title" -import { notFound } from "#i/core/response.server" -import { ScrollRestorationLocationState } from "#i/core/scroll-restoration" +import { getErrorTitle } from "#i/core/data-display/error-page.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { useElementSize } from "#i/core/elements.js" +import type { RouteHandle } from "#i/core/handles.js" +import { createSocialMeta } from "#i/core/meta.js" +import { Routes } from "#i/core/navigation.js" +import { getPageTitle } from "#i/core/page-title.js" +import { notFound } from "#i/core/response.server.js" +import { ScrollRestorationLocationState } from "#i/core/scroll-restoration.js" import { services } from "#i/core/services.server.js" -import { Icon } from "#i/generated/icon" -import { PicturesLocationState } from "#i/previous-editions/pictures-location-state" +import { Icon } from "#i/generated/icon.js" +import { PicturesLocationState } from "#i/previous-editions/pictures-location-state.js" import { PREVIOUS_EDITION_PHOTOGRAPH, PreviousEdition, -} from "#i/previous-editions/previous-edition" +} from "#i/previous-editions/previous-edition.js" export const handle: RouteHandle = { htmlBackgroundColor: cn("bg-black"), diff --git a/apps/show/src/sponsors/item.tsx b/apps/show/src/sponsors/item.tsx index ddbbed21..e062ee4c 100644 --- a/apps/show/src/sponsors/item.tsx +++ b/apps/show/src/sponsors/item.tsx @@ -3,7 +3,7 @@ import { Link } from "@remix-run/react" import { forwardRef } from "react" import type { Except } from "type-fest" -import { DynamicImage } from "#i/core/data-display/image" +import { DynamicImage } from "#i/core/data-display/image.js" import { ImageData } from "#i/core/image/data.js" export const SponsorItem = forwardRef< diff --git a/apps/show/src/sponsors/placeholder-image.tsx b/apps/show/src/sponsors/placeholder-image.tsx index fbfba0df..06a07447 100644 --- a/apps/show/src/sponsors/placeholder-image.tsx +++ b/apps/show/src/sponsors/placeholder-image.tsx @@ -1,7 +1,7 @@ import { forwardRef } from "react" import type { Except } from "type-fest" -import { DynamicImage } from "#i/core/data-display/image" +import { DynamicImage } from "#i/core/data-display/image.js" export const SponsorsPlaceholderImage = forwardRef< React.ComponentRef, diff --git a/apps/show/src/stand-size/field.tsx b/apps/show/src/stand-size/field.tsx index 60718b9c..78d2046f 100644 --- a/apps/show/src/stand-size/field.tsx +++ b/apps/show/src/stand-size/field.tsx @@ -2,8 +2,8 @@ import type { FieldMetadata } from "@conform-to/react" import { getCollectionProps } from "@conform-to/react" import invariant from "tiny-invariant" -import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper" -import { FormLayout } from "#i/core/layout/form-layout" +import { FieldErrorHelper } from "#i/core/form-elements/field-error-helper.js" +import { FormLayout } from "#i/core/layout/form-layout.js" export function FieldStandSize({ field, diff --git a/apps/show/tailwind.config.ts b/apps/show/tailwind.config.ts index bd0632c4..08597502 100644 --- a/apps/show/tailwind.config.ts +++ b/apps/show/tailwind.config.ts @@ -1,8 +1,8 @@ import type { Config } from "tailwindcss" -import defaultColors from "tailwindcss/colors" -import defaultTheme from "tailwindcss/defaultTheme" -import plugin from "tailwindcss/plugin" -import type { CSSRuleObject } from "tailwindcss/types/config" +import defaultColors from "tailwindcss/colors.js" +import defaultTheme from "tailwindcss/defaultTheme.js" +import plugin from "tailwindcss/plugin.js" +import type { CSSRuleObject } from "tailwindcss/types/config.js" export const spacing = { "0": "0px", diff --git a/apps/website/scripts/generate-icon-sprite.ts b/apps/website/scripts/generate-icon-sprite.ts index 8dd6bb1a..ae3d1d69 100644 --- a/apps/website/scripts/generate-icon-sprite.ts +++ b/apps/website/scripts/generate-icon-sprite.ts @@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url" import { watch } from "chokidar" import { parse } from "node-html-parser" -import { relativeToCwd, safelyReadFile } from "./shared" +import { relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/website/scripts/generate-theme.ts b/apps/website/scripts/generate-theme.ts index 18b28f85..1bac73e0 100644 --- a/apps/website/scripts/generate-theme.ts +++ b/apps/website/scripts/generate-theme.ts @@ -2,8 +2,8 @@ import { mkdir, writeFile } from "node:fs/promises" import { dirname, resolve } from "node:path" import { fileURLToPath } from "node:url" -import { colors, screens } from "../tailwind.config" -import { relativeToCwd, safelyReadFile } from "./shared" +import { colors, screens } from "../tailwind.config.js" +import { relativeToCwd, safelyReadFile } from "./shared.js" const FILENAME = fileURLToPath(import.meta.url) const DIRNAME = dirname(FILENAME) diff --git a/apps/website/src/animals/item.tsx b/apps/website/src/animals/item.tsx index 0352a051..2d446893 100644 --- a/apps/website/src/animals/item.tsx +++ b/apps/website/src/animals/item.tsx @@ -2,15 +2,15 @@ import { cn, formatAge } from "@animeaux/core" import type { Species } from "@animeaux/prisma" import { Gender } from "@animeaux/prisma" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import { isDefined } from "#i/core/is-defined" -import { toSlug } from "#i/core/slugs" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { isDefined } from "#i/core/is-defined.js" +import { toSlug } from "#i/core/slugs.js" import { GENDER_TRANSLATION, SPECIES_TRANSLATION_STANDALONE, -} from "#i/core/translations" -import { Icon } from "#i/generated/icon" +} from "#i/core/translations.js" +import { Icon } from "#i/generated/icon.js" export function AnimalItem({ isDisabled = false, diff --git a/apps/website/src/animals/screening.ts b/apps/website/src/animals/screening.ts index 2d6db2bf..2c8424a9 100644 --- a/apps/website/src/animals/screening.ts +++ b/apps/website/src/animals/screening.ts @@ -1,6 +1,6 @@ import { Gender, ScreeningResult } from "@animeaux/prisma" -import type { IconProps } from "#i/generated/icon" +import type { IconProps } from "#i/generated/icon.js" export const SCREENING_RESULT_ICON: Record< Exclude, diff --git a/apps/website/src/animals/species.ts b/apps/website/src/animals/species.ts index 9605de5e..b75d09a9 100644 --- a/apps/website/src/animals/species.ts +++ b/apps/website/src/animals/species.ts @@ -1,6 +1,6 @@ import { Species } from "@animeaux/prisma" -import type { IconProps } from "#i/generated/icon" +import type { IconProps } from "#i/generated/icon.js" export const SPECIES_ICON: Record = { [Species.BIRD]: "bird", diff --git a/apps/website/src/blog/data.server.ts b/apps/website/src/blog/data.server.ts index 01504273..2412362e 100644 --- a/apps/website/src/blog/data.server.ts +++ b/apps/website/src/blog/data.server.ts @@ -1,7 +1,7 @@ import orderBy from "lodash.orderby" import { DateTime } from "luxon" -import { MarkdownLink } from "#i/core/data-display/markdown" +import { MarkdownLink } from "#i/core/data-display/markdown.js" export type Article = { id: string diff --git a/apps/website/src/blog/item.tsx b/apps/website/src/blog/item.tsx index 978ed041..e3b1c696 100644 --- a/apps/website/src/blog/item.tsx +++ b/apps/website/src/blog/item.tsx @@ -1,7 +1,7 @@ import { DateTime } from "luxon" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" export function ArticleItem({ article, diff --git a/apps/website/src/core/controllers/paginator.tsx b/apps/website/src/core/controllers/paginator.tsx index b7965505..f4929719 100644 --- a/apps/website/src/core/controllers/paginator.tsx +++ b/apps/website/src/core/controllers/paginator.tsx @@ -2,9 +2,9 @@ import { cn } from "@animeaux/core" import { useSearchParams } from "@remix-run/react" import type { ReactNode } from "react" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { getPage, setPage } from "#i/core/search-params" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { getPage, setPage } from "#i/core/search-params.js" export function Paginator({ pageCount, diff --git a/apps/website/src/core/controllers/searchForm.tsx b/apps/website/src/core/controllers/searchForm.tsx index 34cfd722..743c040d 100644 --- a/apps/website/src/core/controllers/searchForm.tsx +++ b/apps/website/src/core/controllers/searchForm.tsx @@ -3,12 +3,12 @@ import { Species } from "@animeaux/prisma" import orderBy from "lodash.orderby" import { useCallback, useEffect, useState } from "react" -import { BaseLink } from "#i/core/base-link" +import { BaseLink } from "#i/core/base-link.js" import { AGE_TRANSLATION, SPECIES_TRANSLATION_STANDALONE, -} from "#i/core/translations" -import { Icon } from "#i/generated/icon" +} from "#i/core/translations.js" +import { Icon } from "#i/generated/icon.js" const SORTED_SPECIES = orderBy( Object.values(Species), diff --git a/apps/website/src/core/controllers/tabs.tsx b/apps/website/src/core/controllers/tabs.tsx index 42906375..238d59a2 100644 --- a/apps/website/src/core/controllers/tabs.tsx +++ b/apps/website/src/core/controllers/tabs.tsx @@ -1,8 +1,8 @@ import { cn } from "@animeaux/core" import { Transition } from "react-transition-group" -import { useWidth } from "#i/core/hooks" -import { LineShapeHorizontal } from "#i/core/layout/line-shape" +import { useWidth } from "#i/core/hooks.js" +import { LineShapeHorizontal } from "#i/core/layout/line-shape.js" export function Tab({ onSelect, diff --git a/apps/website/src/core/data-display/error-page.tsx b/apps/website/src/core/data-display/error-page.tsx index 2d361b2e..96097f1e 100644 --- a/apps/website/src/core/data-display/error-page.tsx +++ b/apps/website/src/core/data-display/error-page.tsx @@ -1,8 +1,8 @@ import { cn } from "@animeaux/core" import { isRouteErrorResponse, useRouteError } from "@remix-run/react" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" import { HeroSection, HeroSectionAction, @@ -10,8 +10,8 @@ import { HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { errorImages } from "#i/images/error" +} from "#i/core/layout/hero-section.js" +import { errorImages } from "#i/images/error.js" const STATUS_CODE = [404, 500] as const type StatusCode = (typeof STATUS_CODE)[number] diff --git a/apps/website/src/core/data-display/image.tsx b/apps/website/src/core/data-display/image.tsx index 6236b222..09b948f3 100644 --- a/apps/website/src/core/data-display/image.tsx +++ b/apps/website/src/core/data-display/image.tsx @@ -2,10 +2,10 @@ import { cn } from "@animeaux/core" import orderBy from "lodash.orderby" import invariant from "tiny-invariant" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import type { ScreenSize } from "#i/generated/theme" -import { theme } from "#i/generated/theme" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import type { ScreenSize } from "#i/generated/theme.js" +import { theme } from "#i/generated/theme.js" // Ordered by decreasing size. const IMAGE_SIZES = ["2048", "1536", "1024", "512", "256", "128"] as const diff --git a/apps/website/src/core/data-display/markdown.tsx b/apps/website/src/core/data-display/markdown.tsx index 76960f6d..f72aac42 100644 --- a/apps/website/src/core/data-display/markdown.tsx +++ b/apps/website/src/core/data-display/markdown.tsx @@ -5,10 +5,10 @@ import breaks from "remark-breaks" import gfm from "remark-gfm" import invariant from "tiny-invariant" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import { LineShapeVertical } from "#i/core/layout/line-shape" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { LineShapeVertical } from "#i/core/layout/line-shape.js" const REMARK_PLUGINS: ReactMarkdownOptions["remarkPlugins"] = [ // Allow line breaks in paragraphs. diff --git a/apps/website/src/core/data-display/options.tsx b/apps/website/src/core/data-display/options.tsx index 6e985f7c..0dbd675c 100644 --- a/apps/website/src/core/data-display/options.tsx +++ b/apps/website/src/core/data-display/options.tsx @@ -1,6 +1,6 @@ import { cn } from "@animeaux/core" -import { Icon } from "#i/generated/icon" +import { Icon } from "#i/generated/icon.js" export function OptionList({ children }: { children: React.ReactNode }) { return ( diff --git a/apps/website/src/core/data-display/timeline.tsx b/apps/website/src/core/data-display/timeline.tsx index 1f8b13d1..dec3d393 100644 --- a/apps/website/src/core/data-display/timeline.tsx +++ b/apps/website/src/core/data-display/timeline.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export function Timeline({ children }: { children: React.ReactNode }) { return
    {children}
diff --git a/apps/website/src/core/focus-trap.ts b/apps/website/src/core/focus-trap.ts index 02a46c31..a904d808 100644 --- a/apps/website/src/core/focus-trap.ts +++ b/apps/website/src/core/focus-trap.ts @@ -1,7 +1,7 @@ import { createFocusTrap } from "focus-trap" import { useEffect, useRef } from "react" -import { usePreviousValue } from "#i/core/hooks" +import { usePreviousValue } from "#i/core/hooks.js" const FOCUS_TRAP_IGNORE_ATTRIBUTE = "data-focus-trap-ignore" diff --git a/apps/website/src/core/layout/footer.tsx b/apps/website/src/core/layout/footer.tsx index b0b385e5..d39ba8c0 100644 --- a/apps/website/src/core/layout/footer.tsx +++ b/apps/website/src/core/layout/footer.tsx @@ -1,12 +1,12 @@ import { cn } from "@animeaux/core" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { LineShapeHorizontal } from "#i/core/layout/line-shape" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { LineShapeHorizontal } from "#i/core/layout/line-shape.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" import largeLogo from "#i/images/large-logo.svg" -import { SubscriptionForm } from "#i/routes/resources.subscribe/input" +import { SubscriptionForm } from "#i/routes/resources.subscribe/input.js" export function Footer() { return ( diff --git a/apps/website/src/core/layout/header.tsx b/apps/website/src/core/layout/header.tsx index 66f7ebd4..54959f5c 100644 --- a/apps/website/src/core/layout/header.tsx +++ b/apps/website/src/core/layout/header.tsx @@ -1,7 +1,7 @@ import { DateTime } from "luxon" -import { LargeNav } from "#i/core/layout/navigation/large-nav" -import { SmallNav } from "#i/core/layout/navigation/small-nav" +import { LargeNav } from "#i/core/layout/navigation/large-nav.js" +import { SmallNav } from "#i/core/layout/navigation/small-nav.js" const SHOW_CLOSING_TIME = DateTime.fromISO("2024-06-09T18:00:00.000+02:00") diff --git a/apps/website/src/core/layout/hero-section.tsx b/apps/website/src/core/layout/hero-section.tsx index 16c56749..c15cb1a3 100644 --- a/apps/website/src/core/layout/hero-section.tsx +++ b/apps/website/src/core/layout/hero-section.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" -import type { StaticImageProps } from "#i/core/data-display/image" -import { StaticImage } from "#i/core/data-display/image" +import type { StaticImageProps } from "#i/core/data-display/image.js" +import { StaticImage } from "#i/core/data-display/image.js" export function HeroSection({ isReversed = false, diff --git a/apps/website/src/core/layout/navigation/large-nav.tsx b/apps/website/src/core/layout/navigation/large-nav.tsx index 4ae74ac1..d946d945 100644 --- a/apps/website/src/core/layout/navigation/large-nav.tsx +++ b/apps/website/src/core/layout/navigation/large-nav.tsx @@ -3,23 +3,26 @@ import { useLocation } from "@remix-run/react" import { forwardRef, useEffect, useRef, useState } from "react" import { Transition } from "react-transition-group" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { getFocusTrapIgnoreAttribute, useFocusTrap } from "#i/core/focus-trap" -import { useWidth } from "#i/core/hooks" -import { LineShapeHorizontal } from "#i/core/layout/line-shape" -import type { NavGroup } from "#i/core/layout/navigation/shared" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { + getFocusTrapIgnoreAttribute, + useFocusTrap, +} from "#i/core/focus-trap.js" +import { useWidth } from "#i/core/hooks.js" +import { LineShapeHorizontal } from "#i/core/layout/line-shape.js" +import type { NavGroup } from "#i/core/layout/navigation/shared.js" import { handleEscape, navLinkClassName, -} from "#i/core/layout/navigation/shared" -import { ShowBanner } from "#i/core/layout/navigation/show-banner" -import { SocialLinks } from "#i/core/layout/navigation/social-links" -import { SubNavAct } from "#i/core/layout/navigation/sub-nav-act" -import { SubNavAdopt } from "#i/core/layout/navigation/sub-nav-adopt" -import { SubNavDiscover } from "#i/core/layout/navigation/sub-nav-discover" -import { SubNavWarn } from "#i/core/layout/navigation/sub-nav-warn" -import { useScrollLock } from "#i/core/scroll-lock" +} from "#i/core/layout/navigation/shared.js" +import { ShowBanner } from "#i/core/layout/navigation/show-banner.js" +import { SocialLinks } from "#i/core/layout/navigation/social-links.js" +import { SubNavAct } from "#i/core/layout/navigation/sub-nav-act.js" +import { SubNavAdopt } from "#i/core/layout/navigation/sub-nav-adopt.js" +import { SubNavDiscover } from "#i/core/layout/navigation/sub-nav-discover.js" +import { SubNavWarn } from "#i/core/layout/navigation/sub-nav-warn.js" +import { useScrollLock } from "#i/core/scroll-lock.js" import nameAndLogo from "#i/images/name-and-logo.svg" type State = NavGroup | null diff --git a/apps/website/src/core/layout/navigation/shared.tsx b/apps/website/src/core/layout/navigation/shared.tsx index c53d4ecb..25d04123 100644 --- a/apps/website/src/core/layout/navigation/shared.tsx +++ b/apps/website/src/core/layout/navigation/shared.tsx @@ -2,10 +2,10 @@ import { cn } from "@animeaux/core" import type { Location } from "history" import { forwardRef } from "react" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export type NavGroup = "act" | "adopt" | "discover" | "warn" diff --git a/apps/website/src/core/layout/navigation/show-banner.tsx b/apps/website/src/core/layout/navigation/show-banner.tsx index 3a1737c5..c13b4edd 100644 --- a/apps/website/src/core/layout/navigation/show-banner.tsx +++ b/apps/website/src/core/layout/navigation/show-banner.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" -import { BaseLink } from "#i/core/base-link" -import { Icon } from "#i/generated/icon" +import { BaseLink } from "#i/core/base-link.js" +import { Icon } from "#i/generated/icon.js" export function ShowBanner({ className }: { className?: string }) { return ( diff --git a/apps/website/src/core/layout/navigation/small-nav.tsx b/apps/website/src/core/layout/navigation/small-nav.tsx index 0792ed51..d83f81e5 100644 --- a/apps/website/src/core/layout/navigation/small-nav.tsx +++ b/apps/website/src/core/layout/navigation/small-nav.tsx @@ -4,21 +4,21 @@ import { useEffect, useRef, useState } from "react" import { Transition } from "react-transition-group" import invariant from "tiny-invariant" -import { BaseLink } from "#i/core/base-link" -import { useFocusTrap } from "#i/core/focus-trap" -import type { NavGroup } from "#i/core/layout/navigation/shared" +import { BaseLink } from "#i/core/base-link.js" +import { useFocusTrap } from "#i/core/focus-trap.js" +import type { NavGroup } from "#i/core/layout/navigation/shared.js" import { handleEscape, navLinkClassName, -} from "#i/core/layout/navigation/shared" -import { ShowBanner } from "#i/core/layout/navigation/show-banner" -import { SocialLinks } from "#i/core/layout/navigation/social-links" -import { SubNavAct } from "#i/core/layout/navigation/sub-nav-act" -import { SubNavAdopt } from "#i/core/layout/navigation/sub-nav-adopt" -import { SubNavDiscover } from "#i/core/layout/navigation/sub-nav-discover" -import { SubNavWarn } from "#i/core/layout/navigation/sub-nav-warn" -import { useScrollLock } from "#i/core/scroll-lock" -import { Icon } from "#i/generated/icon" +} from "#i/core/layout/navigation/shared.js" +import { ShowBanner } from "#i/core/layout/navigation/show-banner.js" +import { SocialLinks } from "#i/core/layout/navigation/social-links.js" +import { SubNavAct } from "#i/core/layout/navigation/sub-nav-act.js" +import { SubNavAdopt } from "#i/core/layout/navigation/sub-nav-adopt.js" +import { SubNavDiscover } from "#i/core/layout/navigation/sub-nav-discover.js" +import { SubNavWarn } from "#i/core/layout/navigation/sub-nav-warn.js" +import { useScrollLock } from "#i/core/scroll-lock.js" +import { Icon } from "#i/generated/icon.js" import logo from "#i/images/logo.svg" import nameAndLogo from "#i/images/name-and-logo.svg" diff --git a/apps/website/src/core/layout/navigation/social-links.tsx b/apps/website/src/core/layout/navigation/social-links.tsx index 5745318a..dca7f988 100644 --- a/apps/website/src/core/layout/navigation/social-links.tsx +++ b/apps/website/src/core/layout/navigation/social-links.tsx @@ -1,9 +1,9 @@ import { cn } from "@animeaux/core" -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export function SocialLinks({ className }: { className?: string }) { return ( diff --git a/apps/website/src/core/layout/navigation/sub-nav-act.tsx b/apps/website/src/core/layout/navigation/sub-nav-act.tsx index e7564590..8c9d3eee 100644 --- a/apps/website/src/core/layout/navigation/sub-nav-act.tsx +++ b/apps/website/src/core/layout/navigation/sub-nav-act.tsx @@ -1,5 +1,5 @@ -import type { SubNavComponent } from "#i/core/layout/navigation/shared" -import { SubNavItem } from "#i/core/layout/navigation/shared" +import type { SubNavComponent } from "#i/core/layout/navigation/shared.js" +import { SubNavItem } from "#i/core/layout/navigation/shared.js" export const SubNavAct: SubNavComponent = () => { return ( diff --git a/apps/website/src/core/layout/navigation/sub-nav-adopt.tsx b/apps/website/src/core/layout/navigation/sub-nav-adopt.tsx index 0890c063..209f5b5e 100644 --- a/apps/website/src/core/layout/navigation/sub-nav-adopt.tsx +++ b/apps/website/src/core/layout/navigation/sub-nav-adopt.tsx @@ -1,13 +1,13 @@ import { cn } from "@animeaux/core" import { Species } from "@animeaux/prisma" -import { SPECIES_ICON } from "#i/animals/species" +import { SPECIES_ICON } from "#i/animals/species.js" import { LineShapeHorizontal, LineShapeVertical, -} from "#i/core/layout/line-shape" -import type { SubNavComponent } from "#i/core/layout/navigation/shared" -import { SubNavItem } from "#i/core/layout/navigation/shared" +} from "#i/core/layout/line-shape.js" +import type { SubNavComponent } from "#i/core/layout/navigation/shared.js" +import { SubNavItem } from "#i/core/layout/navigation/shared.js" export const SubNavAdopt: SubNavComponent = () => { return ( diff --git a/apps/website/src/core/layout/navigation/sub-nav-discover.tsx b/apps/website/src/core/layout/navigation/sub-nav-discover.tsx index a31c9f77..50c8556f 100644 --- a/apps/website/src/core/layout/navigation/sub-nav-discover.tsx +++ b/apps/website/src/core/layout/navigation/sub-nav-discover.tsx @@ -1,5 +1,5 @@ -import type { SubNavComponent } from "#i/core/layout/navigation/shared" -import { SubNavItem } from "#i/core/layout/navigation/shared" +import type { SubNavComponent } from "#i/core/layout/navigation/shared.js" +import { SubNavItem } from "#i/core/layout/navigation/shared.js" export const SubNavDiscover: SubNavComponent = () => { return ( diff --git a/apps/website/src/core/layout/navigation/sub-nav-warn.tsx b/apps/website/src/core/layout/navigation/sub-nav-warn.tsx index 015107b6..8417193e 100644 --- a/apps/website/src/core/layout/navigation/sub-nav-warn.tsx +++ b/apps/website/src/core/layout/navigation/sub-nav-warn.tsx @@ -1,5 +1,5 @@ -import type { SubNavComponent } from "#i/core/layout/navigation/shared" -import { SubNavItem } from "#i/core/layout/navigation/shared" +import type { SubNavComponent } from "#i/core/layout/navigation/shared.js" +import { SubNavItem } from "#i/core/layout/navigation/shared.js" export const SubNavWarn: SubNavComponent = () => { return ( diff --git a/apps/website/src/core/layout/related-section.tsx b/apps/website/src/core/layout/related-section.tsx index f12557fc..e48c6b2b 100644 --- a/apps/website/src/core/layout/related-section.tsx +++ b/apps/website/src/core/layout/related-section.tsx @@ -1,7 +1,7 @@ import { cn } from "@animeaux/core" import { Children } from "react" -import { LineShapeHorizontal } from "./line-shape" +import { LineShapeHorizontal } from "#i/core/layout/line-shape.jsx" export function RelatedSection({ children }: { children: React.ReactNode }) { return ( diff --git a/apps/website/src/donation/section.tsx b/apps/website/src/donation/section.tsx index 7c6be9e9..fedf84be 100644 --- a/apps/website/src/donation/section.tsx +++ b/apps/website/src/donation/section.tsx @@ -1,11 +1,11 @@ import { cn } from "@animeaux/core" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" import { bubbleSectionClassNames, BubbleShape, -} from "#i/core/layout/bubble-section" +} from "#i/core/layout/bubble-section.js" export function DonationSection() { return ( diff --git a/apps/website/src/entry.client.tsx b/apps/website/src/entry.client.tsx index 3816bdb7..1ac46aba 100644 --- a/apps/website/src/entry.client.tsx +++ b/apps/website/src/entry.client.tsx @@ -3,7 +3,7 @@ import { startTransition, StrictMode } from "react" import { hydrateRoot } from "react-dom/client" if (process.env.NODE_ENV === "development") { - void import("#i/mocks/mocks.client").then((module) => module.startWorker()) + void import("#i/mocks/mocks.client.js").then((module) => module.startWorker()) } startTransition(() => { diff --git a/apps/website/src/entry.server.tsx b/apps/website/src/entry.server.tsx index 045a19aa..b28ac489 100644 --- a/apps/website/src/entry.server.tsx +++ b/apps/website/src/entry.server.tsx @@ -7,7 +7,7 @@ import { isbot } from "isbot" import type { RenderToPipeableStreamOptions } from "react-dom/server" import { renderToPipeableStream } from "react-dom/server" -import { checkEnv, getClientEnv } from "#i/core/env.server" +import { checkEnv, getClientEnv } from "#i/core/env.server.js" checkEnv() global.CLIENT_ENV = getClientEnv() diff --git a/apps/website/src/events/item.tsx b/apps/website/src/events/item.tsx index ddc3f2ad..ceaaaf7c 100644 --- a/apps/website/src/events/item.tsx +++ b/apps/website/src/events/item.tsx @@ -2,10 +2,10 @@ import { cn, formatDateRange } from "@animeaux/core" import type { Event } from "@animeaux/prisma" import type { SerializeFrom } from "@remix-run/node" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" export function EventItem({ isInlined = false, diff --git a/apps/website/src/images/adopt.tsx b/apps/website/src/images/adopt.tsx index 152e716f..02eb9328 100644 --- a/apps/website/src/images/adopt.tsx +++ b/apps/website/src/images/adopt.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import adopt512 from "#i/images/adopt-512w.png" import adopt1024 from "#i/images/adopt-1024w.png" import adopt1536 from "#i/images/adopt-1536w.png" diff --git a/apps/website/src/images/adoption.tsx b/apps/website/src/images/adoption.tsx index 6b7ae163..bb7ad27c 100644 --- a/apps/website/src/images/adoption.tsx +++ b/apps/website/src/images/adoption.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import adoption512 from "#i/images/adoption-512w.png" import adoption1024 from "#i/images/adoption-1024w.png" diff --git a/apps/website/src/images/agreements.tsx b/apps/website/src/images/agreements.tsx index 7271b056..24b84b49 100644 --- a/apps/website/src/images/agreements.tsx +++ b/apps/website/src/images/agreements.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import agreements512 from "#i/images/agreements-512w.png" import agreements1024 from "#i/images/agreements-1024w.png" import agreements1536 from "#i/images/agreements-1536w.png" diff --git a/apps/website/src/images/donation.tsx b/apps/website/src/images/donation.tsx index dca3aede..945cc4eb 100644 --- a/apps/website/src/images/donation.tsx +++ b/apps/website/src/images/donation.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import donation512 from "#i/images/donation-512w.png" import donation1024 from "#i/images/donation-1024w.png" import donation1536 from "#i/images/donation-1536w.png" diff --git a/apps/website/src/images/engagement.tsx b/apps/website/src/images/engagement.tsx index 9e0a6794..1808a93a 100644 --- a/apps/website/src/images/engagement.tsx +++ b/apps/website/src/images/engagement.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import engagement512 from "#i/images/engagement-512w.png" import engagement1024 from "#i/images/engagement-1024w.png" import engagement1536 from "#i/images/engagement-1536w.png" diff --git a/apps/website/src/images/equipment.tsx b/apps/website/src/images/equipment.tsx index 1a70a504..c6fcfb7f 100644 --- a/apps/website/src/images/equipment.tsx +++ b/apps/website/src/images/equipment.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import equipment512 from "#i/images/equipment-512w.png" import equipment1024 from "#i/images/equipment-1024w.png" import equipment1536 from "#i/images/equipment-1536w.png" diff --git a/apps/website/src/images/error.tsx b/apps/website/src/images/error.tsx index d93fc6f5..d3e153d2 100644 --- a/apps/website/src/images/error.tsx +++ b/apps/website/src/images/error.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import error512 from "#i/images/error-512w.png" import error1024 from "#i/images/error-1024w.png" import error1536 from "#i/images/error-1536w.png" diff --git a/apps/website/src/images/follow-up.tsx b/apps/website/src/images/follow-up.tsx index 3c049bec..ccfc49b7 100644 --- a/apps/website/src/images/follow-up.tsx +++ b/apps/website/src/images/follow-up.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import followUp512 from "#i/images/follow-up-512w.png" import followUp1024 from "#i/images/follow-up-1024w.png" import followUp1536 from "#i/images/follow-up-1536w.png" diff --git a/apps/website/src/images/foster-family-large.tsx b/apps/website/src/images/foster-family-large.tsx index 0094344f..95974ad6 100644 --- a/apps/website/src/images/foster-family-large.tsx +++ b/apps/website/src/images/foster-family-large.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import fosterFamilyLarge512 from "#i/images/foster-family-large-512w.png" import fosterFamilyLarge1024 from "#i/images/foster-family-large-1024w.png" import fosterFamilyLarge1536 from "#i/images/foster-family-large-1536w.png" diff --git a/apps/website/src/images/foster-family-small.tsx b/apps/website/src/images/foster-family-small.tsx index 96952e83..cf3db489 100644 --- a/apps/website/src/images/foster-family-small.tsx +++ b/apps/website/src/images/foster-family-small.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import fosterFamilySmall512 from "#i/images/foster-family-small-512w.png" import fosterFamilySmall1024 from "#i/images/foster-family-small-1024w.png" diff --git a/apps/website/src/images/helloasso.tsx b/apps/website/src/images/helloasso.tsx index bb80de73..236da6be 100644 --- a/apps/website/src/images/helloasso.tsx +++ b/apps/website/src/images/helloasso.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import helloasso512 from "#i/images/helloasso-512w.png" import helloasso1024 from "#i/images/helloasso-1024w.png" import helloasso1536 from "#i/images/helloasso-1536w.png" diff --git a/apps/website/src/images/hero.tsx b/apps/website/src/images/hero.tsx index dde991ef..d81892d7 100644 --- a/apps/website/src/images/hero.tsx +++ b/apps/website/src/images/hero.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import hero512 from "#i/images/hero-512w.png" import hero1024 from "#i/images/hero-1024w.png" import hero1536 from "#i/images/hero-1536w.png" diff --git a/apps/website/src/images/mission-accounting.tsx b/apps/website/src/images/mission-accounting.tsx index d70050e2..89cea243 100644 --- a/apps/website/src/images/mission-accounting.tsx +++ b/apps/website/src/images/mission-accounting.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionAccounting512 from "#i/images/mission-accounting-512w.png" export const missionAccountingImages: ImageDescriptor = { diff --git a/apps/website/src/images/mission-carpool.tsx b/apps/website/src/images/mission-carpool.tsx index 7a9dfd77..de309395 100644 --- a/apps/website/src/images/mission-carpool.tsx +++ b/apps/website/src/images/mission-carpool.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionCarpool512 from "#i/images/mission-carpool-512w.png" export const missionCarpoolImages: ImageDescriptor = { diff --git a/apps/website/src/images/mission-communication.tsx b/apps/website/src/images/mission-communication.tsx index 344d423f..a247b65d 100644 --- a/apps/website/src/images/mission-communication.tsx +++ b/apps/website/src/images/mission-communication.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionCommunication512 from "#i/images/mission-communication-512w.png" export const missionCommunicationImages: ImageDescriptor = { diff --git a/apps/website/src/images/mission-event.tsx b/apps/website/src/images/mission-event.tsx index 24fb73f9..80174f8f 100644 --- a/apps/website/src/images/mission-event.tsx +++ b/apps/website/src/images/mission-event.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionEvent512 from "#i/images/mission-event-512w.png" export const missionEventImages: ImageDescriptor = { diff --git a/apps/website/src/images/mission-field.tsx b/apps/website/src/images/mission-field.tsx index 3a6d5872..f9ea8190 100644 --- a/apps/website/src/images/mission-field.tsx +++ b/apps/website/src/images/mission-field.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionField512 from "#i/images/mission-field-512w.png" export const missionFieldImages: ImageDescriptor = { diff --git a/apps/website/src/images/mission-food-collection.tsx b/apps/website/src/images/mission-food-collection.tsx index ba9ff943..b32825c5 100644 --- a/apps/website/src/images/mission-food-collection.tsx +++ b/apps/website/src/images/mission-food-collection.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionFoodCollection512 from "#i/images/mission-food-collection-512w.png" export const missionFoodCollectionImages: ImageDescriptor = { diff --git a/apps/website/src/images/mission-intervention.tsx b/apps/website/src/images/mission-intervention.tsx index 0cbff19a..f8037f81 100644 --- a/apps/website/src/images/mission-intervention.tsx +++ b/apps/website/src/images/mission-intervention.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import missionIntervention512 from "#i/images/mission-intervention-512w.png" export const missionInterventionImages: ImageDescriptor = { diff --git a/apps/website/src/images/pick-up.tsx b/apps/website/src/images/pick-up.tsx index 44d14606..44db1f7f 100644 --- a/apps/website/src/images/pick-up.tsx +++ b/apps/website/src/images/pick-up.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import pickUp512 from "#i/images/pick-up-512w.png" import pickUp1024 from "#i/images/pick-up-1024w.png" diff --git a/apps/website/src/images/questions.tsx b/apps/website/src/images/questions.tsx index a3652b1a..e1fd3f0a 100644 --- a/apps/website/src/images/questions.tsx +++ b/apps/website/src/images/questions.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import questions512 from "#i/images/questions-512w.png" import questions1024 from "#i/images/questions-1024w.png" import questions1536 from "#i/images/questions-1536w.png" diff --git a/apps/website/src/images/social.tsx b/apps/website/src/images/social.tsx index 438608b2..793ddfa6 100644 --- a/apps/website/src/images/social.tsx +++ b/apps/website/src/images/social.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import socialAdoptionConditions1024 from "#i/images/social-adoption-conditions-1024w.jpg" import socialDefault1024 from "#i/images/social-default-1024w.jpg" import socialDonation1024 from "#i/images/social-donation-1024w.jpg" diff --git a/apps/website/src/images/volunteer.tsx b/apps/website/src/images/volunteer.tsx index e5c6a1ac..68a4d4dd 100644 --- a/apps/website/src/images/volunteer.tsx +++ b/apps/website/src/images/volunteer.tsx @@ -1,4 +1,4 @@ -import type { ImageDescriptor } from "#i/core/data-display/image" +import type { ImageDescriptor } from "#i/core/data-display/image.js" import volunteer512 from "#i/images/volunteer-512w.png" import volunteer1024 from "#i/images/volunteer-1024w.png" import volunteer1536 from "#i/images/volunteer-1536w.png" diff --git a/apps/website/src/mocks/mocks.client.ts b/apps/website/src/mocks/mocks.client.ts index 27fdbd57..354e7851 100644 --- a/apps/website/src/mocks/mocks.client.ts +++ b/apps/website/src/mocks/mocks.client.ts @@ -1,6 +1,6 @@ import { setupWorker } from "msw/browser" -import { cloudinaryHandlers } from "#i/mocks/cloudinary.client" +import { cloudinaryHandlers } from "#i/mocks/cloudinary.client.js" const worker = setupWorker(...cloudinaryHandlers) diff --git a/apps/website/src/root.tsx b/apps/website/src/root.tsx index 133c55ee..c98c83c5 100644 --- a/apps/website/src/root.tsx +++ b/apps/website/src/root.tsx @@ -14,15 +14,15 @@ import { } from "@remix-run/react" import { Settings } from "luxon" -import { ErrorPage } from "#i/core/data-display/error-page" -import { Footer } from "#i/core/layout/footer" -import { Header } from "#i/core/layout/header" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle, pageDescription } from "#i/core/page-title" -import { theme } from "#i/generated/theme" +import { ErrorPage } from "#i/core/data-display/error-page.js" +import { Footer } from "#i/core/layout/footer.js" +import { Header } from "#i/core/layout/header.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle, pageDescription } from "#i/core/page-title.js" +import { theme } from "#i/generated/theme.js" import appleTouchIcon from "#i/images/apple-touch-icon.png" import favicon from "#i/images/favicon.svg" -import { socialImages } from "#i/images/social" +import { socialImages } from "#i/images/social.js" // Display dates in French. Settings.defaultLocale = "fr" diff --git a/apps/website/src/routes/$.tsx b/apps/website/src/routes/$.tsx index 202abb51..d922dbfa 100644 --- a/apps/website/src/routes/$.tsx +++ b/apps/website/src/routes/$.tsx @@ -3,10 +3,10 @@ import { Species } from "@animeaux/prisma" import type { LoaderFunctionArgs, MetaFunction } from "@remix-run/node" import { redirect } from "@remix-run/node" -import { getPath } from "#i/core/controllers/searchForm" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { getPath } from "#i/core/controllers/searchForm.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" export async function loader({ params }: LoaderFunctionArgs) { const redirectTo = REDIRECTIONS[`/${params["*"]}`] diff --git a/apps/website/src/routes/[manifest.json].tsx b/apps/website/src/routes/[manifest.json].tsx index 70b8a0e2..9ba7d908 100644 --- a/apps/website/src/routes/[manifest.json].tsx +++ b/apps/website/src/routes/[manifest.json].tsx @@ -1,8 +1,8 @@ import type { LinksFunction } from "@remix-run/node" import { json } from "@remix-run/node" -import { getPageTitle } from "#i/core/page-title" -import { theme } from "#i/generated/theme" +import { getPageTitle } from "#i/core/page-title.js" +import { theme } from "#i/generated/theme.js" import googleTouchIcon from "#i/images/google-touch-icon.png" // Make sure `google-touch-icon.png` is added to the build assets. diff --git a/apps/website/src/routes/[sitemap.xml].tsx b/apps/website/src/routes/[sitemap.xml].tsx index 81ebbca9..5ef60108 100644 --- a/apps/website/src/routes/[sitemap.xml].tsx +++ b/apps/website/src/routes/[sitemap.xml].tsx @@ -1,7 +1,7 @@ import { Species } from "@animeaux/prisma" import { renderToStaticMarkup } from "react-dom/server" -import { SPECIES_TO_PATH } from "#i/core/controllers/searchForm" +import { SPECIES_TO_PATH } from "#i/core/controllers/searchForm.js" type SitemapAttribute = { key?: React.Key diff --git a/apps/website/src/routes/_index.tsx b/apps/website/src/routes/_index.tsx index 6ee738a7..f397efd8 100644 --- a/apps/website/src/routes/_index.tsx +++ b/apps/website/src/routes/_index.tsx @@ -4,16 +4,16 @@ import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" import { promiseHash } from "remix-utils/promise" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { SearchForm } from "#i/core/controllers/searchForm" -import type { StaticImageProps } from "#i/core/data-display/image" -import { StaticImage } from "#i/core/data-display/image" -import { prisma } from "#i/core/db.server" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { SearchForm } from "#i/core/controllers/searchForm.js" +import type { StaticImageProps } from "#i/core/data-display/image.js" +import { StaticImage } from "#i/core/data-display/image.js" +import { prisma } from "#i/core/db.server.js" import { bubbleSectionClassNames, BubbleShape, -} from "#i/core/layout/bubble-section" +} from "#i/core/layout/bubble-section.js" import { HeroSection, HeroSectionAction, @@ -21,17 +21,17 @@ import { HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { DonationSection } from "#i/donation/section" -import { EventItem } from "#i/events/item" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { adoptionImages } from "#i/images/adoption" -import { fosterFamilyLargeImages } from "#i/images/foster-family-large" -import { fosterFamilySmallImages } from "#i/images/foster-family-small" -import { heroImages } from "#i/images/hero" -import { pickUpImages } from "#i/images/pick-up" -import { volunteerImages } from "#i/images/volunteer" +} from "#i/core/layout/hero-section.js" +import { DonationSection } from "#i/donation/section.js" +import { EventItem } from "#i/events/item.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { adoptionImages } from "#i/images/adoption.js" +import { fosterFamilyLargeImages } from "#i/images/foster-family-large.js" +import { fosterFamilySmallImages } from "#i/images/foster-family-small.js" +import { heroImages } from "#i/images/hero.js" +import { pickUpImages } from "#i/images/pick-up.js" +import { volunteerImages } from "#i/images/volunteer.js" export async function loader() { const { pickUpCount, upcomingEvents } = await promiseHash({ diff --git a/apps/website/src/routes/abandonner-votre-animal.tsx b/apps/website/src/routes/abandonner-votre-animal.tsx index 2a09f203..00d22da8 100644 --- a/apps/website/src/routes/abandonner-votre-animal.tsx +++ b/apps/website/src/routes/abandonner-votre-animal.tsx @@ -1,20 +1,23 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { createCloudinaryUrl, DynamicImage } from "#i/core/data-display/image" +import { + createCloudinaryUrl, + DynamicImage, +} from "#i/core/data-display/image.js" import { ARTICLE_COMPONENTS, Markdown, MarkdownLink, -} from "#i/core/data-display/markdown" +} from "#i/core/data-display/markdown.js" import { RelatedSection, RelatedSectionList, RelatedSectionTitle, -} from "#i/core/layout/related-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { WarnItem } from "#i/warn/item" +} from "#i/core/layout/related-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { WarnItem } from "#i/warn/item.js" const IMAGE_ID = "blog/2bf99fd0-da8b-4326-b7fa-d2a0eaa8ecc6" diff --git a/apps/website/src/routes/adoption.$.tsx b/apps/website/src/routes/adoption.$.tsx index 0eaf4841..43a55faf 100644 --- a/apps/website/src/routes/adoption.$.tsx +++ b/apps/website/src/routes/adoption.$.tsx @@ -8,28 +8,28 @@ import { DateTime } from "luxon" import { promiseHash } from "remix-utils/promise" import invariant from "tiny-invariant" -import { AnimalItem } from "#i/animals/item" -import { ADOPTABLE_ANIMAL_STATUS } from "#i/animals/status" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" +import { AnimalItem } from "#i/animals/item.js" +import { ADOPTABLE_ANIMAL_STATUS } from "#i/animals/status.js" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" import { AGES_TO_PATH, ANIMAL_AGES_BY_SPECIES, SearchForm, SPECIES_TO_PATH, -} from "#i/core/controllers/searchForm" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { prisma } from "#i/core/db.server" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { getPage } from "#i/core/search-params" +} from "#i/core/controllers/searchForm.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { prisma } from "#i/core/db.server.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { getPage } from "#i/core/search-params.js" import { AGE_PLURAL_TRANSLATION, AGE_TRANSLATION, SPECIES_PLURAL_TRANSLATION, SPECIES_TRANSLATION, -} from "#i/core/translations" +} from "#i/core/translations.js" type PageParams = { species?: Species diff --git a/apps/website/src/routes/animal.$slug.tsx b/apps/website/src/routes/animal.$slug.tsx index d8e6e099..98f7d829 100644 --- a/apps/website/src/routes/animal.$slug.tsx +++ b/apps/website/src/routes/animal.$slug.tsx @@ -11,25 +11,28 @@ import { z } from "zod" import { SCREENING_RESULT_ICON, SCREENING_RESULT_TRANSLATION, -} from "#i/animals/screening" -import { SPECIES_ICON } from "#i/animals/species" -import { ADOPTABLE_ANIMAL_STATUS } from "#i/animals/status" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createCloudinaryUrl, DynamicImage } from "#i/core/data-display/image" -import type { MarkdownProps } from "#i/core/data-display/markdown" -import { Markdown } from "#i/core/data-display/markdown" -import { prisma } from "#i/core/db.server" -import { isDefined } from "#i/core/is-defined" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +} from "#i/animals/screening.js" +import { SPECIES_ICON } from "#i/animals/species.js" +import { ADOPTABLE_ANIMAL_STATUS } from "#i/animals/status.js" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { + createCloudinaryUrl, + DynamicImage, +} from "#i/core/data-display/image.js" +import type { MarkdownProps } from "#i/core/data-display/markdown.js" +import { Markdown } from "#i/core/data-display/markdown.js" +import { prisma } from "#i/core/db.server.js" +import { isDefined } from "#i/core/is-defined.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" import { GENDER_TRANSLATION, SPECIES_TRANSLATION_STANDALONE, -} from "#i/core/translations" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" +} from "#i/core/translations.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" const UuidSchema = z.string().uuid() diff --git a/apps/website/src/routes/articles-de-presse.tsx b/apps/website/src/routes/articles-de-presse.tsx index b54808b9..7dee26f1 100644 --- a/apps/website/src/routes/articles-de-presse.tsx +++ b/apps/website/src/routes/articles-de-presse.tsx @@ -5,11 +5,11 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import { prisma } from "#i/core/db.server" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import { prisma } from "#i/core/db.server.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" export async function loader() { const pressArticles = await prisma.pressArticle.findMany({ diff --git a/apps/website/src/routes/blog.$slug.tsx b/apps/website/src/routes/blog.$slug.tsx index 5026f323..bca25ae6 100644 --- a/apps/website/src/routes/blog.$slug.tsx +++ b/apps/website/src/routes/blog.$slug.tsx @@ -4,19 +4,22 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { DateTime } from "luxon" -import { articles } from "#i/blog/data.server" -import { ArticleItem } from "#i/blog/item" -import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page" -import { createCloudinaryUrl, DynamicImage } from "#i/core/data-display/image" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" +import { articles } from "#i/blog/data.server.js" +import { ArticleItem } from "#i/blog/item.js" +import { ErrorPage, getErrorTitle } from "#i/core/data-display/error-page.js" +import { + createCloudinaryUrl, + DynamicImage, +} from "#i/core/data-display/image.js" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" import { RelatedSection, RelatedSectionList, RelatedSectionTitle, -} from "#i/core/layout/related-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { DonationSection } from "#i/donation/section" +} from "#i/core/layout/related-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { DonationSection } from "#i/donation/section.js" const OTHER_ARTICLE_COUNT = 3 diff --git a/apps/website/src/routes/blog._index.tsx b/apps/website/src/routes/blog._index.tsx index 85db1f27..a170d1a9 100644 --- a/apps/website/src/routes/blog._index.tsx +++ b/apps/website/src/routes/blog._index.tsx @@ -3,10 +3,10 @@ import type { MetaFunction } from "@remix-run/node" import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" -import { articles } from "#i/blog/data.server" -import { ArticleItem } from "#i/blog/item" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { articles } from "#i/blog/data.server.js" +import { ArticleItem } from "#i/blog/item.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" export async function loader() { return json({ articles }) diff --git a/apps/website/src/routes/conditions-d-adoption.tsx b/apps/website/src/routes/conditions-d-adoption.tsx index 7062a64c..c034dcda 100644 --- a/apps/website/src/routes/conditions-d-adoption.tsx +++ b/apps/website/src/routes/conditions-d-adoption.tsx @@ -3,10 +3,10 @@ import { Species } from "@animeaux/prisma" import type { MetaFunction } from "@remix-run/node" import { useState } from "react" -import { SPECIES_ICON } from "#i/animals/species" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Tab } from "#i/core/controllers/tabs" +import { SPECIES_ICON } from "#i/animals/species.js" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Tab } from "#i/core/controllers/tabs.js" import { OptionCard, OptionDescription, @@ -15,25 +15,25 @@ import { OptionList, OptionPrice, OptionTitle, -} from "#i/core/data-display/options" -import { Timeline, TimelineItem } from "#i/core/data-display/timeline" +} from "#i/core/data-display/options.js" +import { Timeline, TimelineItem } from "#i/core/data-display/timeline.js" import { bubbleSectionClassNames, BubbleShape, -} from "#i/core/layout/bubble-section" +} from "#i/core/layout/bubble-section.js" import { HeroSection, HeroSectionAside, HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { Icon } from "#i/generated/icon" -import { adoptImages } from "#i/images/adopt" -import { questionsImages } from "#i/images/questions" -import { socialImages } from "#i/images/social" +} from "#i/core/layout/hero-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Icon } from "#i/generated/icon.js" +import { adoptImages } from "#i/images/adopt.js" +import { questionsImages } from "#i/images/questions.js" +import { socialImages } from "#i/images/social.js" export const meta: MetaFunction = () => { return createSocialMeta({ diff --git a/apps/website/src/routes/conventions-de-sterilisation.tsx b/apps/website/src/routes/conventions-de-sterilisation.tsx index e9600226..dcd63202 100644 --- a/apps/website/src/routes/conventions-de-sterilisation.tsx +++ b/apps/website/src/routes/conventions-de-sterilisation.tsx @@ -3,24 +3,24 @@ import type { MetaFunction } from "@remix-run/node" import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" import { bubbleSectionClassNames, BubbleShape, -} from "#i/core/layout/bubble-section" +} from "#i/core/layout/bubble-section.js" import { HeroSection, HeroSectionAside, HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { agreementsImages } from "#i/images/agreements" -import { citiesWithAgreements } from "#i/sterilisation-agreements/data.server" +} from "#i/core/layout/hero-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { agreementsImages } from "#i/images/agreements.js" +import { citiesWithAgreements } from "#i/sterilisation-agreements/data.server.js" export async function loader() { return json({ citiesWithAgreements }) diff --git a/apps/website/src/routes/devenir-benevole.tsx b/apps/website/src/routes/devenir-benevole.tsx index ad0f809e..dc38378b 100644 --- a/apps/website/src/routes/devenir-benevole.tsx +++ b/apps/website/src/routes/devenir-benevole.tsx @@ -1,35 +1,35 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import type { StaticImageProps } from "#i/core/data-display/image" -import { StaticImage } from "#i/core/data-display/image" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import type { StaticImageProps } from "#i/core/data-display/image.js" +import { StaticImage } from "#i/core/data-display/image.js" import { OptionCard, OptionDescription, OptionList, OptionPrice, OptionTitle, -} from "#i/core/data-display/options" +} from "#i/core/data-display/options.js" import { HeroSection, HeroSectionAside, HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { missionAccountingImages } from "#i/images/mission-accounting" -import { missionCarpoolImages } from "#i/images/mission-carpool" -import { missionCommunicationImages } from "#i/images/mission-communication" -import { missionEventImages } from "#i/images/mission-event" -import { missionFieldImages } from "#i/images/mission-field" -import { missionFoodCollectionImages } from "#i/images/mission-food-collection" -import { missionInterventionImages } from "#i/images/mission-intervention" -import { socialImages } from "#i/images/social" -import { volunteerImages } from "#i/images/volunteer" +} from "#i/core/layout/hero-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { missionAccountingImages } from "#i/images/mission-accounting.js" +import { missionCarpoolImages } from "#i/images/mission-carpool.js" +import { missionCommunicationImages } from "#i/images/mission-communication.js" +import { missionEventImages } from "#i/images/mission-event.js" +import { missionFieldImages } from "#i/images/mission-field.js" +import { missionFoodCollectionImages } from "#i/images/mission-food-collection.js" +import { missionInterventionImages } from "#i/images/mission-intervention.js" +import { socialImages } from "#i/images/social.js" +import { volunteerImages } from "#i/images/volunteer.js" export const meta: MetaFunction = () => { return createSocialMeta({ diff --git a/apps/website/src/routes/devenir-famille-d-accueil.tsx b/apps/website/src/routes/devenir-famille-d-accueil.tsx index de992eea..da1f270b 100644 --- a/apps/website/src/routes/devenir-famille-d-accueil.tsx +++ b/apps/website/src/routes/devenir-famille-d-accueil.tsx @@ -1,23 +1,23 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Timeline, TimelineItem } from "#i/core/data-display/timeline" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Timeline, TimelineItem } from "#i/core/data-display/timeline.js" import { HeroSection, HeroSectionAside, HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { engagementImages } from "#i/images/engagement" -import { equipmentImages } from "#i/images/equipment" -import { followUpImages } from "#i/images/follow-up" -import { fosterFamilyLargeImages } from "#i/images/foster-family-large" -import { socialImages } from "#i/images/social" +} from "#i/core/layout/hero-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { engagementImages } from "#i/images/engagement.js" +import { equipmentImages } from "#i/images/equipment.js" +import { followUpImages } from "#i/images/follow-up.js" +import { fosterFamilyLargeImages } from "#i/images/foster-family-large.js" +import { socialImages } from "#i/images/social.js" export const meta: MetaFunction = () => { return createSocialMeta({ diff --git a/apps/website/src/routes/evenements._index.tsx b/apps/website/src/routes/evenements._index.tsx index d2735c8e..bb4c5657 100644 --- a/apps/website/src/routes/evenements._index.tsx +++ b/apps/website/src/routes/evenements._index.tsx @@ -5,17 +5,17 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { prisma } from "#i/core/db.server" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { prisma } from "#i/core/db.server.js" import { RelatedSection, RelatedSectionList, RelatedSectionTitle, -} from "#i/core/layout/related-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { EventItem } from "#i/events/item" +} from "#i/core/layout/related-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { EventItem } from "#i/events/item.js" const eventSelect = { id: true, diff --git a/apps/website/src/routes/evenements.passes.tsx b/apps/website/src/routes/evenements.passes.tsx index 2a580e6e..a05dc828 100644 --- a/apps/website/src/routes/evenements.passes.tsx +++ b/apps/website/src/routes/evenements.passes.tsx @@ -5,14 +5,14 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" -import { Paginator } from "#i/core/controllers/paginator" -import { prisma } from "#i/core/db.server" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { getPage } from "#i/core/search-params" -import { EventItem } from "#i/events/item" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { prisma } from "#i/core/db.server.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { getPage } from "#i/core/search-params.js" +import { EventItem } from "#i/events/item.js" // Multiple of 2 and 3 to be nicely displayed. const EVENT_COUNT_PER_PAGE = 18 diff --git a/apps/website/src/routes/faire-un-don.tsx b/apps/website/src/routes/faire-un-don.tsx index 5303a84a..bed915c5 100644 --- a/apps/website/src/routes/faire-un-don.tsx +++ b/apps/website/src/routes/faire-un-don.tsx @@ -1,12 +1,12 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" import { bubbleSectionClassNames, BubbleShape, -} from "#i/core/layout/bubble-section" +} from "#i/core/layout/bubble-section.js" import { HeroSection, HeroSectionAction, @@ -14,15 +14,15 @@ import { HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { donationImages } from "#i/images/donation" -import { helloassoImages } from "#i/images/helloasso" +} from "#i/core/layout/hero-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { donationImages } from "#i/images/donation.js" +import { helloassoImages } from "#i/images/helloasso.js" import paypalImage from "#i/images/paypal.png" -import { socialImages } from "#i/images/social" +import { socialImages } from "#i/images/social.js" import teamingImage from "#i/images/teaming.png" export const meta: MetaFunction = () => { diff --git a/apps/website/src/routes/faq.tsx b/apps/website/src/routes/faq.tsx index f663ca5e..0d38f2e4 100644 --- a/apps/website/src/routes/faq.tsx +++ b/apps/website/src/routes/faq.tsx @@ -1,21 +1,21 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { actionClassNames } from "#i/core/actions" -import { BaseLink } from "#i/core/base-link" +import { actionClassNames } from "#i/core/actions.js" +import { BaseLink } from "#i/core/base-link.js" import { HeroSection, HeroSectionAside, HeroSectionImage, HeroSectionParagraph, HeroSectionTitle, -} from "#i/core/layout/hero-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import type { IconProps } from "#i/generated/icon" -import { Icon } from "#i/generated/icon" -import { questionsImages } from "#i/images/questions" -import { socialImages } from "#i/images/social" +} from "#i/core/layout/hero-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import type { IconProps } from "#i/generated/icon.js" +import { Icon } from "#i/generated/icon.js" +import { questionsImages } from "#i/images/questions.js" +import { socialImages } from "#i/images/social.js" export const meta: MetaFunction = () => { return createSocialMeta({ diff --git a/apps/website/src/routes/healthcheck.tsx b/apps/website/src/routes/healthcheck.tsx index 275f231b..0d585386 100644 --- a/apps/website/src/routes/healthcheck.tsx +++ b/apps/website/src/routes/healthcheck.tsx @@ -1,4 +1,4 @@ -import { prisma } from "#i/core/db.server" +import { prisma } from "#i/core/db.server.js" // Learn more: https://fly.io/docs/reference/configuration/#services-http_checks export async function loader() { diff --git a/apps/website/src/routes/informer-d-un-acte-de-maltraitance.tsx b/apps/website/src/routes/informer-d-un-acte-de-maltraitance.tsx index d3f9690a..1f177a43 100644 --- a/apps/website/src/routes/informer-d-un-acte-de-maltraitance.tsx +++ b/apps/website/src/routes/informer-d-un-acte-de-maltraitance.tsx @@ -1,20 +1,23 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { createCloudinaryUrl, DynamicImage } from "#i/core/data-display/image" +import { + createCloudinaryUrl, + DynamicImage, +} from "#i/core/data-display/image.js" import { ARTICLE_COMPONENTS, Markdown, MarkdownLink, -} from "#i/core/data-display/markdown" +} from "#i/core/data-display/markdown.js" import { RelatedSection, RelatedSectionList, RelatedSectionTitle, -} from "#i/core/layout/related-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { WarnItem } from "#i/warn/item" +} from "#i/core/layout/related-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { WarnItem } from "#i/warn/item.js" const IMAGE_ID = "blog/bd9dec91-45da-4064-9053-536b5a9b61c3" diff --git a/apps/website/src/routes/mentions-legales.tsx b/apps/website/src/routes/mentions-legales.tsx index 69beeb91..3a16700d 100644 --- a/apps/website/src/routes/mentions-legales.tsx +++ b/apps/website/src/routes/mentions-legales.tsx @@ -1,9 +1,9 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" +import { ARTICLE_COMPONENTS, Markdown } from "#i/core/data-display/markdown.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" export const meta: MetaFunction = () => { return createSocialMeta({ title: getPageTitle("Mentions légales") }) diff --git a/apps/website/src/routes/nommez-votre-animal.tsx b/apps/website/src/routes/nommez-votre-animal.tsx index 75400892..d12fbf08 100644 --- a/apps/website/src/routes/nommez-votre-animal.tsx +++ b/apps/website/src/routes/nommez-votre-animal.tsx @@ -8,13 +8,13 @@ import { useEffect, useState } from "react" import invariant from "tiny-invariant" import { z } from "zod" -import { animalNames } from "#i/animals/data" -import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status" -import { actionClassNames } from "#i/core/actions" -import { prisma } from "#i/core/db.server" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { Icon } from "#i/generated/icon" +import { animalNames } from "#i/animals/data.js" +import { ACTIVE_ANIMAL_STATUS } from "#i/animals/status.js" +import { actionClassNames } from "#i/core/actions.js" +import { prisma } from "#i/core/db.server.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { Icon } from "#i/generated/icon.js" // Multiple of 2 and 3 to be nicely displayed. const ANIMAL_NAME_COUNT_PER_PAGE = 18 diff --git a/apps/website/src/routes/partenaires.tsx b/apps/website/src/routes/partenaires.tsx index 7e06883a..f9d43520 100644 --- a/apps/website/src/routes/partenaires.tsx +++ b/apps/website/src/routes/partenaires.tsx @@ -3,13 +3,13 @@ import type { MetaFunction, SerializeFrom } from "@remix-run/node" import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" -import type { MarkdownProps } from "#i/core/data-display/markdown" -import { Markdown } from "#i/core/data-display/markdown" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { partners } from "#i/partners/data.server" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" +import type { MarkdownProps } from "#i/core/data-display/markdown.js" +import { Markdown } from "#i/core/data-display/markdown.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { partners } from "#i/partners/data.server.js" export async function loader() { return json({ partners }) diff --git a/apps/website/src/routes/resources.subscribe/input.tsx b/apps/website/src/routes/resources.subscribe/input.tsx index b803c92f..2f69aea5 100644 --- a/apps/website/src/routes/resources.subscribe/input.tsx +++ b/apps/website/src/routes/resources.subscribe/input.tsx @@ -4,9 +4,9 @@ import { useEffect, useRef } from "react" import invariant from "tiny-invariant" import { z } from "zod" -import { createActionData } from "#i/core/schemas" -import { Icon } from "#i/generated/icon" -import type { action } from "#i/routes/resources.subscribe/route" +import { createActionData } from "#i/core/schemas.js" +import { Icon } from "#i/generated/icon.js" +import type { action } from "#i/routes/resources.subscribe/route.js" const RESOURCE_PATHNAME = "/resources/subscribe" diff --git a/apps/website/src/routes/resources.subscribe/route.tsx b/apps/website/src/routes/resources.subscribe/route.tsx index c0a67d72..5fb1781b 100644 --- a/apps/website/src/routes/resources.subscribe/route.tsx +++ b/apps/website/src/routes/resources.subscribe/route.tsx @@ -2,7 +2,7 @@ import type { ActionFunctionArgs } from "@remix-run/node" import { json, redirect } from "@remix-run/node" import type { z } from "zod" -import { ActionFormData } from "#i/routes/resources.subscribe/input" +import { ActionFormData } from "#i/routes/resources.subscribe/input.js" export async function loader() { // Nothing to render here. diff --git a/apps/website/src/routes/sauves.tsx b/apps/website/src/routes/sauves.tsx index fcc20d65..4a1c3623 100644 --- a/apps/website/src/routes/sauves.tsx +++ b/apps/website/src/routes/sauves.tsx @@ -5,13 +5,13 @@ import { json } from "@remix-run/node" import { useLoaderData } from "@remix-run/react" import { promiseHash } from "remix-utils/promise" -import { AnimalItem } from "#i/animals/item" -import { SAVED_ANIMAL_STATUS } from "#i/animals/status" -import { Paginator } from "#i/core/controllers/paginator" -import { prisma } from "#i/core/db.server" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { getPage } from "#i/core/search-params" +import { AnimalItem } from "#i/animals/item.js" +import { SAVED_ANIMAL_STATUS } from "#i/animals/status.js" +import { Paginator } from "#i/core/controllers/paginator.js" +import { prisma } from "#i/core/db.server.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { getPage } from "#i/core/search-params.js" // Multiple of 2 and 3 to be nicely displayed. const ANIMAL_COUNT_PER_PAGE = 18 diff --git a/apps/website/src/routes/signaler-un-animal-errant.tsx b/apps/website/src/routes/signaler-un-animal-errant.tsx index 679d8da0..4d888579 100644 --- a/apps/website/src/routes/signaler-un-animal-errant.tsx +++ b/apps/website/src/routes/signaler-un-animal-errant.tsx @@ -1,20 +1,23 @@ import { cn } from "@animeaux/core" import type { MetaFunction } from "@remix-run/node" -import { createCloudinaryUrl, DynamicImage } from "#i/core/data-display/image" +import { + createCloudinaryUrl, + DynamicImage, +} from "#i/core/data-display/image.js" import { ARTICLE_COMPONENTS, Markdown, MarkdownLink, -} from "#i/core/data-display/markdown" +} from "#i/core/data-display/markdown.js" import { RelatedSection, RelatedSectionList, RelatedSectionTitle, -} from "#i/core/layout/related-section" -import { createSocialMeta } from "#i/core/meta" -import { getPageTitle } from "#i/core/page-title" -import { WarnItem } from "#i/warn/item" +} from "#i/core/layout/related-section.js" +import { createSocialMeta } from "#i/core/meta.js" +import { getPageTitle } from "#i/core/page-title.js" +import { WarnItem } from "#i/warn/item.js" const IMAGE_ID = "blog/a2bf3ad2-a475-4c63-8f30-fd29928c8fa3" diff --git a/apps/website/src/warn/item.tsx b/apps/website/src/warn/item.tsx index 8a90b140..21766aef 100644 --- a/apps/website/src/warn/item.tsx +++ b/apps/website/src/warn/item.tsx @@ -1,6 +1,6 @@ -import type { BaseLinkProps } from "#i/core/base-link" -import { BaseLink } from "#i/core/base-link" -import { DynamicImage } from "#i/core/data-display/image" +import type { BaseLinkProps } from "#i/core/base-link.js" +import { BaseLink } from "#i/core/base-link.js" +import { DynamicImage } from "#i/core/data-display/image.js" export function WarnItem({ to, diff --git a/apps/website/tailwind.config.ts b/apps/website/tailwind.config.ts index 960b530a..0404d249 100644 --- a/apps/website/tailwind.config.ts +++ b/apps/website/tailwind.config.ts @@ -1,7 +1,7 @@ import type { Config } from "tailwindcss" -import defaultColors from "tailwindcss/colors" -import defaultTheme from "tailwindcss/defaultTheme" -import plugin from "tailwindcss/plugin" +import defaultColors from "tailwindcss/colors.js" +import defaultTheme from "tailwindcss/defaultTheme.js" +import plugin from "tailwindcss/plugin.js" // Color gradiants generated from Material Design. // https://material.io/design/color/the-color-system.html#tools-for-picking-colors diff --git a/docs/decisions/000-template.md b/docs/decisions/000-template.md new file mode 100644 index 00000000..6c766389 --- /dev/null +++ b/docs/decisions/000-template.md @@ -0,0 +1,74 @@ +# Title + +Date: **YYYY-MM-DD** + +Status: **Accepted** | **Deprecated** | **Replaced by [000][template]** + + + + + +## Context + + + +## Decision + + + +**Advantages**: + +- 👍 Advantage 1 +- 👍 Advantage 2 + +**Drawbacks**: + +- 👎 Drawback 1 +- 👎 Drawback 2 + +## Consequences + + + +## Considered options + + + +1. **Considered option 1** + - 👍 Advantage 1 + - 👍 Advantage 2 + - 👎 Drawback 1 + - 👎 Drawback 2 +2. **Considered option 2** + - 👍 Advantage 1 + - 👍 Advantage 2 + - 👎 Drawback 1 + - 👎 Drawback 2 + +[template]: 000-template.md diff --git a/docs/decisions/001-file-extensions.md b/docs/decisions/001-file-extensions.md new file mode 100644 index 00000000..d426cfea --- /dev/null +++ b/docs/decisions/001-file-extensions.md @@ -0,0 +1,98 @@ +# File Extensions in Imports + +Date: **2026-03-22** + +Status: **Accepted** + +## Context + +- Node.js (version 20 and later) requires file extensions in imports and no + longer resolves folders to an _index.ts_ file. +- Bundlers do not require file extensions. +- Node.js code in web apps is bundled into a single file. +- Scripts must use file extensions unless they are compiled with a bundler. +- VS Code automatically adds file extensions to imports, which then need to be + removed manually when they are not necessary. + +## Decisions + +To ensure consistency, we will enforce the use of file extensions in imports. + +For folder imports, we will adopt the [Rust file hierarchy model][rust-modules]. + +**Before** + +``` +parent/ +└─ feature/ + ├─ index.ts - Public exports only (feature entry point) + ├─ feature.ts - Main part + ├─ internal-file-1.ts - Internal part + └─ internal-file-2.ts - Internal part +``` + +```ts +import { feature } from "./feature" +// "./feature/index.ts" +``` + +**After** + +``` +parent/ +├─ feature.ts - Main part and public exports (feature entry point) +└─ _feature/ + ├─ internal-file-1.ts - Internal part + └─ internal-file-2.ts - Internal part +``` + +```ts +import { feature } from "./feature.js" +``` + +We prefix the folder with "_" to avoid any confusion with feature grouping +folders (for example, `animal/`, `core/layouts/`). Using "_" makes it explicit +that the folder is an implementation detail and not a feature group, which +improves code clarity and maintainability. + +**Advantages**: + +- 👍 Consistency across the entire workspace. +- 👍 Compatibility with import resolution starting with Node.js 22. +- 👍 Clearer folder and file structure. + +**Drawbacks**: + +- 👎 Requires updating all existing imports. +- 👎 May require some developers to adapt their habits. + +## Consequences + +- All import paths must be updated to include file extensions. +- All folder imports must be updated to use the new model. +- The change should be transparent for developers, because IDEs and tools handle + imports automatically. + +## Considered options + +1. **Compile code with a bundler (for example, [Vite][vite], [webpack][webpack]) + instead of TypeScript** + - 👍 Makes it possible to avoid file extensions. + - 👎 Adds complexity and extra tooling. +2. **Use a third-party tool (for example, [tsc-alias][tsc-alias], + [tsc-module-loader][tsc-module-loader]) to insert extensions** + - 👍 Possible automation. + - 👎 Additional complexity and maintenance. +3. **Keep the current structure and explicitly add `index.js` in imports** + - 👍 Apparent simplicity. + - 👎 Breaks abstraction and makes refactoring harder. +4. **Use other naming conventions for internal folders** + - `feature_/`: The underscore may go unnoticed. + - `internal-feature/`: Longer and may conflict with a feature named + "internal". + +[rust-modules]: https://doc.rust-lang.org/stable/rust-by-example/mod/split.html +[tsc-alias]: https://www.npmjs.com/package/tsc-alias +[tsc-module-loader]: https://www.npmjs.com/package/tsc-module-loader +[vite]: https://vite.dev +[webpack]: https://webpack.js.org diff --git a/docs/decisions/README.md b/docs/decisions/README.md new file mode 100644 index 00000000..888b7c30 --- /dev/null +++ b/docs/decisions/README.md @@ -0,0 +1,7 @@ +# Decisions + +This directory contains all the decisions we have made and serves as a reference +when we wonder why some of them were made. + +The decisions here are never final. But these documents should allow someone to +quickly understand the context. diff --git a/libs/dev-tools/tsconfig.base.json b/libs/dev-tools/tsconfig.base.json index 80376a3a..c0ecbe6f 100644 --- a/libs/dev-tools/tsconfig.base.json +++ b/libs/dev-tools/tsconfig.base.json @@ -11,8 +11,11 @@ "target": "ES2022", "verbatimModuleSyntax": true, - "module": "ESNext", - "moduleResolution": "Bundler", + // Whether or not we're transpiling with TypeScript, we still use `NodeNext` + // to ensure usage of file extensions. + // + // See /docs/decisions/001-file-extensions.md + "module": "NodeNext", // Strictness. "forceConsistentCasingInFileNames": true, diff --git a/libs/tailwind-animation/src/tailwind-animation.ts b/libs/tailwind-animation/src/tailwind-animation.ts index 1cc683e8..a34104a7 100644 --- a/libs/tailwind-animation/src/tailwind-animation.ts +++ b/libs/tailwind-animation/src/tailwind-animation.ts @@ -1,4 +1,4 @@ -import plugin from "tailwindcss/plugin" +import plugin from "tailwindcss/plugin.js" export const tailwindAnimation = plugin( ({ matchUtilities, addUtilities, theme }) => { diff --git a/package.json b/package.json index 468d15ad..5e34730a 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,11 @@ "lint": "run-p --continue-on-error --print-label lint:*", "lint:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --max-warnings 0 .", "lint:prettier": "prettier --list-different .", - "lint:workspace": "pnpm -r lint", + "lint:workspace": "pnpm -r --no-bail lint", "lint-fix": "run-s --print-label lint-fix:eslint lint-fix:prettier lint-fix:workspace", "lint-fix:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --fix .", "lint-fix:prettier": "prettier --write .", - "lint-fix:workspace": "pnpm -r lint-fix" + "lint-fix:workspace": "pnpm -r --no-bail lint-fix" }, "devDependencies": { "@animeaux/dev-tools": "workspace:*", From 781ecee0998b9d6752d08d242578e272bd2cd74c Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Mon, 23 Mar 2026 08:51:06 +0100 Subject: [PATCH 4/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Improve=20Tailwind=20V?= =?UTF-8?q?S=20Code=20plugin=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3626e3b9..6c5cd83d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,14 +14,7 @@ "search.exclude": { "**/build": true }, - "tailwindCSS.experimental.classRegex": [ - [ - // Container: `cn([...])` - "cn\\(([^)]*)\\)", - // Class lists: `"[...]"` - "(?:'|\"|`)([^']*)(?:'|\"|`)" - ] - ], + "tailwindCSS.classFunctions": ["cn"], "tailwindCSS.experimental.configFile": { "apps/admin/tailwind.config.ts": "apps/admin/**", "apps/website/tailwind.config.ts": "apps/website/**", From 9cc2ca1c605dc98d1168d3cf7fe226660d83df84 Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Mon, 23 Mar 2026 09:08:16 +0100 Subject: [PATCH 5/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Allow=20manual=20relea?= =?UTF-8?q?ses=20of=20feature=20branches?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/admin.deploy.yml | 2 +- .github/workflows/show.deploy.yml | 2 +- .github/workflows/website.deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/admin.deploy.yml b/.github/workflows/admin.deploy.yml index 12259fb5..63f452d1 100644 --- a/.github/workflows/admin.deploy.yml +++ b/.github/workflows/admin.deploy.yml @@ -139,7 +139,7 @@ jobs: FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} - name: 🚀 Deploy Staging - if: ${{ github.ref == 'refs/heads/dev' }} + if: ${{ github.ref != 'refs/heads/main' }} uses: superfly/flyctl-actions@1.4 with: args: diff --git a/.github/workflows/show.deploy.yml b/.github/workflows/show.deploy.yml index c907f970..cadf279e 100644 --- a/.github/workflows/show.deploy.yml +++ b/.github/workflows/show.deploy.yml @@ -139,7 +139,7 @@ jobs: FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} - name: 🚀 Deploy Staging - if: ${{ github.ref == 'refs/heads/dev' }} + if: ${{ github.ref != 'refs/heads/main' }} uses: superfly/flyctl-actions@1.4 with: args: diff --git a/.github/workflows/website.deploy.yml b/.github/workflows/website.deploy.yml index 0e3bcf1c..412b1b2b 100644 --- a/.github/workflows/website.deploy.yml +++ b/.github/workflows/website.deploy.yml @@ -139,7 +139,7 @@ jobs: FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} - name: 🚀 Deploy Staging - if: ${{ github.ref == 'refs/heads/dev' }} + if: ${{ github.ref != 'refs/heads/main' }} uses: superfly/flyctl-actions@1.4 with: args: From e2f34c144a78aea602b0582d9b830707ad614c2c Mon Sep 17 00:00:00 2001 From: sbellavoine Date: Wed, 18 Feb 2026 11:30:34 +0100 Subject: [PATCH 6/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Migrate=20Prisma=20fro?= =?UTF-8?q?m=20`yarn`=20to=20`pnpm`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/prisma/package.json | 7 +++---- libs/prisma/scripts/seed-data.ts | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/libs/prisma/package.json b/libs/prisma/package.json index 52995229..39c45d33 100644 --- a/libs/prisma/package.json +++ b/libs/prisma/package.json @@ -34,10 +34,9 @@ "lint-fix": "run-s --print-label lint-fix:eslint lint-fix:prettier", "lint-fix:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --fix .", "lint-fix:prettier": "prettier --write .", - "migrate": "yarn prisma-env migrate dev", - "prisma-env": "node -r dotenv-flow/config ./node_modules/.bin/prisma", - "reset": "yarn prisma-env migrate reset -f", - "studio": "yarn prisma-env studio" + "migrate": "prisma migrate dev", + "reset": "prisma migrate reset -f", + "studio": "prisma studio" }, "prisma": { "seed": "tsx -r dotenv-flow/config ./scripts/seed-data.ts" diff --git a/libs/prisma/scripts/seed-data.ts b/libs/prisma/scripts/seed-data.ts index 26255a9d..ee363811 100755 --- a/libs/prisma/scripts/seed-data.ts +++ b/libs/prisma/scripts/seed-data.ts @@ -32,6 +32,18 @@ import { DateTime } from "luxon" const DEFAULT_PASSWORD = "NotASword1!" +const ACTIVE_ANIMAL_STATUS: Status[] = [ + Status.OPEN_TO_ADOPTION, + Status.OPEN_TO_RESERVATION, + Status.RESERVED, + Status.RETIRED, + Status.UNAVAILABLE, +] + +const NON_ACTIVE_ANIMAL_STATUS: Status[] = Object.values(Status).filter( + (status) => !ACTIVE_ANIMAL_STATUS.includes(status), +) + console.log("🌱 Seeding data...") const prisma = new PrismaClient() @@ -382,18 +394,6 @@ function createEventInput({ } } -const ACTIVE_ANIMAL_STATUS: Status[] = [ - Status.OPEN_TO_ADOPTION, - Status.OPEN_TO_RESERVATION, - Status.RESERVED, - Status.RETIRED, - Status.UNAVAILABLE, -] - -const NON_ACTIVE_ANIMAL_STATUS: Status[] = Object.values(Status).filter( - (status) => !ACTIVE_ANIMAL_STATUS.includes(status), -) - async function seedAnimals() { await Promise.all([ seeds.users, From 95ec9404895583f914cb62f75c1322896b9b76d3 Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Fri, 13 Feb 2026 00:30:39 +0100 Subject: [PATCH 7/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Upgrade=20node=20from?= =?UTF-8?q?=2022.11=20to=2022.12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/admin.deploy.yml | 2 +- .github/workflows/show.deploy.yml | 2 +- .github/workflows/website.deploy.yml | 2 +- .github/workflows/workspace.checks.yml | 2 +- .nvmrc | 2 +- apps/admin/Dockerfile | 2 +- apps/show/Dockerfile | 2 +- apps/website/Dockerfile | 2 +- package.json | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/admin.deploy.yml b/.github/workflows/admin.deploy.yml index 63f452d1..4862c48f 100644 --- a/.github/workflows/admin.deploy.yml +++ b/.github/workflows/admin.deploy.yml @@ -39,7 +39,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v4 with: - node-version: 22.11 + node-version: 22.12 cache: "pnpm" - name: 📥 Download deps diff --git a/.github/workflows/show.deploy.yml b/.github/workflows/show.deploy.yml index cadf279e..56e6dd00 100644 --- a/.github/workflows/show.deploy.yml +++ b/.github/workflows/show.deploy.yml @@ -39,7 +39,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v4 with: - node-version: 22.11 + node-version: 22.12 cache: "pnpm" - name: 📥 Download deps diff --git a/.github/workflows/website.deploy.yml b/.github/workflows/website.deploy.yml index 412b1b2b..f757ac1b 100644 --- a/.github/workflows/website.deploy.yml +++ b/.github/workflows/website.deploy.yml @@ -39,7 +39,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v4 with: - node-version: 22.11 + node-version: 22.12 cache: "pnpm" - name: 📥 Download deps diff --git a/.github/workflows/workspace.checks.yml b/.github/workflows/workspace.checks.yml index ed364400..b5a3c7bf 100644 --- a/.github/workflows/workspace.checks.yml +++ b/.github/workflows/workspace.checks.yml @@ -25,7 +25,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v4 with: - node-version: 22.11 + node-version: 22.12 cache: "pnpm" - name: 📥 Download deps diff --git a/.nvmrc b/.nvmrc index 8b84b727..35d2d08e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.11 +22.12 diff --git a/apps/admin/Dockerfile b/apps/admin/Dockerfile index 192fcb4b..da60039a 100644 --- a/apps/admin/Dockerfile +++ b/apps/admin/Dockerfile @@ -1,5 +1,5 @@ # Base stage for all subsequent stages. -FROM node:22.11-bullseye-slim AS base +FROM node:22.12-bullseye-slim AS base # Needed for Prisma generation and runtime. RUN apt-get update && apt-get install -y openssl diff --git a/apps/show/Dockerfile b/apps/show/Dockerfile index cfa4fc24..7e3b3987 100644 --- a/apps/show/Dockerfile +++ b/apps/show/Dockerfile @@ -1,5 +1,5 @@ # Base stage for all subsequent stages. -FROM node:22.11-bullseye-slim AS base +FROM node:22.12-bullseye-slim AS base # Needed for Prisma generation and runtime. RUN apt-get update && apt-get install -y openssl diff --git a/apps/website/Dockerfile b/apps/website/Dockerfile index 649a3b60..80eb15b6 100644 --- a/apps/website/Dockerfile +++ b/apps/website/Dockerfile @@ -1,5 +1,5 @@ # Base stage for all subsequent stages. -FROM node:22.11-bullseye-slim AS base +FROM node:22.12-bullseye-slim AS base # Needed for Prisma generation and runtime. RUN apt-get update && apt-get install -y openssl diff --git a/package.json b/package.json index 5e34730a..98d3fb20 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "license": "MIT", "engines": { - "node": "^22.11.0", + "node": "^22.12.0", "pnpm": "^10.20.0" }, "packageManager": "pnpm@10.20.0", From 15cf7002fc97bc3c0fa7e08c38278a1e7c99f14e Mon Sep 17 00:00:00 2001 From: Simon Relet Date: Mon, 23 Mar 2026 09:21:28 +0100 Subject: [PATCH 8/8] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Upgrade=20prisma=20fro?= =?UTF-8?q?m=206.18.0=20to=207.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/Dockerfile | 1 + apps/show/Dockerfile | 1 + apps/website/Dockerfile | 1 + libs/prisma/package.json | 12 +- libs/prisma/prisma.config.ts | 12 + libs/prisma/schema.prisma | 1 - pnpm-lock.yaml | 486 +++++++++++++++++++++++++++++++---- pnpm-workspace.yaml | 6 +- 8 files changed, 452 insertions(+), 68 deletions(-) create mode 100644 libs/prisma/prisma.config.ts diff --git a/apps/admin/Dockerfile b/apps/admin/Dockerfile index da60039a..a9dcf748 100644 --- a/apps/admin/Dockerfile +++ b/apps/admin/Dockerfile @@ -96,6 +96,7 @@ RUN pnpm install --prod --frozen-lockfile --offline COPY --from=build /workspace ./ COPY libs/prisma/migrations libs/prisma/migrations +COPY libs/prisma/prisma.config.ts libs/prisma/prisma.config.ts COPY libs/prisma/schema.prisma libs/prisma/schema.prisma CMD ["pnpm", "--filter", "admin", "start"] diff --git a/apps/show/Dockerfile b/apps/show/Dockerfile index 7e3b3987..e626f549 100644 --- a/apps/show/Dockerfile +++ b/apps/show/Dockerfile @@ -92,6 +92,7 @@ RUN pnpm install --prod --frozen-lockfile --offline COPY --from=build /workspace ./ COPY libs/prisma/migrations libs/prisma/migrations +COPY libs/prisma/prisma.config.ts libs/prisma/prisma.config.ts COPY libs/prisma/schema.prisma libs/prisma/schema.prisma CMD ["pnpm", "--filter", "show", "start"] diff --git a/apps/website/Dockerfile b/apps/website/Dockerfile index 80eb15b6..ccb61f95 100644 --- a/apps/website/Dockerfile +++ b/apps/website/Dockerfile @@ -86,6 +86,7 @@ RUN pnpm install --prod --frozen-lockfile --offline COPY --from=build /workspace ./ COPY libs/prisma/migrations libs/prisma/migrations +COPY libs/prisma/prisma.config.ts libs/prisma/prisma.config.ts COPY libs/prisma/schema.prisma libs/prisma/schema.prisma CMD ["pnpm", "--filter", "website", "start"] diff --git a/libs/prisma/package.json b/libs/prisma/package.json index 39c45d33..9a2bada8 100644 --- a/libs/prisma/package.json +++ b/libs/prisma/package.json @@ -18,7 +18,7 @@ "prebuild": "pnpm clean", "build": "run-s --print-label build:prisma build:src build:paths", "build:paths": "tsc-alias -p ./tsconfig.build.json", - "build:prisma": "prisma generate", + "build:prisma": "pnpm prisma-env generate", "build:src": "tsc -p ./tsconfig.build.json", "clean": "rm -rf ./build ./src/generated", "copy-data": "tsx ./scripts/copy-data.ts", @@ -34,12 +34,10 @@ "lint-fix": "run-s --print-label lint-fix:eslint lint-fix:prettier", "lint-fix:eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint --fix .", "lint-fix:prettier": "prettier --write .", - "migrate": "prisma migrate dev", - "reset": "prisma migrate reset -f", - "studio": "prisma studio" - }, - "prisma": { - "seed": "tsx -r dotenv-flow/config ./scripts/seed-data.ts" + "migrate": "pnpm prisma-env migrate dev", + "prisma-env": "NODE_OPTIONS=\"-r dotenv-flow/config\" prisma", + "reset": "pnpm prisma-env migrate reset -f", + "studio": "pnpm prisma-env studio" }, "dependencies": { "@prisma/adapter-pg": "catalog:", diff --git a/libs/prisma/prisma.config.ts b/libs/prisma/prisma.config.ts new file mode 100644 index 00000000..05618dcf --- /dev/null +++ b/libs/prisma/prisma.config.ts @@ -0,0 +1,12 @@ +import { defineConfig, env } from "prisma/config" + +export default defineConfig({ + datasource: { + url: env("DATABASE_URL"), + }, + + migrations: { + path: "./migrations", + seed: "tsx -r dotenv-flow/config ./scripts/seed-data.ts", + }, +}) diff --git a/libs/prisma/schema.prisma b/libs/prisma/schema.prisma index afc35df1..82388918 100644 --- a/libs/prisma/schema.prisma +++ b/libs/prisma/schema.prisma @@ -8,7 +8,6 @@ generator client { datasource db { provider = "postgresql" - url = env("DATABASE_URL") } model User { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ee671bc..67840f6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,11 +41,11 @@ catalogs: specifier: ^1.27.0 version: 1.27.0 '@prisma/adapter-pg': - specifier: ^6.18.0 - version: 6.18.0 + specifier: ^7.4.0 + version: 7.5.0 '@prisma/client': - specifier: ^6.18.0 - version: 6.18.0 + specifier: ^7.4.0 + version: 7.5.0 '@radix-ui/react-collapsible': specifier: ^1.0.3 version: 1.0.3 @@ -335,8 +335,8 @@ catalogs: specifier: ^0.6.1 version: 0.6.1 prisma: - specifier: ^6.18.0 - version: 6.18.0 + specifier: ^7.4.0 + version: 7.5.0 react: specifier: ^18.2.0 version: 18.3.1 @@ -1323,13 +1323,13 @@ importers: dependencies: '@prisma/adapter-pg': specifier: 'catalog:' - version: 6.18.0 + version: 7.5.0 '@prisma/client': specifier: 'catalog:' - version: 6.18.0(prisma@6.18.0(typescript@5.4.5))(typescript@5.4.5) + version: 7.5.0(prisma@7.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5))(typescript@5.4.5) prisma: specifier: 'catalog:' - version: 6.18.0(typescript@5.4.5) + version: 7.5.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) devDependencies: '@animeaux/dev-tools': specifier: workspace:* @@ -1767,6 +1767,18 @@ packages: '@bundled-es-modules/statuses@1.0.1': resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + '@chevrotain/cst-dts-gen@10.5.0': + resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==} + + '@chevrotain/gast@10.5.0': + resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==} + + '@chevrotain/types@10.5.0': + resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==} + + '@chevrotain/utils@10.5.0': + resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} + '@conform-to/dom@1.2.2': resolution: {integrity: sha512-f05EClpNP31o6lX4LYmmLqgsiTOHdGfY7z2XXK6U6rRp+EtxrkUBdrFlIGsfkf7e9AFO19h3/Cb/cXHVd1k1FA==} @@ -1780,6 +1792,20 @@ packages: peerDependencies: zod: ^3.21.0 + '@electric-sql/pglite-socket@0.0.20': + resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==} + hasBin: true + peerDependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite-tools@0.2.20': + resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==} + peerDependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite@0.3.15': + resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} + '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} @@ -2254,6 +2280,12 @@ packages: '@floating-ui/utils@0.2.2': resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + '@hono/node-server@1.19.9': + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -2334,6 +2366,10 @@ packages: '@mjackson/multipart-parser@0.6.3': resolution: {integrity: sha512-aQhySnM6OpAYMMG+m7LEygYye99hB1md/Cy1AFE0yD5hfNW+X4JDu7oNVY9Gc6IW8PZ45D1rjFLDIUdnkXmwrA==} + '@mrleebo/prisma-ast@0.13.1': + resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==} + engines: {node: '>=16'} + '@mswjs/cookies@1.1.0': resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==} engines: {node: '>=18'} @@ -2627,45 +2663,68 @@ packages: '@pm2/pm2-version-check@1.0.4': resolution: {integrity: sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==} - '@prisma/adapter-pg@6.18.0': - resolution: {integrity: sha512-eBtBOL1z2Sh0Rc2hwa4dmwoNeFs5T69tsA62AkhBvnzNfTcr/YfLeJae/wjNmvRttYDPmdiuhqZCRPNY1+8fOA==} + '@prisma/adapter-pg@7.5.0': + resolution: {integrity: sha512-EJx7OLULahcC3IjJgdx2qRDNCT+ToY2v66UkeETMCLhNOTgqVzRzYvOEphY7Zp0eHyzfkC33Edd/qqeadf9R4A==} - '@prisma/client@6.18.0': - resolution: {integrity: sha512-jnL2I9gDnPnw4A+4h5SuNn8Gc+1mL1Z79U/3I9eE2gbxJG1oSA+62ByPW4xkeDgwE0fqMzzpAZ7IHxYnLZ4iQA==} - engines: {node: '>=18.18'} + '@prisma/client-runtime-utils@7.5.0': + resolution: {integrity: sha512-KnJ2b4Si/pcWEtK68uM+h0h1oh80CZt2suhLTVuLaSKg4n58Q9jBF/A42Kw6Ma+aThy1yAhfDeTC0JvEmeZnFQ==} + + '@prisma/client@7.5.0': + resolution: {integrity: sha512-h4hF9ctp+kSRs7ENHGsFQmHAgHcfkOCxbYt6Ti9Xi8x7D+kP4tTi9x51UKmiTH/OqdyJAO+8V+r+JA5AWdav7w==} + engines: {node: ^20.19 || ^22.12 || >=24.0} peerDependencies: prisma: '*' - typescript: '>=5.1.0' + typescript: '>=5.4.0' peerDependenciesMeta: prisma: optional: true typescript: optional: true - '@prisma/config@6.18.0': - resolution: {integrity: sha512-rgFzspCpwsE+q3OF/xkp0fI2SJ3PfNe9LLMmuSVbAZ4nN66WfBiKqJKo/hLz3ysxiPQZf8h1SMf2ilqPMeWATQ==} + '@prisma/config@7.5.0': + resolution: {integrity: sha512-1J/9YEX7A889xM46PYg9e8VAuSL1IUmXJW3tEhMv7XQHDWlfC9YSkIw9sTYRaq5GswGlxZ+GnnyiNsUZ9JJhSQ==} - '@prisma/debug@6.18.0': - resolution: {integrity: sha512-PMVPMmxPj0ps1VY75DIrT430MoOyQx9hmm174k6cmLZpcI95rAPXOQ+pp8ANQkJtNyLVDxnxVJ0QLbrm/ViBcg==} + '@prisma/debug@7.2.0': + resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} - '@prisma/driver-adapter-utils@6.18.0': - resolution: {integrity: sha512-9wgSriEKs4j1ePxlv1/RNfJV9Gu5rzG37Neshg+DfrCcUY3amroERvTjyR04w5J1THdGdOTgGL9VdJcVaKRMmQ==} + '@prisma/debug@7.5.0': + resolution: {integrity: sha512-163+nffny0JoPEkDhfNco0vcuT3ymIJc9+WX7MHSQhfkeKUmKe9/wqvGk5SjppT93DtBjVwr5HPJYlXbzm6qtg==} - '@prisma/engines-version@6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f': - resolution: {integrity: sha512-T7Af4QsJQnSgWN1zBbX+Cha5t4qjHRxoeoWpK4JugJzG/ipmmDMY5S+O0N1ET6sCBNVkf6lz+Y+ZNO9+wFU8pQ==} + '@prisma/dev@0.20.0': + resolution: {integrity: sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ==} - '@prisma/engines@6.18.0': - resolution: {integrity: sha512-i5RzjGF/ex6AFgqEe2o1IW8iIxJGYVQJVRau13kHPYEL1Ck8Zvwuzamqed/1iIljs5C7L+Opiz5TzSsUebkriA==} + '@prisma/driver-adapter-utils@7.5.0': + resolution: {integrity: sha512-B79N/amgV677mFesFDBAdrW0OIaqawap9E0sjgLBtzIz2R3hIMS1QB8mLZuUEiS4q5Y8Oh3I25Kw4SLxMypk9Q==} - '@prisma/fetch-engine@6.18.0': - resolution: {integrity: sha512-TdaBvTtBwP3IoqVYoGIYpD4mWlk0pJpjTJjir/xLeNWlwog7Sl3bD2J0jJ8+5+q/6RBg+acb9drsv5W6lqae7A==} + '@prisma/engines-version@7.5.0-15.280c870be64f457428992c43c1f6d557fab6e29e': + resolution: {integrity: sha512-E+iRV/vbJLl8iGjVr6g/TEWokA+gjkV/doZkaQN1i/ULVdDwGnPJDfLUIFGS3BVwlG/m6L8T4x1x5isl8hGMxA==} - '@prisma/get-platform@6.18.0': - resolution: {integrity: sha512-uXNJCJGhxTCXo2B25Ta91Rk1/Nmlqg9p7G9GKh8TPhxvAyXCvMNQoogj4JLEUy+3ku8g59cpyQIKFhqY2xO2bg==} + '@prisma/engines@7.5.0': + resolution: {integrity: sha512-ondGRhzoaVpRWvFaQ5wH5zS1BIbhzbKqczKjCn6j3L0Zfe/LInjcEg8+xtB49AuZBX30qyx1ZtGoootUohz2pw==} + + '@prisma/fetch-engine@7.5.0': + resolution: {integrity: sha512-kZCl2FV54qnyrVdnII8MI6qvt7HfU6Cbiz8dZ8PXz4f4lbSw45jEB9/gEMK2SGdiNhBKyk/Wv95uthoLhGMLYA==} + + '@prisma/get-platform@7.2.0': + resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==} + + '@prisma/get-platform@7.5.0': + resolution: {integrity: sha512-7I+2y1nu/gkEKSiHHbcZ1HPe/euGdEqJZxEEMT0246q4De1+hla0ZzlTgvaT9dHcVCgLSuCG8v39db5qUUWNgw==} '@prisma/instrumentation@5.19.1': resolution: {integrity: sha512-VLnzMQq7CWroL5AeaW0Py2huiNKeoMfCH3SUxstdzPrlWQi6UQ9UrfcbUkNHlVFqOMacqy8X/8YtE0kuKDpD9w==} + '@prisma/query-plan-executor@7.2.0': + resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==} + + '@prisma/studio-core@0.21.1': + resolution: {integrity: sha512-bOGqG/eMQtKC0XVvcVLRmhWWzm/I+0QUWqAEhEBtetpuS3k3V4IWqKGUONkAIT223DNXJMxMtZp36b1FmcdPeg==} + engines: {node: ^20.19 || ^22.12 || ^24.0, pnpm: '8'} + peerDependencies: + '@types/react': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + '@radix-ui/primitive@1.0.1': resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} @@ -3559,6 +3618,9 @@ packages: '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + '@types/pg@8.11.11': + resolution: {integrity: sha512-kGT1qKM8wJQ5qlawUrEkXgvMSXoV213KfMGXcwfDwUIfUHXqXYXOfS1nE1LINRJVVVx5wCm70XnFlMHaIcQAfw==} + '@types/pg@8.11.6': resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} @@ -3983,6 +4045,10 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} + axe-core@4.11.1: resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} @@ -4184,6 +4250,9 @@ packages: resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} engines: {node: '>= 6'} + chevrotain@10.5.0: + resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} + chokidar-cli@3.0.0: resolution: {integrity: sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ==} engines: {node: '>= 8.10.0'} @@ -4528,6 +4597,10 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5039,6 +5112,10 @@ packages: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -5104,6 +5181,9 @@ packages: resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} engines: {node: '>=14'} + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + generic-names@4.0.0: resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} @@ -5127,6 +5207,9 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} @@ -5230,6 +5313,12 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + grammex@3.1.12: + resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==} + + graphmatch@1.1.1: + resolution: {integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==} + graphql@16.8.1: resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -5309,6 +5398,10 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hono@4.11.4: + resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==} + engines: {node: '>=16.9.0'} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -5341,6 +5434,9 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -5361,6 +5457,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -5595,6 +5695,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + is-reference@3.0.1: resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} @@ -5911,6 +6014,9 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -5933,6 +6039,10 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lru.min@1.1.4: + resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + luxon@3.4.4: resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} engines: {node: '>=12'} @@ -6411,9 +6521,17 @@ packages: resolution: {integrity: sha512-BzQguy9W9NJgoVn2mRWzbFrFWWztGCcng2QI9+41frfk+Athwgx3qhqhvStz7ExeUUu7Kzw427sNzHpEZNINog==} engines: {node: '>=16.0.0'} + mysql2@3.15.3: + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} + engines: {node: '>= 8.0'} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + named-placeholders@1.1.6: + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} + engines: {node: '>=8.0.0'} + nan@2.19.0: resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} @@ -6760,6 +6878,12 @@ packages: pg-cloudflare@1.1.1: resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + pg-cloudflare@1.3.0: + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} + + pg-connection-string@2.12.0: + resolution: {integrity: sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==} + pg-connection-string@2.6.4: resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} @@ -6774,11 +6898,19 @@ packages: resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} engines: {node: '>=4'} + pg-pool@3.13.0: + resolution: {integrity: sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==} + peerDependencies: + pg: '>=8.0' + pg-pool@3.6.2: resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} peerDependencies: pg: '>=8.0' + pg-protocol@1.13.0: + resolution: {integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==} + pg-protocol@1.6.1: resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} @@ -6799,6 +6931,15 @@ packages: pg-native: optional: true + pg@8.20.0: + resolution: {integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + pgpass@1.0.5: resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} @@ -6995,6 +7136,10 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + postgres@3.4.7: + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} + engines: {node: '>=12'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -7065,13 +7210,16 @@ packages: resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} - prisma@6.18.0: - resolution: {integrity: sha512-bXWy3vTk8mnRmT+SLyZBQoC2vtV9Z8u7OHvEu+aULYxwiop/CPiFZ+F56KsNRNf35jw+8wcu8pmLsjxpBxAO9g==} - engines: {node: '>=18.18'} + prisma@7.5.0: + resolution: {integrity: sha512-n30qZpWehaYQzigLjmuPisyEsvOzHt7bZeRyg8gZ5DvJo9FGjD+gNaY59Ns3hlLD5/jZH5GBeftIss0jDbUoLg==} + engines: {node: ^20.19 || ^22.12 || >=24.0} hasBin: true peerDependencies: - typescript: '>=5.1.0' + better-sqlite3: '>=9.0.0' + typescript: '>=5.4.0' peerDependenciesMeta: + better-sqlite3: + optional: true typescript: optional: true @@ -7112,6 +7260,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + property-information@6.2.0: resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} @@ -7326,6 +7477,9 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regexp-to-ast@0.5.0: + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} + regexp.prototype.flags@1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} @@ -7365,6 +7519,9 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remeda@2.33.4: + resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==} + remix-utils@7.6.0: resolution: {integrity: sha512-BPhCUEy+nwrhDDDg2v3+LFSszV6tluMbeSkbffj2o4tqZxt5Kn69Y9sNpGxYLAj8gjqeYDuxjv55of+gYnnykA==} engines: {node: '>=18.0.0'} @@ -7554,6 +7711,9 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -7684,6 +7844,10 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + ssri@10.0.6: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7696,6 +7860,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -8154,6 +8321,14 @@ packages: engines: {node: '>=8'} hasBin: true + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -8445,6 +8620,9 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zeptomatch@2.1.0: + resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==} + zod-form-data@2.0.2: resolution: {integrity: sha512-sKTi+k0fvkxdakD0V5rq+9WVJA3cuTQUfEmNqvHrTzPLvjfLmkkBLfR0ed3qOi9MScJXTHIDH/jUNnEJ3CBX4g==} peerDependencies: @@ -8696,6 +8874,21 @@ snapshots: dependencies: statuses: 2.0.1 + '@chevrotain/cst-dts-gen@10.5.0': + dependencies: + '@chevrotain/gast': 10.5.0 + '@chevrotain/types': 10.5.0 + lodash: 4.17.21 + + '@chevrotain/gast@10.5.0': + dependencies: + '@chevrotain/types': 10.5.0 + lodash: 4.17.21 + + '@chevrotain/types@10.5.0': {} + + '@chevrotain/utils@10.5.0': {} + '@conform-to/dom@1.2.2': {} '@conform-to/react@1.2.2(react@18.3.1)': @@ -8708,6 +8901,16 @@ snapshots: '@conform-to/dom': 1.2.2 zod: 3.23.8 + '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)': + dependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)': + dependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite@0.3.15': {} + '@emnapi/core@1.8.1': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -8994,6 +9197,10 @@ snapshots: '@floating-ui/utils@0.2.2': {} + '@hono/node-server@1.19.9(hono@4.11.4)': + dependencies: + hono: 4.11.4 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -9130,6 +9337,11 @@ snapshots: dependencies: '@mjackson/headers': 0.5.1 + '@mrleebo/prisma-ast@0.13.1': + dependencies: + chevrotain: 10.5.0 + lilconfig: 2.1.0 + '@mswjs/cookies@1.1.0': {} '@mswjs/interceptors@0.29.1': @@ -9556,20 +9768,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@prisma/adapter-pg@6.18.0': + '@prisma/adapter-pg@7.5.0': dependencies: - '@prisma/driver-adapter-utils': 6.18.0 - pg: 8.11.5 + '@prisma/driver-adapter-utils': 7.5.0 + '@types/pg': 8.11.11 + pg: 8.20.0 postgres-array: 3.0.4 transitivePeerDependencies: - pg-native - '@prisma/client@6.18.0(prisma@6.18.0(typescript@5.4.5))(typescript@5.4.5)': + '@prisma/client-runtime-utils@7.5.0': {} + + '@prisma/client@7.5.0(prisma@7.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5))(typescript@5.4.5)': + dependencies: + '@prisma/client-runtime-utils': 7.5.0 optionalDependencies: - prisma: 6.18.0(typescript@5.4.5) + prisma: 7.5.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) typescript: 5.4.5 - '@prisma/config@6.18.0': + '@prisma/config@7.5.0': dependencies: c12: 3.1.0 deepmerge-ts: 7.1.5 @@ -9578,30 +9795,58 @@ snapshots: transitivePeerDependencies: - magicast - '@prisma/debug@6.18.0': {} + '@prisma/debug@7.2.0': {} + + '@prisma/debug@7.5.0': {} - '@prisma/driver-adapter-utils@6.18.0': + '@prisma/dev@0.20.0(typescript@5.4.5)': dependencies: - '@prisma/debug': 6.18.0 + '@electric-sql/pglite': 0.3.15 + '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15) + '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) + '@hono/node-server': 1.19.9(hono@4.11.4) + '@mrleebo/prisma-ast': 0.13.1 + '@prisma/get-platform': 7.2.0 + '@prisma/query-plan-executor': 7.2.0 + foreground-child: 3.3.1 + get-port-please: 3.2.0 + hono: 4.11.4 + http-status-codes: 2.3.0 + pathe: 2.0.3 + proper-lockfile: 4.1.2 + remeda: 2.33.4 + std-env: 3.10.0 + valibot: 1.2.0(typescript@5.4.5) + zeptomatch: 2.1.0 + transitivePeerDependencies: + - typescript + + '@prisma/driver-adapter-utils@7.5.0': + dependencies: + '@prisma/debug': 7.5.0 - '@prisma/engines-version@6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f': {} + '@prisma/engines-version@7.5.0-15.280c870be64f457428992c43c1f6d557fab6e29e': {} - '@prisma/engines@6.18.0': + '@prisma/engines@7.5.0': dependencies: - '@prisma/debug': 6.18.0 - '@prisma/engines-version': 6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f - '@prisma/fetch-engine': 6.18.0 - '@prisma/get-platform': 6.18.0 + '@prisma/debug': 7.5.0 + '@prisma/engines-version': 7.5.0-15.280c870be64f457428992c43c1f6d557fab6e29e + '@prisma/fetch-engine': 7.5.0 + '@prisma/get-platform': 7.5.0 - '@prisma/fetch-engine@6.18.0': + '@prisma/fetch-engine@7.5.0': dependencies: - '@prisma/debug': 6.18.0 - '@prisma/engines-version': 6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f - '@prisma/get-platform': 6.18.0 + '@prisma/debug': 7.5.0 + '@prisma/engines-version': 7.5.0-15.280c870be64f457428992c43c1f6d557fab6e29e + '@prisma/get-platform': 7.5.0 - '@prisma/get-platform@6.18.0': + '@prisma/get-platform@7.2.0': dependencies: - '@prisma/debug': 6.18.0 + '@prisma/debug': 7.2.0 + + '@prisma/get-platform@7.5.0': + dependencies: + '@prisma/debug': 7.5.0 '@prisma/instrumentation@5.19.1': dependencies: @@ -9611,6 +9856,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@prisma/query-plan-executor@7.2.0': {} + + '@prisma/studio-core@0.21.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@radix-ui/primitive@1.0.1': dependencies: '@babel/runtime': 7.24.6 @@ -10651,6 +10904,12 @@ snapshots: dependencies: '@types/pg': 8.11.6 + '@types/pg@8.11.11': + dependencies: + '@types/node': 22.8.7 + pg-protocol: 1.6.1 + pg-types: 4.0.2 + '@types/pg@8.11.6': dependencies: '@types/node': 22.8.7 @@ -11121,6 +11380,8 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 + aws-ssl-profiles@1.1.2: {} + axe-core@4.11.1: {} axobject-query@4.1.0: {} @@ -11360,6 +11621,15 @@ snapshots: parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 + chevrotain@10.5.0: + dependencies: + '@chevrotain/cst-dts-gen': 10.5.0 + '@chevrotain/gast': 10.5.0 + '@chevrotain/types': 10.5.0 + '@chevrotain/utils': 10.5.0 + lodash: 4.17.21 + regexp-to-ast: 0.5.0 + chokidar-cli@3.0.0: dependencies: chokidar: 3.6.0 @@ -11667,6 +11937,8 @@ snapshots: delayed-stream@1.0.0: {} + denque@2.1.0: {} + depd@2.0.0: {} dequal@2.0.3: {} @@ -12423,6 +12695,11 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -12501,6 +12778,10 @@ snapshots: - encoding - supports-color + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + generic-names@4.0.0: dependencies: loader-utils: 3.2.1 @@ -12537,6 +12818,8 @@ snapshots: get-nonce@1.0.1: {} + get-port-please@3.2.0: {} + get-port@5.1.1: {} get-proto@1.0.1: @@ -12668,6 +12951,10 @@ snapshots: graceful-fs@4.2.11: {} + grammex@3.1.12: {} + + graphmatch@1.1.1: {} + graphql@16.8.1: {} gtoken@7.1.0(encoding@0.1.13): @@ -12777,6 +13064,8 @@ snapshots: dependencies: react-is: 16.13.1 + hono@4.11.4: {} + hosted-git-info@2.8.9: {} hosted-git-info@6.1.1: @@ -12821,6 +13110,8 @@ snapshots: transitivePeerDependencies: - supports-color + http-status-codes@2.3.0: {} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -12845,6 +13136,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -13055,6 +13350,8 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-property@1.0.2: {} + is-reference@3.0.1: dependencies: '@types/estree': 1.0.5 @@ -13362,6 +13659,8 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 + long@5.3.2: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -13380,6 +13679,8 @@ snapshots: lru-cache@7.18.3: {} + lru.min@1.1.4: {} + luxon@3.4.4: {} make-fetch-happen@13.0.1: @@ -14284,12 +14585,28 @@ snapshots: mylas@2.1.14: {} + mysql2@3.15.3: + dependencies: + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.7.2 + long: 5.3.2 + lru.min: 1.1.4 + named-placeholders: 1.1.6 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + named-placeholders@1.1.6: + dependencies: + lru.min: 1.1.4 + nan@2.19.0: {} nanoid@3.3.7: {} @@ -14680,6 +14997,11 @@ snapshots: pg-cloudflare@1.1.1: optional: true + pg-cloudflare@1.3.0: + optional: true + + pg-connection-string@2.12.0: {} + pg-connection-string@2.6.4: {} pg-copy-streams@6.0.6: @@ -14690,10 +15012,16 @@ snapshots: pg-numeric@1.0.2: {} + pg-pool@3.13.0(pg@8.20.0): + dependencies: + pg: 8.20.0 + pg-pool@3.6.2(pg@8.11.5): dependencies: pg: 8.11.5 + pg-protocol@1.13.0: {} + pg-protocol@1.6.1: {} pg-types@2.2.0: @@ -14724,6 +15052,16 @@ snapshots: optionalDependencies: pg-cloudflare: 1.1.1 + pg@8.20.0: + dependencies: + pg-connection-string: 2.12.0 + pg-pool: 3.13.0(pg@8.20.0) + pg-protocol: 1.13.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.3.0 + pgpass@1.0.5: dependencies: split2: 4.2.0 @@ -14942,6 +15280,8 @@ snapshots: postgres-range@1.1.4: {} + postgres@3.4.7: {} + prelude-ls@1.2.1: {} prettier-plugin-tailwindcss@0.6.1(prettier@3.3.0): @@ -14956,14 +15296,21 @@ snapshots: dependencies: parse-ms: 2.1.0 - prisma@6.18.0(typescript@5.4.5): + prisma@7.5.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5): dependencies: - '@prisma/config': 6.18.0 - '@prisma/engines': 6.18.0 + '@prisma/config': 7.5.0 + '@prisma/dev': 0.20.0(typescript@5.4.5) + '@prisma/engines': 7.5.0 + '@prisma/studio-core': 0.21.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + mysql2: 3.15.3 + postgres: 3.4.7 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: + - '@types/react' - magicast + - react + - react-dom prismjs@1.29.0: {} @@ -14992,6 +15339,12 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + property-information@6.2.0: {} proto-list@1.2.4: {} @@ -15238,6 +15591,8 @@ snapshots: regenerator-runtime@0.14.1: {} + regexp-to-ast@0.5.0: {} + regexp.prototype.flags@1.4.3: dependencies: call-bind: 1.0.7 @@ -15329,6 +15684,8 @@ snapshots: mdast-util-to-markdown: 2.1.0 unified: 11.0.4 + remeda@2.33.4: {} + remix-utils@7.6.0(@remix-run/node@2.9.2(typescript@5.4.5))(@remix-run/react@2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5))(@remix-run/router@1.21.0)(react@18.3.1)(zod@3.23.8): dependencies: type-fest: 4.18.3 @@ -15521,6 +15878,8 @@ snapshots: transitivePeerDependencies: - supports-color + seq-queue@0.0.5: {} + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 @@ -15658,6 +16017,8 @@ snapshots: sprintf-js@1.1.3: {} + sqlstring@2.3.3: {} + ssri@10.0.6: dependencies: minipass: 7.1.2 @@ -15666,6 +16027,8 @@ snapshots: statuses@2.0.1: {} + std-env@3.10.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -16250,6 +16613,10 @@ snapshots: kleur: 4.1.5 sade: 1.8.1 + valibot@1.2.0(typescript@5.4.5): + optionalDependencies: + typescript: 5.4.5 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.1.1 @@ -16544,6 +16911,11 @@ snapshots: yocto-queue@0.1.0: {} + zeptomatch@2.1.0: + dependencies: + grammex: 3.1.12 + graphmatch: 1.1.1 + zod-form-data@2.0.2(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4235630a..46e197b9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -29,8 +29,8 @@ catalog: "@opentelemetry/instrumentation": ^0.54.2 "@opentelemetry/sdk-trace-base": ^1.27.0 "@opentelemetry/semantic-conventions": ^1.27.0 - "@prisma/adapter-pg": ^6.18.0 - "@prisma/client": ^6.18.0 + "@prisma/adapter-pg": ^7.4.0 + "@prisma/client": ^7.4.0 "@radix-ui/react-collapsible": ^1.0.3 "@radix-ui/react-dialog": ^1.0.4 "@radix-ui/react-dropdown-menu": ^2.0.5 @@ -127,7 +127,7 @@ catalog: pm2: ^5.3.0 prettier: ^3.2.4 prettier-plugin-tailwindcss: ^0.6.1 - prisma: ^6.18.0 + prisma: ^7.4.0 react: ^18.2.0 react-dnd: ^16.0.1 react-dnd-html5-backend: ^16.0.1