Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: CSS modules (early experimental support) #2489

Closed
wants to merge 87 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
04c0a2f
Initial implementation of CSS modules plugins for both server and bro…
mjackson Feb 23, 2022
73df19a
Merge branch 'dev' into css-modules
chaance Feb 23, 2022
8b76ccc
chore: use correct promise resolve type for AssetsManifestRef
chaance Feb 24, 2022
75c61ab
Add virtual modules plugins for CSS Modules
chaance Feb 24, 2022
42eb07f
add cssmodules file path to assets object
chaance Feb 24, 2022
ea79fd5
modify scope + comments
chaance Feb 24, 2022
0531d10
Merge branch 'dev' of github.com:remix-run/remix into css-modules
chaance Feb 24, 2022
3af5759
refactor CSS modules plugins
chaance Feb 25, 2022
5726ca3
fix css hashing
chaance Feb 25, 2022
fa30edc
chore: update assets manifest types
chaance Mar 1, 2022
aec0023
chore: compiler fixes
chaance Mar 1, 2022
3f38369
chore: add CSS modules imports to gists app
chaance Mar 1, 2022
958ef0d
chore: Merge branch 'dev' into css-modules
chaance Mar 1, 2022
c2e238b
remove virtual module stuff, add modules to browser build
chaance Mar 1, 2022
44fee47
cleanup
chaance Mar 1, 2022
7c0596c
Merge branch 'dev' into css-modules
chaance Mar 4, 2022
df50e1b
create @remix-run/css-modules package
chaance Mar 4, 2022
158ac85
add css-modules package to build
chaance Mar 4, 2022
2016b6d
add css-modules package to scripts
chaance Mar 4, 2022
fa86d32
update manifest types + resolve module imports
chaance Mar 4, 2022
6653f17
css-modules package entrypoints
chaance Mar 4, 2022
01ee119
add css-modules to workspaces
chaance Mar 4, 2022
a66e67c
rm index and fix package.json
chaance Mar 4, 2022
bb050fc
add css-modules to tsconfig
chaance Mar 4, 2022
a607949
add processor for Parcel
chaance Mar 4, 2022
91c0c8e
bundle internal css-modules package
chaance Mar 4, 2022
4952de5
add css modules to gists app
chaance Mar 4, 2022
9054616
check composes feature
chaance Mar 5, 2022
b200036
deps
chaance Mar 5, 2022
e0085c5
fix browser import
chaance Mar 5, 2022
770d62d
types and such
chaance Mar 5, 2022
5ecd50a
types
chaance Mar 5, 2022
0d48c47
clean up gists app
chaance Mar 5, 2022
7449ce3
types
chaance Mar 5, 2022
0915e6c
swap postcss for parcel
chaance Mar 5, 2022
7a7bfd5
cleanup
chaance Mar 5, 2022
9c96f81
Merge branch 'dev' into css-modules
chaance Mar 15, 2022
c12a05f
revert deno in tsconfig
chaance Mar 15, 2022
c399fe2
add placeholder for tests
chaance Mar 15, 2022
fa72bd1
Merge branch 'dev' into css-modules
chaance Mar 15, 2022
9b834b8
Merge branch 'dev' into css-modules
chaance Mar 25, 2022
f41293e
revert gists app change
chaance Mar 25, 2022
b822a30
reduce diffs
chaance Mar 25, 2022
641afa9
typo
chaance Mar 25, 2022
82073ce
tests
chaance Mar 25, 2022
0537a08
Merge branch 'dev' into feature/css-modules
chaance Mar 30, 2022
418a389
deps
chaance Mar 30, 2022
f485536
test stuff
chaance Mar 30, 2022
9c8465c
fix links test
chaance Mar 30, 2022
75dab98
test updates
chaance Mar 30, 2022
31be49a
use composition in test cases
chaance Mar 31, 2022
392e5ca
fix sorting and caching issues
chaance Mar 31, 2022
147f196
Merge branch 'dev' into feature/css-modules
chaance Apr 26, 2022
1e64d70
Merge branch 'dev' into feature/css-modules
chaance Apr 27, 2022
2678ee1
chore: remove obsolete dev scripts
pcattori Apr 28, 2022
43f35c6
test(css-modules): rewrite test for playwright
pcattori Apr 28, 2022
4cd6a76
chore(rollup): use `REMIX_LOCAL_DEV_OUTPUT_DIRECTORY` for `@remix-run…
pcattori Apr 28, 2022
d9d444d
feat(compiler): order css modules output according to dependency order
pcattori Apr 28, 2022
4081507
refactor(css-modules): remove unused handler param from css modules p…
pcattori Apr 28, 2022
0e8def8
update module tests
chaance Apr 29, 2022
6a44223
Add todo tests for ordering
chaance Apr 29, 2022
9dd389b
rename cssModules.ts -> cssModulesPlugi.ts
chaance Apr 29, 2022
1c40806
Merge branch 'dev' into feature/css-modules
chaance May 12, 2022
c626296
fix tests
chaance May 12, 2022
0747d0e
run all tests
chaance May 16, 2022
ec43d23
Merge branch 'dev' into feature/css-modules
chaance May 16, 2022
063e57c
fix test scoping issues
chaance May 16, 2022
952232f
rm placeholder file
chaance May 16, 2022
7f674ac
Merge branch 'dev' into feature/css-modules
chaance May 17, 2022
8e0e071
only run topological sort on files w/ CSS modules
chaance May 17, 2022
c95fb09
reduce array iterations
chaance May 17, 2022
7632c49
Merge branch 'dev' into feature/css-modules
chaance May 17, 2022
f5a1432
use named imports for modules stylesheet
chaance May 17, 2022
859eadf
Merge branch 'dev' into feature/css-modules
chaance May 18, 2022
8026a1f
check for processed css before reading json
chaance May 18, 2022
21e6f0d
null check
chaance May 18, 2022
c01f9ff
rebuild fixes
chaance May 18, 2022
0e9ee7d
run build after CSS modules updates
chaance May 18, 2022
ba0b019
rename module references
chaance May 18, 2022
481fe22
rename compiler references
chaance May 18, 2022
47eb2f5
renaming
chaance May 18, 2022
67eac49
resolve paths based on tsconfig paths
chaance May 18, 2022
ff2f5bb
pin @parcel/css version
chaance May 18, 2022
5ea1116
rm log
chaance May 18, 2022
97823e3
update comments
chaance May 18, 2022
ae984c8
Merge branch 'dev' into feature/css-modules
chaance May 19, 2022
4f0d8e3
Version 0.0.0-experimental-ae984c8e
chaance May 19, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 1 addition & 3 deletions .vscode/deno_resolve_npm_imports.json
@@ -1,13 +1,11 @@
{
"// Resolve NPM imports for `packages/remix-deno`.": "",

"// This import map is used solely for the denoland.vscode-deno extension.": "",
"// Remix does not support import maps.": "",
"// Dependency management is done through `npm` and `node_modules/` instead.": "",
"// Deno-only dependencies may be imported via URL imports (without using import maps).": "",

"imports": {
"mime": "https://esm.sh/mime@3.0.0",
"@remix-run/server-runtime": "https://esm.sh/@remix-run/server-runtime@1.4.3"
"@remix-run/server-runtime": "https://esm.sh/@remix-run/server-runtime@0.0.0-experimental-ae984c8e"
}
}
10 changes: 5 additions & 5 deletions examples/basic/package.json
Expand Up @@ -10,15 +10,15 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/blog-tutorial/package.json
Expand Up @@ -34,18 +34,18 @@
"@node-rs/bcrypt": "^1.6.0",
"@prisma/client": "^3.13.0",
"@reach/alert": "^0.17.0",
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"marked": "^4.0.15",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"tiny-invariant": "^1.2.0"
},
"devDependencies": {
"@faker-js/faker": "^6.3.1",
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@testing-library/cypress": "^8.0.2",
"@testing-library/dom": "^8.13.0",
"@testing-library/jest-dom": "^5.16.4",
Expand Down
10 changes: 5 additions & 5 deletions examples/bullmq-task-queue/package.json
Expand Up @@ -10,17 +10,17 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"bullmq": "^1.76.0",
"ioredis": "^4.28.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/ioredis": "^4.28.8",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
Expand Down
10 changes: 5 additions & 5 deletions examples/catch-boundary/package.json
Expand Up @@ -10,15 +10,15 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/chakra-ui/package.json
Expand Up @@ -13,16 +13,16 @@
"@chakra-ui/react": "^1.8.6",
"@emotion/react": "^11.8.1",
"@emotion/styled": "^11.8.1",
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"framer-motion": "^5.6.0",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/client-only-components/package.json
Expand Up @@ -10,16 +10,16 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"remix-utils": "^2.7.0"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/client-side-validation/package.json
Expand Up @@ -10,15 +10,15 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/collected-notes/package.json
Expand Up @@ -10,16 +10,16 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"collected-notes": "^2.3.0",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/combobox-resource-route/package.json
Expand Up @@ -11,16 +11,16 @@
},
"dependencies": {
"@reach/combobox": "^0.16.5",
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"match-sorter": "^6.3.1",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
8 changes: 4 additions & 4 deletions examples/dark-mode/package.json
Expand Up @@ -10,14 +10,14 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.38",
"@types/react-dom": "^17.0.11",
"typescript": "^4.5.4"
Expand Down
10 changes: 5 additions & 5 deletions examples/dataloader/package.json
Expand Up @@ -11,9 +11,9 @@
"start:dev": "cross-env NODE_ENV=development node -r esbuild-register server/index.ts"
},
"dependencies": {
"@remix-run/express": "1.5.1",
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/express": "0.0.0-experimental-ae984c8e",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"compression": "^1.7.4",
"cross-env": "^7.0.3",
"dataloader": "^2.0.0",
Expand All @@ -23,8 +23,8 @@
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"esbuild-register": "^3.3.2",
Expand Down
10 changes: 5 additions & 5 deletions examples/emotion/package.json
Expand Up @@ -14,15 +14,15 @@
"@emotion/react": "^11.8.1",
"@emotion/server": "^11.4.0",
"@emotion/styled": "^11.8.1",
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/file-and-cloudinary-upload/package.json
Expand Up @@ -10,16 +10,16 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"cloudinary": "^1.28.1",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/firebase-auth-firestore/package.json
Expand Up @@ -10,17 +10,17 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"firebase": "^9.6.10",
"firebase-admin": "^10.0.2",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.43",
"@types/react-dom": "^17.0.14",
"eslint": "^8.12.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/form-to-notion-db/package.json
Expand Up @@ -11,15 +11,15 @@
},
"dependencies": {
"@notionhq/client": "^0.4.13",
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/framer-motion/package.json
Expand Up @@ -10,16 +10,16 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"framer-motion": "^5.6.0",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down
10 changes: 5 additions & 5 deletions examples/framer-route-animation/package.json
Expand Up @@ -10,16 +10,16 @@
"start": "remix-serve build"
},
"dependencies": {
"@remix-run/node": "1.5.1",
"@remix-run/react": "1.5.1",
"@remix-run/serve": "1.5.1",
"@remix-run/node": "0.0.0-experimental-ae984c8e",
"@remix-run/react": "0.0.0-experimental-ae984c8e",
"@remix-run/serve": "0.0.0-experimental-ae984c8e",
"framer-motion": "^6.2.8",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@remix-run/dev": "1.5.1",
"@remix-run/eslint-config": "1.5.1",
"@remix-run/dev": "0.0.0-experimental-ae984c8e",
"@remix-run/eslint-config": "0.0.0-experimental-ae984c8e",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.13",
"eslint": "^8.10.0",
Expand Down