├── .gitignore
├── .prettierrc
├── 404.html
├── LICENSE
├── README.md
├── index.html
├── jsx-runtime.js
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── public
├── barcode-blaster.json
├── capy.gif
├── effect.webm
├── head.jpeg
├── thumb.png
└── vcr.ttf
├── src
├── 404.jsx
├── data.jsx
├── dvd.jsx
├── main.jsx
└── styles.css
├── tailwind.config.js
├── vercel.json
└── vite.config.ts
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 65,
3 | "semi": true,
4 | "singleQuote": true,
5 | "tabWidth": 2,
6 | "trailingComma": "es5"
7 | }
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 | Aiden Bai
11 |
12 |
13 |
14 |
19 |
20 |
24 |
25 |
29 |
33 |
34 |
35 |
36 |
39 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Aiden Bai 白宇彤
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [**aidenybai.com**](https://aidenybai.com)
2 |
3 | [](https://aidenybai.com)
4 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
15 |
16 |
20 |
21 |
26 |
27 |
28 |
29 |
30 |
34 |
38 |
39 | Aiden Bai
40 |
41 |
42 |
43 |
47 |
50 |
PLAY ►
51 |
--:--
52 |
53 |
56 |
60 | click to begin
61 |
62 |
63 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/jsx-runtime.js:
--------------------------------------------------------------------------------
1 | let prev = {};
2 | export const effect = (callback) => {
3 | prev = callback(prev);
4 | };
5 | export const insert = (el, value, ref) => {
6 | const ret = typeof value === 'function' ? value() : value;
7 | const insertNode = (el, value, ref) => {
8 | if (typeof ret === 'string') {
9 | el.textContent = value;
10 | } else {
11 | el.insertBefore(value, ref);
12 | }
13 | };
14 | if (Array.isArray(ret)) {
15 | ret.forEach((v) => insertNode(el, v, ref));
16 | } else {
17 | insertNode(el, ret, ref);
18 | }
19 | };
20 | export const createComponent = (Component, props) => Component(props);
21 | export const template = (html) => {
22 | const el = document.createElement('template');
23 | el.innerHTML = html;
24 | return el.content.firstChild;
25 | };
26 | export const setAttribute = (el, name, value) => el.setAttribute(name, value);
27 | export const delegateEvents = () => {};
28 | export const className = (el, classString) => {
29 | el.className = classString;
30 | };
31 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "vite",
4 | "build": "vite build",
5 | "preview": "vite preview"
6 | },
7 | "devDependencies": {
8 | "@babel/core": "^7.20.5",
9 | "@babel/plugin-syntax-jsx": "^7.18.6",
10 | "@vitejs/plugin-legacy": "^3.0.1",
11 | "autoprefixer": "^10.4.13",
12 | "babel-plugin-jsx-dom-expressions": "^0.35.6",
13 | "csstype": "^3.1.1",
14 | "dom-expressions": "^0.35.7",
15 | "postcss": "^8.4.20",
16 | "tailwindcss": "^3.2.4",
17 | "terser": "^5.16.1",
18 | "vite": "^4.0.2",
19 | "vite-plugin-babel": "^1.1.2"
20 | },
21 | "dependencies": {
22 | "cobe": "^0.6.3",
23 | "kaboom": "^2000.2.10",
24 | "powerglitch": "^2.3.2"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@babel/core': ^7.20.5
5 | '@babel/plugin-syntax-jsx': ^7.18.6
6 | '@vitejs/plugin-legacy': ^3.0.1
7 | autoprefixer: ^10.4.13
8 | babel-plugin-jsx-dom-expressions: ^0.35.6
9 | cobe: ^0.6.3
10 | csstype: ^3.1.1
11 | dom-expressions: ^0.35.7
12 | kaboom: ^2000.2.10
13 | postcss: ^8.4.20
14 | powerglitch: ^2.3.2
15 | tailwindcss: ^3.2.4
16 | terser: ^5.16.1
17 | vite: ^4.0.2
18 | vite-plugin-babel: ^1.1.2
19 |
20 | dependencies:
21 | cobe: 0.6.3
22 | kaboom: 2000.2.10
23 | powerglitch: 2.3.2
24 |
25 | devDependencies:
26 | '@babel/core': 7.20.5
27 | '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.5
28 | '@vitejs/plugin-legacy': 3.0.1_terser@5.16.1+vite@4.0.2
29 | autoprefixer: 10.4.13_postcss@8.4.20
30 | babel-plugin-jsx-dom-expressions: 0.35.6_@babel+core@7.20.5
31 | csstype: 3.1.1
32 | dom-expressions: 0.35.7_csstype@3.1.1
33 | postcss: 8.4.20
34 | tailwindcss: 3.2.4_postcss@8.4.20
35 | terser: 5.16.1
36 | vite: 4.0.2_terser@5.16.1
37 | vite-plugin-babel: 1.1.2_l5uoowfi6skwxxfmy3fnyxsoou
38 |
39 | packages:
40 |
41 | /@ampproject/remapping/2.2.0:
42 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
43 | engines: {node: '>=6.0.0'}
44 | dependencies:
45 | '@jridgewell/gen-mapping': 0.1.1
46 | '@jridgewell/trace-mapping': 0.3.17
47 | dev: true
48 |
49 | /@babel/code-frame/7.18.6:
50 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
51 | engines: {node: '>=6.9.0'}
52 | dependencies:
53 | '@babel/highlight': 7.18.6
54 | dev: true
55 |
56 | /@babel/compat-data/7.20.5:
57 | resolution: {integrity: sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==}
58 | engines: {node: '>=6.9.0'}
59 | dev: true
60 |
61 | /@babel/core/7.20.5:
62 | resolution: {integrity: sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==}
63 | engines: {node: '>=6.9.0'}
64 | dependencies:
65 | '@ampproject/remapping': 2.2.0
66 | '@babel/code-frame': 7.18.6
67 | '@babel/generator': 7.20.5
68 | '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.5
69 | '@babel/helper-module-transforms': 7.20.2
70 | '@babel/helpers': 7.20.6
71 | '@babel/parser': 7.20.5
72 | '@babel/template': 7.18.10
73 | '@babel/traverse': 7.20.5
74 | '@babel/types': 7.20.5
75 | convert-source-map: 1.9.0
76 | debug: 4.3.4
77 | gensync: 1.0.0-beta.2
78 | json5: 2.2.2
79 | semver: 6.3.0
80 | transitivePeerDependencies:
81 | - supports-color
82 | dev: true
83 |
84 | /@babel/generator/7.20.5:
85 | resolution: {integrity: sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==}
86 | engines: {node: '>=6.9.0'}
87 | dependencies:
88 | '@babel/types': 7.20.5
89 | '@jridgewell/gen-mapping': 0.3.2
90 | jsesc: 2.5.2
91 | dev: true
92 |
93 | /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.5:
94 | resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==}
95 | engines: {node: '>=6.9.0'}
96 | peerDependencies:
97 | '@babel/core': ^7.0.0
98 | dependencies:
99 | '@babel/compat-data': 7.20.5
100 | '@babel/core': 7.20.5
101 | '@babel/helper-validator-option': 7.18.6
102 | browserslist: 4.21.4
103 | semver: 6.3.0
104 | dev: true
105 |
106 | /@babel/helper-environment-visitor/7.18.9:
107 | resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
108 | engines: {node: '>=6.9.0'}
109 | dev: true
110 |
111 | /@babel/helper-function-name/7.19.0:
112 | resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
113 | engines: {node: '>=6.9.0'}
114 | dependencies:
115 | '@babel/template': 7.18.10
116 | '@babel/types': 7.20.5
117 | dev: true
118 |
119 | /@babel/helper-hoist-variables/7.18.6:
120 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
121 | engines: {node: '>=6.9.0'}
122 | dependencies:
123 | '@babel/types': 7.20.5
124 | dev: true
125 |
126 | /@babel/helper-module-imports/7.16.0:
127 | resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
128 | engines: {node: '>=6.9.0'}
129 | dependencies:
130 | '@babel/types': 7.20.5
131 | dev: true
132 |
133 | /@babel/helper-module-imports/7.18.6:
134 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
135 | engines: {node: '>=6.9.0'}
136 | dependencies:
137 | '@babel/types': 7.20.5
138 | dev: true
139 |
140 | /@babel/helper-module-transforms/7.20.2:
141 | resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==}
142 | engines: {node: '>=6.9.0'}
143 | dependencies:
144 | '@babel/helper-environment-visitor': 7.18.9
145 | '@babel/helper-module-imports': 7.18.6
146 | '@babel/helper-simple-access': 7.20.2
147 | '@babel/helper-split-export-declaration': 7.18.6
148 | '@babel/helper-validator-identifier': 7.19.1
149 | '@babel/template': 7.18.10
150 | '@babel/traverse': 7.20.5
151 | '@babel/types': 7.20.5
152 | transitivePeerDependencies:
153 | - supports-color
154 | dev: true
155 |
156 | /@babel/helper-plugin-utils/7.20.2:
157 | resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
158 | engines: {node: '>=6.9.0'}
159 | dev: true
160 |
161 | /@babel/helper-simple-access/7.20.2:
162 | resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
163 | engines: {node: '>=6.9.0'}
164 | dependencies:
165 | '@babel/types': 7.20.5
166 | dev: true
167 |
168 | /@babel/helper-split-export-declaration/7.18.6:
169 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
170 | engines: {node: '>=6.9.0'}
171 | dependencies:
172 | '@babel/types': 7.20.5
173 | dev: true
174 |
175 | /@babel/helper-string-parser/7.19.4:
176 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
177 | engines: {node: '>=6.9.0'}
178 | dev: true
179 |
180 | /@babel/helper-validator-identifier/7.19.1:
181 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
182 | engines: {node: '>=6.9.0'}
183 | dev: true
184 |
185 | /@babel/helper-validator-option/7.18.6:
186 | resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
187 | engines: {node: '>=6.9.0'}
188 | dev: true
189 |
190 | /@babel/helpers/7.20.6:
191 | resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==}
192 | engines: {node: '>=6.9.0'}
193 | dependencies:
194 | '@babel/template': 7.18.10
195 | '@babel/traverse': 7.20.5
196 | '@babel/types': 7.20.5
197 | transitivePeerDependencies:
198 | - supports-color
199 | dev: true
200 |
201 | /@babel/highlight/7.18.6:
202 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
203 | engines: {node: '>=6.9.0'}
204 | dependencies:
205 | '@babel/helper-validator-identifier': 7.19.1
206 | chalk: 2.4.2
207 | js-tokens: 4.0.0
208 | dev: true
209 |
210 | /@babel/parser/7.20.5:
211 | resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==}
212 | engines: {node: '>=6.0.0'}
213 | hasBin: true
214 | dependencies:
215 | '@babel/types': 7.20.5
216 | dev: true
217 |
218 | /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.5:
219 | resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
220 | engines: {node: '>=6.9.0'}
221 | peerDependencies:
222 | '@babel/core': ^7.0.0-0
223 | dependencies:
224 | '@babel/core': 7.20.5
225 | '@babel/helper-plugin-utils': 7.20.2
226 | dev: true
227 |
228 | /@babel/standalone/7.20.6:
229 | resolution: {integrity: sha512-u5at/CbBLETf7kx2LOY4XdhseD79Y099WZKAOMXeT8qvd9OSR515my2UNBBLY4qIht/Qi9KySeQHQwQwxJN4Sw==}
230 | engines: {node: '>=6.9.0'}
231 | dev: true
232 |
233 | /@babel/template/7.18.10:
234 | resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==}
235 | engines: {node: '>=6.9.0'}
236 | dependencies:
237 | '@babel/code-frame': 7.18.6
238 | '@babel/parser': 7.20.5
239 | '@babel/types': 7.20.5
240 | dev: true
241 |
242 | /@babel/traverse/7.20.5:
243 | resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==}
244 | engines: {node: '>=6.9.0'}
245 | dependencies:
246 | '@babel/code-frame': 7.18.6
247 | '@babel/generator': 7.20.5
248 | '@babel/helper-environment-visitor': 7.18.9
249 | '@babel/helper-function-name': 7.19.0
250 | '@babel/helper-hoist-variables': 7.18.6
251 | '@babel/helper-split-export-declaration': 7.18.6
252 | '@babel/parser': 7.20.5
253 | '@babel/types': 7.20.5
254 | debug: 4.3.4
255 | globals: 11.12.0
256 | transitivePeerDependencies:
257 | - supports-color
258 | dev: true
259 |
260 | /@babel/types/7.20.5:
261 | resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==}
262 | engines: {node: '>=6.9.0'}
263 | dependencies:
264 | '@babel/helper-string-parser': 7.19.4
265 | '@babel/helper-validator-identifier': 7.19.1
266 | to-fast-properties: 2.0.0
267 | dev: true
268 |
269 | /@esbuild/android-arm/0.16.10:
270 | resolution: {integrity: sha512-RmJjQTRrO6VwUWDrzTBLmV4OJZTarYsiepLGlF2rYTVB701hSorPywPGvP6d8HCuuRibyXa5JX4s3jN2kHEtjQ==}
271 | engines: {node: '>=12'}
272 | cpu: [arm]
273 | os: [android]
274 | requiresBuild: true
275 | dev: true
276 | optional: true
277 |
278 | /@esbuild/android-arm64/0.16.10:
279 | resolution: {integrity: sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw==}
280 | engines: {node: '>=12'}
281 | cpu: [arm64]
282 | os: [android]
283 | requiresBuild: true
284 | dev: true
285 | optional: true
286 |
287 | /@esbuild/android-x64/0.16.10:
288 | resolution: {integrity: sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg==}
289 | engines: {node: '>=12'}
290 | cpu: [x64]
291 | os: [android]
292 | requiresBuild: true
293 | dev: true
294 | optional: true
295 |
296 | /@esbuild/darwin-arm64/0.16.10:
297 | resolution: {integrity: sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g==}
298 | engines: {node: '>=12'}
299 | cpu: [arm64]
300 | os: [darwin]
301 | requiresBuild: true
302 | dev: true
303 | optional: true
304 |
305 | /@esbuild/darwin-x64/0.16.10:
306 | resolution: {integrity: sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ==}
307 | engines: {node: '>=12'}
308 | cpu: [x64]
309 | os: [darwin]
310 | requiresBuild: true
311 | dev: true
312 | optional: true
313 |
314 | /@esbuild/freebsd-arm64/0.16.10:
315 | resolution: {integrity: sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ==}
316 | engines: {node: '>=12'}
317 | cpu: [arm64]
318 | os: [freebsd]
319 | requiresBuild: true
320 | dev: true
321 | optional: true
322 |
323 | /@esbuild/freebsd-x64/0.16.10:
324 | resolution: {integrity: sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA==}
325 | engines: {node: '>=12'}
326 | cpu: [x64]
327 | os: [freebsd]
328 | requiresBuild: true
329 | dev: true
330 | optional: true
331 |
332 | /@esbuild/linux-arm/0.16.10:
333 | resolution: {integrity: sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA==}
334 | engines: {node: '>=12'}
335 | cpu: [arm]
336 | os: [linux]
337 | requiresBuild: true
338 | dev: true
339 | optional: true
340 |
341 | /@esbuild/linux-arm64/0.16.10:
342 | resolution: {integrity: sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA==}
343 | engines: {node: '>=12'}
344 | cpu: [arm64]
345 | os: [linux]
346 | requiresBuild: true
347 | dev: true
348 | optional: true
349 |
350 | /@esbuild/linux-ia32/0.16.10:
351 | resolution: {integrity: sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw==}
352 | engines: {node: '>=12'}
353 | cpu: [ia32]
354 | os: [linux]
355 | requiresBuild: true
356 | dev: true
357 | optional: true
358 |
359 | /@esbuild/linux-loong64/0.16.10:
360 | resolution: {integrity: sha512-O7Pd5hLEtTg37NC73pfhUOGTjx/+aXu5YoSq3ahCxcN7Bcr2F47mv+kG5t840thnsEzrv0oB70+LJu3gUgchvg==}
361 | engines: {node: '>=12'}
362 | cpu: [loong64]
363 | os: [linux]
364 | requiresBuild: true
365 | dev: true
366 | optional: true
367 |
368 | /@esbuild/linux-mips64el/0.16.10:
369 | resolution: {integrity: sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA==}
370 | engines: {node: '>=12'}
371 | cpu: [mips64el]
372 | os: [linux]
373 | requiresBuild: true
374 | dev: true
375 | optional: true
376 |
377 | /@esbuild/linux-ppc64/0.16.10:
378 | resolution: {integrity: sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg==}
379 | engines: {node: '>=12'}
380 | cpu: [ppc64]
381 | os: [linux]
382 | requiresBuild: true
383 | dev: true
384 | optional: true
385 |
386 | /@esbuild/linux-riscv64/0.16.10:
387 | resolution: {integrity: sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw==}
388 | engines: {node: '>=12'}
389 | cpu: [riscv64]
390 | os: [linux]
391 | requiresBuild: true
392 | dev: true
393 | optional: true
394 |
395 | /@esbuild/linux-s390x/0.16.10:
396 | resolution: {integrity: sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw==}
397 | engines: {node: '>=12'}
398 | cpu: [s390x]
399 | os: [linux]
400 | requiresBuild: true
401 | dev: true
402 | optional: true
403 |
404 | /@esbuild/linux-x64/0.16.10:
405 | resolution: {integrity: sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA==}
406 | engines: {node: '>=12'}
407 | cpu: [x64]
408 | os: [linux]
409 | requiresBuild: true
410 | dev: true
411 | optional: true
412 |
413 | /@esbuild/netbsd-x64/0.16.10:
414 | resolution: {integrity: sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA==}
415 | engines: {node: '>=12'}
416 | cpu: [x64]
417 | os: [netbsd]
418 | requiresBuild: true
419 | dev: true
420 | optional: true
421 |
422 | /@esbuild/openbsd-x64/0.16.10:
423 | resolution: {integrity: sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA==}
424 | engines: {node: '>=12'}
425 | cpu: [x64]
426 | os: [openbsd]
427 | requiresBuild: true
428 | dev: true
429 | optional: true
430 |
431 | /@esbuild/sunos-x64/0.16.10:
432 | resolution: {integrity: sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg==}
433 | engines: {node: '>=12'}
434 | cpu: [x64]
435 | os: [sunos]
436 | requiresBuild: true
437 | dev: true
438 | optional: true
439 |
440 | /@esbuild/win32-arm64/0.16.10:
441 | resolution: {integrity: sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw==}
442 | engines: {node: '>=12'}
443 | cpu: [arm64]
444 | os: [win32]
445 | requiresBuild: true
446 | dev: true
447 | optional: true
448 |
449 | /@esbuild/win32-ia32/0.16.10:
450 | resolution: {integrity: sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg==}
451 | engines: {node: '>=12'}
452 | cpu: [ia32]
453 | os: [win32]
454 | requiresBuild: true
455 | dev: true
456 | optional: true
457 |
458 | /@esbuild/win32-x64/0.16.10:
459 | resolution: {integrity: sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw==}
460 | engines: {node: '>=12'}
461 | cpu: [x64]
462 | os: [win32]
463 | requiresBuild: true
464 | dev: true
465 | optional: true
466 |
467 | /@jridgewell/gen-mapping/0.1.1:
468 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
469 | engines: {node: '>=6.0.0'}
470 | dependencies:
471 | '@jridgewell/set-array': 1.1.2
472 | '@jridgewell/sourcemap-codec': 1.4.14
473 | dev: true
474 |
475 | /@jridgewell/gen-mapping/0.3.2:
476 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
477 | engines: {node: '>=6.0.0'}
478 | dependencies:
479 | '@jridgewell/set-array': 1.1.2
480 | '@jridgewell/sourcemap-codec': 1.4.14
481 | '@jridgewell/trace-mapping': 0.3.17
482 | dev: true
483 |
484 | /@jridgewell/resolve-uri/3.1.0:
485 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
486 | engines: {node: '>=6.0.0'}
487 | dev: true
488 |
489 | /@jridgewell/set-array/1.1.2:
490 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
491 | engines: {node: '>=6.0.0'}
492 | dev: true
493 |
494 | /@jridgewell/source-map/0.3.2:
495 | resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
496 | dependencies:
497 | '@jridgewell/gen-mapping': 0.3.2
498 | '@jridgewell/trace-mapping': 0.3.17
499 | dev: true
500 |
501 | /@jridgewell/sourcemap-codec/1.4.14:
502 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
503 | dev: true
504 |
505 | /@jridgewell/trace-mapping/0.3.17:
506 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
507 | dependencies:
508 | '@jridgewell/resolve-uri': 3.1.0
509 | '@jridgewell/sourcemap-codec': 1.4.14
510 | dev: true
511 |
512 | /@nodelib/fs.scandir/2.1.5:
513 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
514 | engines: {node: '>= 8'}
515 | dependencies:
516 | '@nodelib/fs.stat': 2.0.5
517 | run-parallel: 1.2.0
518 | dev: true
519 |
520 | /@nodelib/fs.stat/2.0.5:
521 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
522 | engines: {node: '>= 8'}
523 | dev: true
524 |
525 | /@nodelib/fs.walk/1.2.8:
526 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
527 | engines: {node: '>= 8'}
528 | dependencies:
529 | '@nodelib/fs.scandir': 2.1.5
530 | fastq: 1.14.0
531 | dev: true
532 |
533 | /@vitejs/plugin-legacy/3.0.1_terser@5.16.1+vite@4.0.2:
534 | resolution: {integrity: sha512-XCtEjxoR3rmy000ujYRBp5kggWqzHz9+F20/yIMUWOzbvu0+KW1e14Fvb8h7SpNn+bfjGW1RiAs1Vrgb7Js+iQ==}
535 | engines: {node: ^14.18.0 || >=16.0.0}
536 | peerDependencies:
537 | terser: ^5.4.0
538 | vite: ^4.0.0
539 | dependencies:
540 | '@babel/standalone': 7.20.6
541 | core-js: 3.26.1
542 | magic-string: 0.27.0
543 | regenerator-runtime: 0.13.11
544 | systemjs: 6.13.0
545 | terser: 5.16.1
546 | vite: 4.0.2_terser@5.16.1
547 | dev: true
548 |
549 | /acorn-node/1.8.2:
550 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
551 | dependencies:
552 | acorn: 7.4.1
553 | acorn-walk: 7.2.0
554 | xtend: 4.0.2
555 | dev: true
556 |
557 | /acorn-walk/7.2.0:
558 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
559 | engines: {node: '>=0.4.0'}
560 | dev: true
561 |
562 | /acorn/7.4.1:
563 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
564 | engines: {node: '>=0.4.0'}
565 | hasBin: true
566 | dev: true
567 |
568 | /acorn/8.8.1:
569 | resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
570 | engines: {node: '>=0.4.0'}
571 | hasBin: true
572 | dev: true
573 |
574 | /ansi-styles/3.2.1:
575 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
576 | engines: {node: '>=4'}
577 | dependencies:
578 | color-convert: 1.9.3
579 | dev: true
580 |
581 | /anymatch/3.1.3:
582 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
583 | engines: {node: '>= 8'}
584 | dependencies:
585 | normalize-path: 3.0.0
586 | picomatch: 2.3.1
587 | dev: true
588 |
589 | /arg/5.0.2:
590 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
591 | dev: true
592 |
593 | /autoprefixer/10.4.13_postcss@8.4.20:
594 | resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==}
595 | engines: {node: ^10 || ^12 || >=14}
596 | hasBin: true
597 | peerDependencies:
598 | postcss: ^8.1.0
599 | dependencies:
600 | browserslist: 4.21.4
601 | caniuse-lite: 1.0.30001439
602 | fraction.js: 4.2.0
603 | normalize-range: 0.1.2
604 | picocolors: 1.0.0
605 | postcss: 8.4.20
606 | postcss-value-parser: 4.2.0
607 | dev: true
608 |
609 | /babel-plugin-jsx-dom-expressions/0.35.6_@babel+core@7.20.5:
610 | resolution: {integrity: sha512-z8VBym+Scol38MiR97iqQGsANjhsDqscRRemk+po+z3TWKV/fb9kux/gdKOJJSC/ARyUL3HExBFVtr+Efd24uw==}
611 | peerDependencies:
612 | '@babel/core': ^7.0.0
613 | dependencies:
614 | '@babel/core': 7.20.5
615 | '@babel/helper-module-imports': 7.16.0
616 | '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.5
617 | '@babel/types': 7.20.5
618 | html-entities: 2.3.2
619 | dev: true
620 |
621 | /babel-plugin-transform-rename-import/2.3.0:
622 | resolution: {integrity: sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ==}
623 | dev: true
624 |
625 | /binary-extensions/2.2.0:
626 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
627 | engines: {node: '>=8'}
628 | dev: true
629 |
630 | /braces/3.0.2:
631 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
632 | engines: {node: '>=8'}
633 | dependencies:
634 | fill-range: 7.0.1
635 | dev: true
636 |
637 | /browserslist/4.21.4:
638 | resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
639 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
640 | hasBin: true
641 | dependencies:
642 | caniuse-lite: 1.0.30001439
643 | electron-to-chromium: 1.4.284
644 | node-releases: 2.0.8
645 | update-browserslist-db: 1.0.10_browserslist@4.21.4
646 | dev: true
647 |
648 | /buffer-from/1.1.2:
649 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
650 | dev: true
651 |
652 | /camelcase-css/2.0.1:
653 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
654 | engines: {node: '>= 6'}
655 | dev: true
656 |
657 | /caniuse-lite/1.0.30001439:
658 | resolution: {integrity: sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==}
659 | dev: true
660 |
661 | /chalk/2.4.2:
662 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
663 | engines: {node: '>=4'}
664 | dependencies:
665 | ansi-styles: 3.2.1
666 | escape-string-regexp: 1.0.5
667 | supports-color: 5.5.0
668 | dev: true
669 |
670 | /chokidar/3.5.3:
671 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
672 | engines: {node: '>= 8.10.0'}
673 | dependencies:
674 | anymatch: 3.1.3
675 | braces: 3.0.2
676 | glob-parent: 5.1.2
677 | is-binary-path: 2.1.0
678 | is-glob: 4.0.3
679 | normalize-path: 3.0.0
680 | readdirp: 3.6.0
681 | optionalDependencies:
682 | fsevents: 2.3.2
683 | dev: true
684 |
685 | /cobe/0.6.3:
686 | resolution: {integrity: sha512-WHr7X4o1ym94GZ96h7b1pNemZJacbOzd02dZtnVwuC4oWBaLg96PBmp2rIS1SAhUDhhC/QyS9WEqkpZIs/ZBTg==}
687 | dependencies:
688 | phenomenon: 1.6.0
689 | dev: false
690 |
691 | /color-convert/1.9.3:
692 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
693 | dependencies:
694 | color-name: 1.1.3
695 | dev: true
696 |
697 | /color-name/1.1.3:
698 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
699 | dev: true
700 |
701 | /color-name/1.1.4:
702 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
703 | dev: true
704 |
705 | /commander/2.20.3:
706 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
707 | dev: true
708 |
709 | /convert-source-map/1.9.0:
710 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
711 | dev: true
712 |
713 | /core-js/3.26.1:
714 | resolution: {integrity: sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==}
715 | requiresBuild: true
716 | dev: true
717 |
718 | /cssesc/3.0.0:
719 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
720 | engines: {node: '>=4'}
721 | hasBin: true
722 | dev: true
723 |
724 | /csstype/3.1.1:
725 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
726 | dev: true
727 |
728 | /debug/4.3.4:
729 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
730 | engines: {node: '>=6.0'}
731 | peerDependencies:
732 | supports-color: '*'
733 | peerDependenciesMeta:
734 | supports-color:
735 | optional: true
736 | dependencies:
737 | ms: 2.1.2
738 | dev: true
739 |
740 | /defined/1.0.1:
741 | resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==}
742 | dev: true
743 |
744 | /detective/5.2.1:
745 | resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
746 | engines: {node: '>=0.8.0'}
747 | hasBin: true
748 | dependencies:
749 | acorn-node: 1.8.2
750 | defined: 1.0.1
751 | minimist: 1.2.7
752 | dev: true
753 |
754 | /devalue/2.0.1:
755 | resolution: {integrity: sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q==}
756 | dev: true
757 |
758 | /didyoumean/1.2.2:
759 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
760 | dev: true
761 |
762 | /dlv/1.1.3:
763 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
764 | dev: true
765 |
766 | /dom-expressions/0.35.7_csstype@3.1.1:
767 | resolution: {integrity: sha512-55CgA7QKlHI9dNwNAztgD9pzfj30EabAvjGI0JQh26k9D+3lBTcPJ3bOm5MOEs2i/Wk1kDte1ar+tjHhCRu0LA==}
768 | peerDependencies:
769 | csstype: ^3.0
770 | dependencies:
771 | babel-plugin-transform-rename-import: 2.3.0
772 | csstype: 3.1.1
773 | devalue: 2.0.1
774 | dev: true
775 |
776 | /electron-to-chromium/1.4.284:
777 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
778 | dev: true
779 |
780 | /esbuild/0.16.10:
781 | resolution: {integrity: sha512-z5dIViHoVnw2l+NCJ3zj5behdXjYvXne9gL18OOivCadXDUhyDkeSvEtLcGVAJW2fNmh33TDUpsi704XYlDodw==}
782 | engines: {node: '>=12'}
783 | hasBin: true
784 | requiresBuild: true
785 | optionalDependencies:
786 | '@esbuild/android-arm': 0.16.10
787 | '@esbuild/android-arm64': 0.16.10
788 | '@esbuild/android-x64': 0.16.10
789 | '@esbuild/darwin-arm64': 0.16.10
790 | '@esbuild/darwin-x64': 0.16.10
791 | '@esbuild/freebsd-arm64': 0.16.10
792 | '@esbuild/freebsd-x64': 0.16.10
793 | '@esbuild/linux-arm': 0.16.10
794 | '@esbuild/linux-arm64': 0.16.10
795 | '@esbuild/linux-ia32': 0.16.10
796 | '@esbuild/linux-loong64': 0.16.10
797 | '@esbuild/linux-mips64el': 0.16.10
798 | '@esbuild/linux-ppc64': 0.16.10
799 | '@esbuild/linux-riscv64': 0.16.10
800 | '@esbuild/linux-s390x': 0.16.10
801 | '@esbuild/linux-x64': 0.16.10
802 | '@esbuild/netbsd-x64': 0.16.10
803 | '@esbuild/openbsd-x64': 0.16.10
804 | '@esbuild/sunos-x64': 0.16.10
805 | '@esbuild/win32-arm64': 0.16.10
806 | '@esbuild/win32-ia32': 0.16.10
807 | '@esbuild/win32-x64': 0.16.10
808 | dev: true
809 |
810 | /escalade/3.1.1:
811 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
812 | engines: {node: '>=6'}
813 | dev: true
814 |
815 | /escape-string-regexp/1.0.5:
816 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
817 | engines: {node: '>=0.8.0'}
818 | dev: true
819 |
820 | /fast-glob/3.2.12:
821 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
822 | engines: {node: '>=8.6.0'}
823 | dependencies:
824 | '@nodelib/fs.stat': 2.0.5
825 | '@nodelib/fs.walk': 1.2.8
826 | glob-parent: 5.1.2
827 | merge2: 1.4.1
828 | micromatch: 4.0.5
829 | dev: true
830 |
831 | /fastq/1.14.0:
832 | resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==}
833 | dependencies:
834 | reusify: 1.0.4
835 | dev: true
836 |
837 | /fill-range/7.0.1:
838 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
839 | engines: {node: '>=8'}
840 | dependencies:
841 | to-regex-range: 5.0.1
842 | dev: true
843 |
844 | /fraction.js/4.2.0:
845 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
846 | dev: true
847 |
848 | /fsevents/2.3.2:
849 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
850 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
851 | os: [darwin]
852 | requiresBuild: true
853 | dev: true
854 | optional: true
855 |
856 | /function-bind/1.1.1:
857 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
858 | dev: true
859 |
860 | /gensync/1.0.0-beta.2:
861 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
862 | engines: {node: '>=6.9.0'}
863 | dev: true
864 |
865 | /glob-parent/5.1.2:
866 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
867 | engines: {node: '>= 6'}
868 | dependencies:
869 | is-glob: 4.0.3
870 | dev: true
871 |
872 | /glob-parent/6.0.2:
873 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
874 | engines: {node: '>=10.13.0'}
875 | dependencies:
876 | is-glob: 4.0.3
877 | dev: true
878 |
879 | /globals/11.12.0:
880 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
881 | engines: {node: '>=4'}
882 | dev: true
883 |
884 | /has-flag/3.0.0:
885 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
886 | engines: {node: '>=4'}
887 | dev: true
888 |
889 | /has/1.0.3:
890 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
891 | engines: {node: '>= 0.4.0'}
892 | dependencies:
893 | function-bind: 1.1.1
894 | dev: true
895 |
896 | /html-entities/2.3.2:
897 | resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==}
898 | dev: true
899 |
900 | /is-binary-path/2.1.0:
901 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
902 | engines: {node: '>=8'}
903 | dependencies:
904 | binary-extensions: 2.2.0
905 | dev: true
906 |
907 | /is-core-module/2.11.0:
908 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
909 | dependencies:
910 | has: 1.0.3
911 | dev: true
912 |
913 | /is-extglob/2.1.1:
914 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
915 | engines: {node: '>=0.10.0'}
916 | dev: true
917 |
918 | /is-glob/4.0.3:
919 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
920 | engines: {node: '>=0.10.0'}
921 | dependencies:
922 | is-extglob: 2.1.1
923 | dev: true
924 |
925 | /is-number/7.0.0:
926 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
927 | engines: {node: '>=0.12.0'}
928 | dev: true
929 |
930 | /js-tokens/4.0.0:
931 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
932 | dev: true
933 |
934 | /jsesc/2.5.2:
935 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
936 | engines: {node: '>=4'}
937 | hasBin: true
938 | dev: true
939 |
940 | /json5/2.2.2:
941 | resolution: {integrity: sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==}
942 | engines: {node: '>=6'}
943 | hasBin: true
944 | dev: true
945 |
946 | /kaboom/2000.2.10:
947 | resolution: {integrity: sha512-OHWdRuRMNkTkpO0/1R4ljS4+vpPtf6PvN+S0WTe+PkPB6Z61rmunw4SKTQDkrCt7dDzEIZTnK1G6s7rttd61Bw==}
948 | dev: false
949 |
950 | /lilconfig/2.0.6:
951 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
952 | engines: {node: '>=10'}
953 | dev: true
954 |
955 | /magic-string/0.27.0:
956 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
957 | engines: {node: '>=12'}
958 | dependencies:
959 | '@jridgewell/sourcemap-codec': 1.4.14
960 | dev: true
961 |
962 | /merge2/1.4.1:
963 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
964 | engines: {node: '>= 8'}
965 | dev: true
966 |
967 | /micromatch/4.0.5:
968 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
969 | engines: {node: '>=8.6'}
970 | dependencies:
971 | braces: 3.0.2
972 | picomatch: 2.3.1
973 | dev: true
974 |
975 | /minimist/1.2.7:
976 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
977 | dev: true
978 |
979 | /ms/2.1.2:
980 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
981 | dev: true
982 |
983 | /nanoid/3.3.4:
984 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
985 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
986 | hasBin: true
987 | dev: true
988 |
989 | /node-releases/2.0.8:
990 | resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==}
991 | dev: true
992 |
993 | /normalize-path/3.0.0:
994 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
995 | engines: {node: '>=0.10.0'}
996 | dev: true
997 |
998 | /normalize-range/0.1.2:
999 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1000 | engines: {node: '>=0.10.0'}
1001 | dev: true
1002 |
1003 | /object-hash/3.0.0:
1004 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1005 | engines: {node: '>= 6'}
1006 | dev: true
1007 |
1008 | /path-parse/1.0.7:
1009 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1010 | dev: true
1011 |
1012 | /phenomenon/1.6.0:
1013 | resolution: {integrity: sha512-7h9/fjPD3qNlgggzm88cY58l9sudZ6Ey+UmZsizfhtawO6E3srZQXywaNm2lBwT72TbpHYRPy7ytIHeBUD/G0A==}
1014 | dev: false
1015 |
1016 | /picocolors/1.0.0:
1017 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1018 | dev: true
1019 |
1020 | /picomatch/2.3.1:
1021 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1022 | engines: {node: '>=8.6'}
1023 | dev: true
1024 |
1025 | /pify/2.3.0:
1026 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1027 | engines: {node: '>=0.10.0'}
1028 | dev: true
1029 |
1030 | /postcss-import/14.1.0_postcss@8.4.20:
1031 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
1032 | engines: {node: '>=10.0.0'}
1033 | peerDependencies:
1034 | postcss: ^8.0.0
1035 | dependencies:
1036 | postcss: 8.4.20
1037 | postcss-value-parser: 4.2.0
1038 | read-cache: 1.0.0
1039 | resolve: 1.22.1
1040 | dev: true
1041 |
1042 | /postcss-js/4.0.0_postcss@8.4.20:
1043 | resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
1044 | engines: {node: ^12 || ^14 || >= 16}
1045 | peerDependencies:
1046 | postcss: ^8.3.3
1047 | dependencies:
1048 | camelcase-css: 2.0.1
1049 | postcss: 8.4.20
1050 | dev: true
1051 |
1052 | /postcss-load-config/3.1.4_postcss@8.4.20:
1053 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
1054 | engines: {node: '>= 10'}
1055 | peerDependencies:
1056 | postcss: '>=8.0.9'
1057 | ts-node: '>=9.0.0'
1058 | peerDependenciesMeta:
1059 | postcss:
1060 | optional: true
1061 | ts-node:
1062 | optional: true
1063 | dependencies:
1064 | lilconfig: 2.0.6
1065 | postcss: 8.4.20
1066 | yaml: 1.10.2
1067 | dev: true
1068 |
1069 | /postcss-nested/6.0.0_postcss@8.4.20:
1070 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
1071 | engines: {node: '>=12.0'}
1072 | peerDependencies:
1073 | postcss: ^8.2.14
1074 | dependencies:
1075 | postcss: 8.4.20
1076 | postcss-selector-parser: 6.0.11
1077 | dev: true
1078 |
1079 | /postcss-selector-parser/6.0.11:
1080 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==}
1081 | engines: {node: '>=4'}
1082 | dependencies:
1083 | cssesc: 3.0.0
1084 | util-deprecate: 1.0.2
1085 | dev: true
1086 |
1087 | /postcss-value-parser/4.2.0:
1088 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1089 | dev: true
1090 |
1091 | /postcss/8.4.20:
1092 | resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==}
1093 | engines: {node: ^10 || ^12 || >=14}
1094 | dependencies:
1095 | nanoid: 3.3.4
1096 | picocolors: 1.0.0
1097 | source-map-js: 1.0.2
1098 | dev: true
1099 |
1100 | /powerglitch/2.3.2:
1101 | resolution: {integrity: sha512-nRKMttDRu0aOeu5/rUm0CFvwuaE3b7Klujjn0AIgoLUim0E2+4YpXZ76+2t9cJERQuFZ+7D36ywG7GLtRUSyMQ==}
1102 | dev: false
1103 |
1104 | /queue-microtask/1.2.3:
1105 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1106 | dev: true
1107 |
1108 | /quick-lru/5.1.1:
1109 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
1110 | engines: {node: '>=10'}
1111 | dev: true
1112 |
1113 | /read-cache/1.0.0:
1114 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1115 | dependencies:
1116 | pify: 2.3.0
1117 | dev: true
1118 |
1119 | /readdirp/3.6.0:
1120 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1121 | engines: {node: '>=8.10.0'}
1122 | dependencies:
1123 | picomatch: 2.3.1
1124 | dev: true
1125 |
1126 | /regenerator-runtime/0.13.11:
1127 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
1128 | dev: true
1129 |
1130 | /resolve/1.22.1:
1131 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
1132 | hasBin: true
1133 | dependencies:
1134 | is-core-module: 2.11.0
1135 | path-parse: 1.0.7
1136 | supports-preserve-symlinks-flag: 1.0.0
1137 | dev: true
1138 |
1139 | /reusify/1.0.4:
1140 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1141 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1142 | dev: true
1143 |
1144 | /rollup/3.7.5:
1145 | resolution: {integrity: sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==}
1146 | engines: {node: '>=14.18.0', npm: '>=8.0.0'}
1147 | hasBin: true
1148 | optionalDependencies:
1149 | fsevents: 2.3.2
1150 | dev: true
1151 |
1152 | /run-parallel/1.2.0:
1153 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1154 | dependencies:
1155 | queue-microtask: 1.2.3
1156 | dev: true
1157 |
1158 | /semver/6.3.0:
1159 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1160 | hasBin: true
1161 | dev: true
1162 |
1163 | /source-map-js/1.0.2:
1164 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1165 | engines: {node: '>=0.10.0'}
1166 | dev: true
1167 |
1168 | /source-map-support/0.5.21:
1169 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
1170 | dependencies:
1171 | buffer-from: 1.1.2
1172 | source-map: 0.6.1
1173 | dev: true
1174 |
1175 | /source-map/0.6.1:
1176 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1177 | engines: {node: '>=0.10.0'}
1178 | dev: true
1179 |
1180 | /supports-color/5.5.0:
1181 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1182 | engines: {node: '>=4'}
1183 | dependencies:
1184 | has-flag: 3.0.0
1185 | dev: true
1186 |
1187 | /supports-preserve-symlinks-flag/1.0.0:
1188 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1189 | engines: {node: '>= 0.4'}
1190 | dev: true
1191 |
1192 | /systemjs/6.13.0:
1193 | resolution: {integrity: sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==}
1194 | dev: true
1195 |
1196 | /tailwindcss/3.2.4_postcss@8.4.20:
1197 | resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==}
1198 | engines: {node: '>=12.13.0'}
1199 | hasBin: true
1200 | peerDependencies:
1201 | postcss: ^8.0.9
1202 | dependencies:
1203 | arg: 5.0.2
1204 | chokidar: 3.5.3
1205 | color-name: 1.1.4
1206 | detective: 5.2.1
1207 | didyoumean: 1.2.2
1208 | dlv: 1.1.3
1209 | fast-glob: 3.2.12
1210 | glob-parent: 6.0.2
1211 | is-glob: 4.0.3
1212 | lilconfig: 2.0.6
1213 | micromatch: 4.0.5
1214 | normalize-path: 3.0.0
1215 | object-hash: 3.0.0
1216 | picocolors: 1.0.0
1217 | postcss: 8.4.20
1218 | postcss-import: 14.1.0_postcss@8.4.20
1219 | postcss-js: 4.0.0_postcss@8.4.20
1220 | postcss-load-config: 3.1.4_postcss@8.4.20
1221 | postcss-nested: 6.0.0_postcss@8.4.20
1222 | postcss-selector-parser: 6.0.11
1223 | postcss-value-parser: 4.2.0
1224 | quick-lru: 5.1.1
1225 | resolve: 1.22.1
1226 | transitivePeerDependencies:
1227 | - ts-node
1228 | dev: true
1229 |
1230 | /terser/5.16.1:
1231 | resolution: {integrity: sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==}
1232 | engines: {node: '>=10'}
1233 | hasBin: true
1234 | dependencies:
1235 | '@jridgewell/source-map': 0.3.2
1236 | acorn: 8.8.1
1237 | commander: 2.20.3
1238 | source-map-support: 0.5.21
1239 | dev: true
1240 |
1241 | /to-fast-properties/2.0.0:
1242 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
1243 | engines: {node: '>=4'}
1244 | dev: true
1245 |
1246 | /to-regex-range/5.0.1:
1247 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1248 | engines: {node: '>=8.0'}
1249 | dependencies:
1250 | is-number: 7.0.0
1251 | dev: true
1252 |
1253 | /update-browserslist-db/1.0.10_browserslist@4.21.4:
1254 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
1255 | hasBin: true
1256 | peerDependencies:
1257 | browserslist: '>= 4.21.0'
1258 | dependencies:
1259 | browserslist: 4.21.4
1260 | escalade: 3.1.1
1261 | picocolors: 1.0.0
1262 | dev: true
1263 |
1264 | /util-deprecate/1.0.2:
1265 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1266 | dev: true
1267 |
1268 | /vite-plugin-babel/1.1.2_l5uoowfi6skwxxfmy3fnyxsoou:
1269 | resolution: {integrity: sha512-NPqUSzxzdPo1UyZGvL1KOIYy5R1T9+Af6cZ9Qw/f7tepjp6FSmx4SbK6eZ9xttEnSsdYj3IJmXwlU8PYeZstWw==}
1270 | peerDependencies:
1271 | '@babel/core': ^7.0.0
1272 | vite: ^2.7.0 || ^3.0.0
1273 | dependencies:
1274 | '@babel/core': 7.20.5
1275 | vite: 4.0.2_terser@5.16.1
1276 | dev: true
1277 |
1278 | /vite/4.0.2_terser@5.16.1:
1279 | resolution: {integrity: sha512-QJaY3R+tFlTagH0exVqbgkkw45B+/bXVBzF2ZD1KB5Z8RiAoiKo60vSUf6/r4c2Vh9jfGBKM4oBI9b4/1ZJYng==}
1280 | engines: {node: ^14.18.0 || >=16.0.0}
1281 | hasBin: true
1282 | peerDependencies:
1283 | '@types/node': '>= 14'
1284 | less: '*'
1285 | sass: '*'
1286 | stylus: '*'
1287 | sugarss: '*'
1288 | terser: ^5.4.0
1289 | peerDependenciesMeta:
1290 | '@types/node':
1291 | optional: true
1292 | less:
1293 | optional: true
1294 | sass:
1295 | optional: true
1296 | stylus:
1297 | optional: true
1298 | sugarss:
1299 | optional: true
1300 | terser:
1301 | optional: true
1302 | dependencies:
1303 | esbuild: 0.16.10
1304 | postcss: 8.4.20
1305 | resolve: 1.22.1
1306 | rollup: 3.7.5
1307 | terser: 5.16.1
1308 | optionalDependencies:
1309 | fsevents: 2.3.2
1310 | dev: true
1311 |
1312 | /xtend/4.0.2:
1313 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
1314 | engines: {node: '>=0.4'}
1315 | dev: true
1316 |
1317 | /yaml/1.10.2:
1318 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
1319 | engines: {node: '>= 6'}
1320 | dev: true
1321 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/barcode-blaster.json:
--------------------------------------------------------------------------------
1 | { "kill": false }
2 |
--------------------------------------------------------------------------------
/public/capy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aidenybai/vhs/91efa15882989d7828216c93d3946660bf1c3062/public/capy.gif
--------------------------------------------------------------------------------
/public/effect.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aidenybai/vhs/91efa15882989d7828216c93d3946660bf1c3062/public/effect.webm
--------------------------------------------------------------------------------
/public/head.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aidenybai/vhs/91efa15882989d7828216c93d3946660bf1c3062/public/head.jpeg
--------------------------------------------------------------------------------
/public/thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aidenybai/vhs/91efa15882989d7828216c93d3946660bf1c3062/public/thumb.png
--------------------------------------------------------------------------------
/public/vcr.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aidenybai/vhs/91efa15882989d7828216c93d3946660bf1c3062/public/vcr.ttf
--------------------------------------------------------------------------------
/src/404.jsx:
--------------------------------------------------------------------------------
1 | import { PowerGlitch } from 'powerglitch';
2 |
3 | PowerGlitch.glitch('body');
--------------------------------------------------------------------------------
/src/data.jsx:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 |
3 | export const data = {
4 | projects: [
5 | {
6 | name: 'Million.js',
7 | description: (
8 |
9 | Make React 70% Faster. The Virtual DOM Replacement For React{' '}
10 |
11 | 13.6k+ GitHub stars.
12 |
13 |
14 | ),
15 | link: 'https://million.dev',
16 | },
17 | {
18 | name: 'Lucia.js',
19 | description: (
20 |
21 | 3kb JavaScript library to augment HTML with JavaScript
22 | sprinkles.{' '}
23 |
24 | 700+ GitHub stars.
25 |
26 |
27 | ),
28 | link: 'https://lucia.js.org',
29 | },
30 | {
31 | name: 'KBowl',
32 | description: (
33 |
34 | Virtual Knowledge Bowl events for{' '}
35 |
36 | 30+ schools, 40+ teachers and 1k+ students.
37 |
38 |
39 | ),
40 | link: 'https://kbowl.aidenybai.com',
41 | },
42 | ],
43 | work: [
44 | {
45 | name: 'Dimension',
46 | description: (
47 |
48 | Spring 2023 Software Engineering role, build fast user
49 | interfaces for open-source projects.
50 |
51 | ),
52 | link: 'https://dimension.dev',
53 | },
54 | {
55 | name: 'Wyze Labs',
56 | description: (
57 |
58 | Summer 2022 Software Engineering Internship, built web
59 | solutions for{' '}
60 |
61 | 3M+ users.
62 |
63 |
64 | ),
65 | link: 'https://wyze.com',
66 | },
67 | {
68 | name: 'Remake',
69 | description:
70 | 'Summer 2021 Software Engineering Internship, refactored web framework performance.',
71 | link: 'https://remaketheweb.com',
72 | },
73 | ],
74 | awards: [
75 | {
76 | name: 'ACM SAC 2023',
77 | description: (
78 |
79 | Published Million.js, with a{' '}
80 |
81 | <25% acceptance rate
82 | {' '}
83 | internationally (ranked{' '}
84 |
85 | Best Paper
86 | {' '}
87 | (top 2.5%))
88 |
89 | ),
90 | link: 'https://www.sigapp.org/sac/sac2023/',
91 | },
92 | {
93 | name: 'ISEF 2022',
94 | description: (
95 |
96 |
97 | 3rd place
98 | {' '}
99 | in Systems Software with Million.js out of 1.8k+
100 | finalists.
101 |
102 | ),
103 | link: 'https://www.societyforscience.org/press-release/regeneron-isef-full-awards-2022/#:~:text=SOFT037',
104 | },
105 | {
106 | name: 'ISEF 2021',
107 | description: (
108 |
109 |
110 | 2nd place
111 | {' '}
112 | in Systems Software with Lucia.js out of 1.8k+
113 | finalists.
114 |
115 | ),
116 | link: 'https://www.societyforscience.org/press-release/2021-regeneron-isef-grand-awards/#:~:text=SOFT031',
117 | },
118 | ],
119 | };
120 |
--------------------------------------------------------------------------------
/src/dvd.jsx:
--------------------------------------------------------------------------------
1 | export const runDvd = (dvd, cb) => {
2 | let x = 0;
3 | let y = 0;
4 | let dirX = 1;
5 | let dirY = 1;
6 | let speed = 4;
7 | const dvdWidth = dvd.clientWidth;
8 | const dvdHeight = dvd.clientHeight;
9 | dvd.addEventListener('mouseover', () => {
10 | speed += 0.25;
11 | });
12 |
13 | function getNewRandomColor() {
14 | return `${Math.floor(Math.random() * (360 - 0 + 1) + 0)}deg`;
15 | }
16 | function animate() {
17 | const screenHeight = document.body.clientHeight;
18 | const screenWidth = document.body.clientWidth;
19 |
20 | if (y + dvdHeight >= screenHeight || y < 0) {
21 | dirY *= -1;
22 | dvd.style.filter = `hue-rotate(${getNewRandomColor()})`;
23 | cb();
24 | }
25 | if (x + dvdWidth >= screenWidth || x < 0) {
26 | dirX *= -1;
27 | dvd.style.filter = `hue-rotate(${getNewRandomColor()})`;
28 | cb();
29 | }
30 | x += dirX * speed;
31 | y += dirY * speed;
32 | dvd.style.animation = `spin ${16 / speed}s linear infinite`;
33 | dvd.style.left = `${x}px`;
34 | dvd.style.top = `${y}px`;
35 | window.requestAnimationFrame(animate);
36 | }
37 |
38 | window.requestAnimationFrame(animate);
39 | };
40 |
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 |
3 | import { data } from './data.jsx';
4 | import { runDvd } from './dvd.jsx';
5 | import { PowerGlitch } from 'powerglitch';
6 |
7 | const root = document.getElementById('root');
8 | const REDUCE_MOTION = window.matchMedia(
9 | '(prefers-reduced-motion: reduce)'
10 | ).matches;
11 | const audio = new Audio('/effect.webm');
12 |
13 | let timerInterval;
14 | const createTimer = (timer, progress) => {
15 | const reformat = (num) => `0${num}`.slice(-2);
16 | let time = 0;
17 |
18 | timerInterval = setInterval(() => {
19 | time += 1;
20 | const hours = Math.floor(time / 3600);
21 | const minutes = reformat(Math.floor((time % 3600) / 60));
22 | const seconds = reformat(Math.floor(time % 60));
23 |
24 | let payload = `${hours}:${minutes}:${seconds}`;
25 |
26 | if (progress) {
27 | let baseProgress = '-------'.split('');
28 | baseProgress[time % 7] = '█';
29 | payload = `●${baseProgress.join('')}● ${payload}`;
30 | }
31 |
32 | timer.textContent = payload;
33 | }, 1000);
34 | };
35 | const createSpinner = (spinner, eject) => {
36 | const time = ['|', '/', '-', '\\'];
37 | let i = 0;
38 |
39 | setInterval(() => {
40 | i += 1;
41 |
42 | let payload = `${time[i % time.length]}`;
43 | if (eject) payload += ' EJECT ⏏';
44 | spinner.textContent = payload;
45 | }, 1);
46 | };
47 |
48 | const Link = (props) => {
49 | return (
50 |
54 | {props.children}
55 |
56 | );
57 | };
58 |
59 | const Header = () => {
60 | return (
61 |
62 |
63 |
70 | aiden bai
71 |
72 |
73 | i'm building Same to
74 | allow anyone to build fullstack web apps by prompting.
75 |
76 |
77 | if you want to work with me, check out our{' '}
78 | about us.
79 |
80 |
81 | my background is in growing developer tools. previously,
82 | i created{' '}
83 |
84 | Million.js
85 | {' '}
86 | when i was 16{' '}
87 |
88 | (video)
89 | {' '}
90 | and later made{' '}
91 |
92 | React Scan
93 |
94 | . these projects have a combined total of 40k+ stars on
95 | github.
96 |
97 | {/*
98 | I used to skip lectures go to the
99 |
100 | University of Washington
101 |
102 | but I got bored lol
103 |
104 |
105 | For fun, I like chugging{' '}
106 |
107 | fruit tea boba
108 |
109 | , giggling over capybaras ʕ•ᴥ•ʔ, and fishing in{' '}
110 |
111 | Stardew Valley
112 |
113 | .
114 |
*/}
115 |
116 | connect with me on{' '}
117 | twitter,{' '}
118 | github,{' '}
119 |
120 | linkedin
121 |
122 | , or at{' '}
123 | aiden@million.dev!
124 |
125 | {/*
126 | Want to reach out?{' '}
127 |
128 | Say hello!
129 |
130 |
*/}
131 |
132 | );
133 | };
134 |
135 | const Stats = () => {
136 | return (
137 |
138 |
139 |
140 | Projects
141 |
142 |
143 | {data.projects.map(({ name, description, link }) => (
144 |
145 |
146 | {name}
147 |
{' '}
148 |
{description}
149 |
150 | ))}
151 |
152 |
153 |
154 |
155 |
156 | Work
157 |
158 |
159 | {data.work.map(({ name, description, link }) => (
160 |
161 |
162 | {name}
163 |
{' '}
164 |
{description}
165 |
166 | ))}
167 |
168 |
169 |
170 |
171 |
172 | Awards
173 |
174 |
175 | {data.awards.map(({ name, description, link }) => (
176 |
177 |
178 | {name}
179 |
{' '}
180 |
{description}
181 |
182 | ))}
183 |
184 |
185 |
186 | );
187 | };
188 |
189 | const Footer = () => {
190 | return (
191 |
192 | {/*
193 | Want to hire me? Check out my{' '}
194 |
195 | LinkedIn
196 | {' '}
197 | &{' '}
198 |
199 | Resume
200 |
201 | !
202 |
*/}
203 | {/* {!REDUCE_MOTION ? (
204 |
205 | P.S. Try ejecting the page!
206 |
207 | ) : (
208 |
209 | )} */}
210 |
211 | );
212 | };
213 |
214 | const Content = () => {
215 | const timer = (
216 |
217 | 0:00:00
218 |
219 | );
220 | createTimer(timer, true);
221 |
222 | const spinner = (
223 |
224 | |
225 |
226 | );
227 |
228 | createSpinner(spinner, !REDUCE_MOTION);
229 |
230 | if (!REDUCE_MOTION) {
231 | let count = 0;
232 | spinner.addEventListener('click', () => {
233 | audio.cloneNode(true).play();
234 | document.body.className =
235 | 'bg-black text-white font-mono flex items-center justify-center h-screen overflow-hidden';
236 | PowerGlitch.glitch('#root', {
237 | glitchTimeSpan: false,
238 | });
239 |
240 | const spinner = | ;
241 | createSpinner(spinner);
242 |
243 | setTimeout(() => {
244 | document.body.textContent = '';
245 | document.body.style.overflow = 'hidden';
246 | const dvd = (
247 |
248 | );
249 | const display = {String(count)} ;
250 | const reload = (
251 | REWIND ⏮
252 | );
253 | reload.addEventListener('click', () => {
254 | audio.cloneNode(true).play();
255 | setTimeout(() => {
256 | location.reload();
257 | }, 1000);
258 | });
259 | document.body.appendChild(
260 |
261 | {dvd}
262 |
263 | {spinner}
264 | {display} EJECTED
265 |
266 |
267 | I guess the sooner we come to terms with our{' '}
268 |
269 |
270 | mortality
271 |
272 |
273 | , the more time we can spend really living in the
274 | here-and-now.
275 |
276 |
{reload}
277 |
278 | );
279 | runDvd(dvd, () => {
280 | count++;
281 | display.textContent = String(count);
282 | });
283 | }, 1000);
284 | });
285 | }
286 |
287 | return (
288 |
289 |
290 | {spinner}
291 | {timer}
292 |
293 |
294 |
295 |
296 |
297 |
298 | );
299 | };
300 |
301 | const vcr = document.getElementById('vcr');
302 | const content = ;
303 |
304 | if (!REDUCE_MOTION) {
305 | const timer = 0:00:00
;
306 | createTimer(timer);
307 | document.getElementById('marker').appendChild(timer);
308 |
309 | const glitch0 = PowerGlitch.glitch('.overlay', {
310 | glitchTimeSpan: false,
311 | });
312 | const glitch1 = PowerGlitch.glitch('.glitch', {
313 | timing: {
314 | duration: 700,
315 | easing: 'ease-in-out',
316 | },
317 | });
318 | let init = false;
319 | setTimeout(() => {
320 | if (!init) {
321 | document.getElementById('reminder').style.opacity = 1;
322 | }
323 | glitch0.stopGlitch();
324 | }, 1000);
325 | const start = () => {
326 | if (init) return;
327 | audio.cloneNode(true).play();
328 | init = true;
329 | glitch1.stopGlitch();
330 | const glitch2 = PowerGlitch.glitch('.glitch', {
331 | glitchTimeSpan: false,
332 | });
333 | clearInterval(timerInterval);
334 | vcr.style.opacity = 0;
335 | setTimeout(() => {
336 | document.body.style.overflow = 'auto';
337 | glitch2.stopGlitch();
338 | vcr.style.display = 'none';
339 | }, 1000);
340 | content.style.display = 'flex';
341 | };
342 | document.addEventListener('click', start);
343 | } else {
344 | vcr.style.display = 'none';
345 | content.style.display = 'flex';
346 | document.body.style.overflow = 'auto';
347 | }
348 | root.appendChild(content);
349 |
--------------------------------------------------------------------------------
/src/styles.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @font-face {
6 | font-family: 'VCR';
7 | src: url(/vcr.ttf) format('truetype');
8 | }
9 |
10 | :root {
11 | font-family: 'Lora', serif;
12 | }
13 |
14 | .ascii {
15 | margin-bottom: 0;
16 | padding: 0;
17 | white-space: pre;
18 | font-weight: 700;
19 | font-family: monospace;
20 | }
21 |
22 | .dvd {
23 | position: absolute;
24 | left: 0px;
25 | top: 0px;
26 | height: 200px;
27 | width: 200px;
28 | background-repeat: no-repeat;
29 | background-size: 75px;
30 | background-position: center;
31 | }
32 |
33 | strike {
34 | text-decoration: line-through;
35 | opacity: 0.5;
36 | }
37 |
38 | @-moz-keyframes spin {
39 | from {
40 | -moz-transform: rotate(0deg);
41 | }
42 | to {
43 | -moz-transform: rotate(360deg);
44 | }
45 | }
46 | @-webkit-keyframes spin {
47 | from {
48 | -webkit-transform: rotate(0deg);
49 | }
50 | to {
51 | -webkit-transform: rotate(360deg);
52 | }
53 | }
54 | @keyframes spin {
55 | from {
56 | transform: rotate(0deg);
57 | }
58 | to {
59 | transform: rotate(360deg);
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: ['./*.html', './src/**/*.{js,ts,jsx,tsx}'],
4 | theme: {
5 | fontFamily: {
6 | mono: ['VCR'],
7 | },
8 | },
9 | plugins: [],
10 | };
11 |
--------------------------------------------------------------------------------
/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "cleanUrls": true,
3 | "github": {
4 | "silent": true
5 | },
6 | "redirects": [
7 | {
8 | "source": "/work/million-js",
9 | "destination": "https://millionjs.org/research",
10 | "permanent": true
11 | },
12 | {
13 | "source": "/thoughts/virtual-dom",
14 | "destination": "https://site-mini.vercel.app/thoughts/virtual-dom",
15 | "permanent": true
16 | },
17 | {
18 | "source": "/thoughts/isef",
19 | "destination": "https://site-mini.vercel.app/thoughts/isef",
20 | "permanent": true
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import babel from 'vite-plugin-babel';
3 | import legacy from '@vitejs/plugin-legacy';
4 |
5 | export default defineConfig({
6 | resolve: {
7 | alias: {
8 | dom: './jsx-runtime.js',
9 | },
10 | },
11 | build: {
12 | outDir: 'dist',
13 | rollupOptions: {
14 | input: {
15 | index: new URL('./index.html', import.meta.url).pathname,
16 | '404': new URL('./404.html', import.meta.url).pathname,
17 | },
18 | },
19 | },
20 | plugins: [
21 | babel({
22 | babelConfig: {
23 | babelrc: false,
24 | configFile: false,
25 | plugins: ['babel-plugin-jsx-dom-expressions'],
26 | },
27 | }),
28 | legacy({
29 | targets: ['defaults', 'not IE 11'],
30 | }),
31 | ],
32 | });
33 |
--------------------------------------------------------------------------------