From 0e290727125f9dfa5cf7129d8b059ac3eb7c33c7 Mon Sep 17 00:00:00 2001 From: Stephen Haberman Date: Wed, 9 Nov 2022 09:19:30 -0600 Subject: [PATCH] Proof of concept non-component-based css prop. --- package.json | 3 +- packages/app-tachyons-fela-prop/.gitignore | 24 + packages/app-tachyons-fela-prop/index.html | 12 + packages/app-tachyons-fela-prop/package.json | 25 + packages/app-tachyons-fela-prop/src/App.tsx | 16 + .../src/jsx-dev-runtime.js | 46 ++ packages/app-tachyons-fela-prop/src/main.tsx | 9 + .../app-tachyons-fela-prop/src/vite-env.d.ts | 1 + packages/app-tachyons-fela-prop/tsconfig.json | 21 + .../app-tachyons-fela-prop/tsconfig.node.json | 9 + .../app-tachyons-fela-prop/vite.config.ts | 7 + packages/testing-tachyons/tsconfig.json | 3 +- yarn.lock | 534 +++++++++++++++++- 13 files changed, 697 insertions(+), 13 deletions(-) create mode 100644 packages/app-tachyons-fela-prop/.gitignore create mode 100644 packages/app-tachyons-fela-prop/index.html create mode 100644 packages/app-tachyons-fela-prop/package.json create mode 100644 packages/app-tachyons-fela-prop/src/App.tsx create mode 100644 packages/app-tachyons-fela-prop/src/jsx-dev-runtime.js create mode 100644 packages/app-tachyons-fela-prop/src/main.tsx create mode 100644 packages/app-tachyons-fela-prop/src/vite-env.d.ts create mode 100644 packages/app-tachyons-fela-prop/tsconfig.json create mode 100644 packages/app-tachyons-fela-prop/tsconfig.node.json create mode 100644 packages/app-tachyons-fela-prop/vite.config.ts diff --git a/package.json b/package.json index 4282a32..033e410 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "packages/testing-tachyons", "packages/testing-tachyons-emotion", "packages/testing-tachyons-fela", - "packages/testing-tachyons-mui" + "packages/testing-tachyons-mui", + "packages/app-tachyons-fela-prop" ], "devDependencies": { "@semantic-release/changelog": "^6.0.1", diff --git a/packages/app-tachyons-fela-prop/.gitignore b/packages/app-tachyons-fela-prop/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/packages/app-tachyons-fela-prop/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/app-tachyons-fela-prop/index.html b/packages/app-tachyons-fela-prop/index.html new file mode 100644 index 0000000..7e6449b --- /dev/null +++ b/packages/app-tachyons-fela-prop/index.html @@ -0,0 +1,12 @@ + + + + + + Vite + React + TS + + +
+ + + diff --git a/packages/app-tachyons-fela-prop/package.json b/packages/app-tachyons-fela-prop/package.json new file mode 100644 index 0000000..bf03c7e --- /dev/null +++ b/packages/app-tachyons-fela-prop/package.json @@ -0,0 +1,25 @@ +{ + "name": "app-tachyons-fela-prop", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@homebound/truss-testing-tachyons": "workspace:*", + "fela": "^12.2.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-fela": "^12.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.24", + "@types/react-dom": "^18.0.8", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^4.6.4", + "vite": "^3.2.3" + } +} diff --git a/packages/app-tachyons-fela-prop/src/App.tsx b/packages/app-tachyons-fela-prop/src/App.tsx new file mode 100644 index 0000000..726744d --- /dev/null +++ b/packages/app-tachyons-fela-prop/src/App.tsx @@ -0,0 +1,16 @@ +import { useState } from "react"; +import { Css } from "@homebound/truss-testing-tachyons"; + +function App() { + const [count, setCount] = useState(0); + return ( +
+

Vite + React

+
+ +
+
+ ); +} + +export default App; diff --git a/packages/app-tachyons-fela-prop/src/jsx-dev-runtime.js b/packages/app-tachyons-fela-prop/src/jsx-dev-runtime.js new file mode 100644 index 0000000..2938347 --- /dev/null +++ b/packages/app-tachyons-fela-prop/src/jsx-dev-runtime.js @@ -0,0 +1,46 @@ +import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; +import { createRenderer } from "fela"; +import { render } from "fela-dom"; + +// Create a renderer +const renderer = createRenderer(); +// And then auto-inject any CSS it creates into the DOM +render(renderer); + +/** + * Wraps React's JSX runtime (i.e. `createElement`) with `css` prop support. + * + * Unlike the Emotion or native Fela `css` props, we don't create a wrapping + * `EmotionCssPropInternal` or `FelaComponent` component, which adds another + * React component to the component tree. + * + * Instead, we just merge the `css` prop into the `className` prop, and hand + * it right back to React as a `createElement(div, ...)` etc. + * + * Emotion and Fela likely don't do this b/c they access their `renderer` + * instance via a React context, which we cannot access directly b/c it + * would surely cause "different number of hooks" errors due to conditional + * JSX rendering. Which is dumb b/c accessing a context has no side effect, + * so IMO contexts should be accessible w/o the hook API/restrictions. + * + * But, anyway, we avoid that by just accessing our `renderer` as a global + * variable. + */ +export function jsxDEV(type, props = {}, ...children) { + if (props) { + const { css, className, ...otherProps } = props; + if (css) { + // Convert `{ color: "blue" }` --> `a` + const cn = renderer.renderRule(() => css, {}); + return _jsxDEV( + type, + { + ...otherProps, + className: className ? cn + " " + className : cn, + }, + ...children, + ); + } + } + return _jsxDEV(type, props, ...children); +} diff --git a/packages/app-tachyons-fela-prop/src/main.tsx b/packages/app-tachyons-fela-prop/src/main.tsx new file mode 100644 index 0000000..197a6e3 --- /dev/null +++ b/packages/app-tachyons-fela-prop/src/main.tsx @@ -0,0 +1,9 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + +) diff --git a/packages/app-tachyons-fela-prop/src/vite-env.d.ts b/packages/app-tachyons-fela-prop/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/app-tachyons-fela-prop/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/app-tachyons-fela-prop/tsconfig.json b/packages/app-tachyons-fela-prop/tsconfig.json new file mode 100644 index 0000000..3d0a51a --- /dev/null +++ b/packages/app-tachyons-fela-prop/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/app-tachyons-fela-prop/tsconfig.node.json b/packages/app-tachyons-fela-prop/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/packages/app-tachyons-fela-prop/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/app-tachyons-fela-prop/vite.config.ts b/packages/app-tachyons-fela-prop/vite.config.ts new file mode 100644 index 0000000..d43d425 --- /dev/null +++ b/packages/app-tachyons-fela-prop/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react({ jsxImportSource: '.' })] +}) diff --git a/packages/testing-tachyons/tsconfig.json b/packages/testing-tachyons/tsconfig.json index 5e12899..11e045d 100644 --- a/packages/testing-tachyons/tsconfig.json +++ b/packages/testing-tachyons/tsconfig.json @@ -1,10 +1,9 @@ { "extends": "@homebound/tsconfig/tsconfig.json", "compilerOptions": { - "module": "commonjs", + "module": "ES2022", "target": "es5", "sourceMap": true, - "downlevelIteration": true, "outDir": "build/", "jsx": "react" }, diff --git a/yarn.lock b/yarn.lock index 9830115..a5188d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -92,6 +92,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.19.6": + version: 7.20.2 + resolution: "@babel/core@npm:7.20.2" + dependencies: + "@ampproject/remapping": ^2.1.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.20.2 + "@babel/helper-compilation-targets": ^7.20.0 + "@babel/helper-module-transforms": ^7.20.2 + "@babel/helpers": ^7.20.1 + "@babel/parser": ^7.20.2 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.20.1 + "@babel/types": ^7.20.2 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.1 + semver: ^6.3.0 + checksum: 98faaaef26103a276a30a141b951a93bc8418d100d1f668bf7a69d12f3e25df57958e8b6b9100d95663f720db62da85ade736f6629a5ebb1e640251a1b43c0e4 + languageName: node + linkType: hard + "@babel/generator@npm:^7.17.3, @babel/generator@npm:^7.17.7": version: 7.17.7 resolution: "@babel/generator@npm:7.17.7" @@ -114,6 +137,26 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.20.2": + version: 7.20.4 + resolution: "@babel/generator@npm:7.20.4" + dependencies: + "@babel/types": ^7.20.2 + "@jridgewell/gen-mapping": ^0.3.2 + jsesc: ^2.5.1 + checksum: 967b59f18e5ce999e5a741825bcecb2be4bbfc1824a92c21b47d0b5694e0eb09314a70f8b9142e9591c149c7fb83d51f73ae8fbd96d30a42666425889e51ceb1 + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.17.7": version: 7.17.7 resolution: "@babel/helper-compilation-targets@npm:7.17.7" @@ -128,7 +171,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.19.3": +"@babel/helper-compilation-targets@npm:^7.19.3, @babel/helper-compilation-targets@npm:^7.20.0": version: 7.20.0 resolution: "@babel/helper-compilation-targets@npm:7.20.0" dependencies: @@ -256,6 +299,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.20.2": + version: 7.20.2 + resolution: "@babel/helper-module-transforms@npm:7.20.2" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.19.1 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.20.1 + "@babel/types": ^7.20.2 + checksum: 33a60ca115f6fce2c9d98e2a2e5649498aa7b23e2ae3c18745d7a021487708fc311458c33542f299387a0da168afccba94116e077f2cce49ae9e5ab83399e8a2 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.16.7 resolution: "@babel/helper-plugin-utils@npm:7.16.7" @@ -288,6 +347,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.20.2": + version: 7.20.2 + resolution: "@babel/helper-simple-access@npm:7.20.2" + dependencies: + "@babel/types": ^7.20.2 + checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-split-export-declaration@npm:7.16.7" @@ -352,7 +420,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.19.4": +"@babel/helpers@npm:^7.19.4, @babel/helpers@npm:^7.20.1": version: 7.20.1 resolution: "@babel/helpers@npm:7.20.1" dependencies: @@ -403,6 +471,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.20.2": + version: 7.20.3 + resolution: "@babel/parser@npm:7.20.3" + bin: + parser: ./bin/babel-parser.js + checksum: 33bcdb45de65a3cf27ed376cb34f32be3c3485a10e3252f8d0126f6a034efc3145c0d219e57fcd5a8956361552008bc30b9bae4a723823fb3633027071be8a45 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -458,7 +535,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.17.12, @babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-syntax-jsx@npm:^7.17.12, @babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.18.6 resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" dependencies: @@ -557,6 +634,54 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-development@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.18.6" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec9fa65db66f938b75c45e99584367779ac3e0af8afc589187262e1337c7c4205ea312877813ae4df9fb93d766627b8968d74ac2ba702e4883b1dbbe4953ecee + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7d24e29c63869bb23495c163a92678c1c3341ecf74db420a20c6d3db74cbf5000fe908943f6106494e7225c0168945c150e528162274fd8fc7721966ad26930a + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.19.6": + version: 7.19.6 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.19.6" + dependencies: + "@babel/helper-plugin-utils": ^7.19.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1e9e29a4efc5b79840bd4f68e404f5ab7765ce48c7bd22f12f2b185f9c782c66933bdf54a1b21879e4e56e6b50b4e88aca82789ecb1f61123af6dfa9ab16c555 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.18.6, @babel/plugin-transform-react-jsx@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/plugin-transform-react-jsx@npm:7.19.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/plugin-syntax-jsx": ^7.18.6 + "@babel/types": ^7.19.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d7d6f0b8f24b1f6b7cf8062c4e91c59af82489a993e51859bd49c2d62a2d2b77fd40b02a9a1d0e6d874cf4ce56a05fa3564b964587d00c94ebc62593524052ec + languageName: node + linkType: hard + "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.17.8 resolution: "@babel/runtime@npm:7.17.8" @@ -654,6 +779,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.20.2": + version: 7.20.2 + resolution: "@babel/types@npm:7.20.2" + dependencies: + "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: 57e76e5f21876135f481bfd4010c87f2d38196bb0a2bc60a28d6e55e3afa90cdd9accf164e4cb71bdfb620517fa0a0cb5600cdce36c21d59fdaccfbb899c024c + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -833,6 +969,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.15.13": + version: 0.15.13 + resolution: "@esbuild/android-arm@npm:0.15.13" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.15.13": + version: 0.15.13 + resolution: "@esbuild/linux-loong64@npm:0.15.13" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -2374,7 +2524,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.0": +"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.0.8": version: 18.0.8 resolution: "@types/react-dom@npm:18.0.8" dependencies: @@ -2412,6 +2562,17 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^18.0.24": + version: 18.0.25 + resolution: "@types/react@npm:18.0.25" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 231d658c45abdef044a716b4502774f1585d8336d73b2f5bd68f181acbfc874b7a457686ecd29b415b43ed0922c309bab7e2cf96832d188a3f4f1b02f2af760a + languageName: node + linkType: hard + "@types/retry@npm:^0.12.0": version: 0.12.1 resolution: "@types/retry@npm:0.12.1" @@ -2456,6 +2617,23 @@ __metadata: languageName: node linkType: hard +"@vitejs/plugin-react@npm:^2.2.0": + version: 2.2.0 + resolution: "@vitejs/plugin-react@npm:2.2.0" + dependencies: + "@babel/core": ^7.19.6 + "@babel/plugin-transform-react-jsx": ^7.19.0 + "@babel/plugin-transform-react-jsx-development": ^7.18.6 + "@babel/plugin-transform-react-jsx-self": ^7.18.6 + "@babel/plugin-transform-react-jsx-source": ^7.19.6 + magic-string: ^0.26.7 + react-refresh: ^0.14.0 + peerDependencies: + vite: ^3.0.0 + checksum: cc85ab31b4689ab137c4b1e65383dccce494371523eb164c579096e513a2abbaa7efb49ba08655fae9f6692f5b7b2602ad339bdce4ae5982fc08fe444fb8a4e5 + languageName: node + linkType: hard + "JSONStream@npm:^1.0.4": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -2640,6 +2818,23 @@ __metadata: languageName: node linkType: hard +"app-tachyons-fela-prop@workspace:packages/app-tachyons-fela-prop": + version: 0.0.0-use.local + resolution: "app-tachyons-fela-prop@workspace:packages/app-tachyons-fela-prop" + dependencies: + "@homebound/truss-testing-tachyons": "workspace:*" + "@types/react": ^18.0.24 + "@types/react-dom": ^18.0.8 + "@vitejs/plugin-react": ^2.2.0 + fela: ^12.2.0 + react: ^18.2.0 + react-dom: ^18.2.0 + react-fela: ^12.2.0 + typescript: ^4.6.4 + vite: ^3.2.3 + languageName: unknown + linkType: soft + "aproba@npm:^1.0.3 || ^2.0.0, aproba@npm:^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" @@ -4038,6 +4233,223 @@ __metadata: languageName: node linkType: hard +"esbuild-android-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-android-64@npm:0.15.13" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"esbuild-android-arm64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-android-arm64@npm:0.15.13" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-darwin-64@npm:0.15.13" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-darwin-arm64@npm:0.15.13" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-freebsd-64@npm:0.15.13" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-freebsd-arm64@npm:0.15.13" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-32@npm:0.15.13" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-64@npm:0.15.13" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-arm64@npm:0.15.13" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-arm@npm:0.15.13" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-mips64le@npm:0.15.13" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-ppc64le@npm:0.15.13" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"esbuild-linux-riscv64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-riscv64@npm:0.15.13" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"esbuild-linux-s390x@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-linux-s390x@npm:0.15.13" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-netbsd-64@npm:0.15.13" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-openbsd-64@npm:0.15.13" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-sunos-64@npm:0.15.13" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-windows-32@npm:0.15.13" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-windows-64@npm:0.15.13" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.15.13": + version: 0.15.13 + resolution: "esbuild-windows-arm64@npm:0.15.13" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:^0.15.9": + version: 0.15.13 + resolution: "esbuild@npm:0.15.13" + dependencies: + "@esbuild/android-arm": 0.15.13 + "@esbuild/linux-loong64": 0.15.13 + esbuild-android-64: 0.15.13 + esbuild-android-arm64: 0.15.13 + esbuild-darwin-64: 0.15.13 + esbuild-darwin-arm64: 0.15.13 + esbuild-freebsd-64: 0.15.13 + esbuild-freebsd-arm64: 0.15.13 + esbuild-linux-32: 0.15.13 + esbuild-linux-64: 0.15.13 + esbuild-linux-arm: 0.15.13 + esbuild-linux-arm64: 0.15.13 + esbuild-linux-mips64le: 0.15.13 + esbuild-linux-ppc64le: 0.15.13 + esbuild-linux-riscv64: 0.15.13 + esbuild-linux-s390x: 0.15.13 + esbuild-netbsd-64: 0.15.13 + esbuild-openbsd-64: 0.15.13 + esbuild-sunos-64: 0.15.13 + esbuild-windows-32: 0.15.13 + esbuild-windows-64: 0.15.13 + esbuild-windows-arm64: 0.15.13 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/linux-loong64": + optional: true + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: ef5f339fae7e2abc4ec5484d4b301efdf40f580e043cbf8a66e19d6c91df82368a810abec61fd5e5db226f0c354f49c36616c9ea04c5412a142a050c10239bf7 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -4478,7 +4890,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2": +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -4488,7 +4900,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin": +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" dependencies: @@ -6576,6 +6988,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.26.7": + version: 0.26.7 + resolution: "magic-string@npm:0.26.7" + dependencies: + sourcemap-codec: ^1.4.8 + checksum: 89b0d60cbb32bbf3d1e23c46ea93db082d18a8230b972027aecb10a40bba51be519ecce0674f995571e3affe917b76b09f59d8dbc9a1b2c9c4102a2b6e8a2b01 + languageName: node + linkType: hard + "make-dir@npm:^3.0.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -6910,6 +7331,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.4": + version: 3.3.4 + resolution: "nanoid@npm:3.3.4" + bin: + nanoid: bin/nanoid.cjs + checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -7765,6 +8195,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.18": + version: 8.4.18 + resolution: "postcss@npm:8.4.18" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 9349fd99849b2e3d2e134ff949b7770ecb12375f352723ce2bcc06167eba3850ea7844c1b191a85cd915d6a396b4e8ee9a5267e6cc5d8d003d0cbc7a97555d39 + languageName: node + linkType: hard + "prelude-ls@npm:~1.1.2": version: 1.1.2 resolution: "prelude-ls@npm:1.1.2" @@ -8035,6 +8476,13 @@ __metadata: languageName: node linkType: hard +"react-refresh@npm:^0.14.0": + version: 0.14.0 + resolution: "react-refresh@npm:0.14.0" + checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 + languageName: node + linkType: hard + "react-transition-group@npm:^4.4.5": version: 4.4.5 resolution: "react-transition-group@npm:4.4.5" @@ -8335,7 +8783,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.19.0, resolve@npm:^1.20.0": +"resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -8361,7 +8809,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin": +"resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" dependencies: @@ -8406,6 +8854,20 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^2.79.1": + version: 2.79.1 + resolution: "rollup@npm:2.79.1" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 6a2bf167b3587d4df709b37d149ad0300692cc5deb510f89ac7bdc77c8738c9546ae3de9322b0968e1ed2b0e984571f5f55aae28fa7de4cfcb1bc5402a4e2be6 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -8652,6 +9114,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -8676,6 +9145,13 @@ __metadata: languageName: node linkType: hard +"sourcemap-codec@npm:^1.4.8": + version: 1.4.8 + resolution: "sourcemap-codec@npm:1.4.8" + checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 + languageName: node + linkType: hard + "spawn-error-forwarder@npm:~1.0.0": version: 1.0.0 resolution: "spawn-error-forwarder@npm:1.0.0" @@ -9384,7 +9860,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.8.4": +"typescript@npm:^4.6.4, typescript@npm:^4.8.4": version: 4.8.4 resolution: "typescript@npm:4.8.4" bin: @@ -9394,7 +9870,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.8.4#~builtin": +"typescript@patch:typescript@^4.6.4#~builtin, typescript@patch:typescript@^4.8.4#~builtin": version: 4.8.4 resolution: "typescript@patch:typescript@npm%3A4.8.4#~builtin::version=4.8.4&hash=bda367" bin: @@ -9572,6 +10048,44 @@ __metadata: languageName: node linkType: hard +"vite@npm:^3.2.3": + version: 3.2.3 + resolution: "vite@npm:3.2.3" + dependencies: + esbuild: ^0.15.9 + fsevents: ~2.3.2 + postcss: ^8.4.18 + resolve: ^1.22.1 + rollup: ^2.79.1 + peerDependencies: + "@types/node": ">= 14" + less: "*" + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 3c7c618f7fb471cdfaf7f8eb769cb5f4174447e1103cd6221cbc2ae1ea1102bc28dd6a621ead250e6aa42c1e9ee3c8092666ea81078e1d88d2325c484218fd0a + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^3.0.0": version: 3.0.0 resolution: "w3c-xmlserializer@npm:3.0.0"