From 658f0801ee69c387ea167d27f5ecf3fcb226061d Mon Sep 17 00:00:00 2001 From: avo Date: Sun, 27 Oct 2024 15:05:38 -0500 Subject: [PATCH] update about site, readme, cleanup --- README.md | 66 ++----- package.json | 18 +- src/App.tsx | 5 + src/core/Anchor.tsx | 29 ++- src/core/Button.tsx | 5 +- src/layout/Footer.tsx | 7 +- src/layout/Header.tsx | 8 +- src/routes/AboutSite.tsx | 80 ++++++++ src/styles/Element.ts | 10 + tsconfig.app.tsbuildinfo | 2 +- yarn.lock | 403 ++++++++++----------------------------- 11 files changed, 261 insertions(+), 372 deletions(-) create mode 100644 src/routes/AboutSite.tsx diff --git a/README.md b/README.md index 646f408..fc5144d 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,22 @@ # Personal Github Pages Setup with React + TypeScript + Vite -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}); -``` - -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react'; - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}); -``` +This site was created with great appreciation to developers who have contributed to: + +- Vite +- React +- Typescript +- Emotion +- React Router DOM +- Yarn +- Eslint +- Prettier +- VsCode +- Github + +When spinning up this site, I initially started off using CRA but it felt a bit clunky and +dependencies were outdated. I switched to Vite and found it a much better experience. I also +opted to write my own css with some tools to clamp my typography and space for a more fluid +and responsive layout. The site follows accessibility best practices. Testing was performed +using Axe DevTools, VoiceOver, and keyboard. + +Feel free to take a look at my code. I opted to leave it public so that it could be used as a sample of my coding practice. diff --git a/package.json b/package.json index 9c21e2e..69e0dcf 100644 --- a/package.json +++ b/package.json @@ -17,25 +17,23 @@ "react-router-dom": "^6.27.0" }, "devDependencies": { - "@eslint/js": "^9.11.1", - "@types/gh-pages": "^6", - "@types/react": "^18.3.10", + "@eslint/js": "^9.13.0", + "@types/react": "^18.3.12", "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.2", - "eslint": "^9.11.1", + "@vitejs/plugin-react": "^4.3.3", + "eslint": "^9.13.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.37.1", + "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.1.0-rc.0", - "eslint-plugin-react-refresh": "^0.4.12", + "eslint-plugin-react-refresh": "^0.4.14", "eslint-plugin-sort": "^3.0.2", - "gh-pages": "^6.2.0", "globals": "^15.9.0", "prettier": "^3.3.3", "typescript": "^5.5.3", - "typescript-eslint": "^8.10.0", - "vite": "^5.4.9" + "typescript-eslint": "^8.11.0", + "vite": "^5.4.10" }, "homepage": "https://avo.github.io/", "packageManager": "yarn@4.5.1" diff --git a/src/App.tsx b/src/App.tsx index fba624a..5527e63 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,6 +1,7 @@ import { Global } from '@emotion/react'; import { createBrowserRouter, RouterProvider } from 'react-router-dom'; import { About } from './routes/About'; +import { AboutSite } from './routes/AboutSite'; import { Error } from './routes/Error'; import { Newness } from './routes/New'; import { Root } from './routes/Root'; @@ -21,6 +22,10 @@ const router = createBrowserRouter( element: , path: '/about', }, + { + element: , + path: '/about/site', + }, { element: , path: '/blog', diff --git a/src/core/Anchor.tsx b/src/core/Anchor.tsx index 5d9115a..7b2fd9a 100644 --- a/src/core/Anchor.tsx +++ b/src/core/Anchor.tsx @@ -4,7 +4,7 @@ import { focusVisibleMixin } from '../styles/Mixins'; import { IntrinsicAttributes } from '../types/polymorphic'; const anchorMixin = css` - ${focusVisibleMixin}; + ${focusVisibleMixin}; border-radius: var(--av-border-radius-xs); color: var(--av-color-link-fg); font-weight: 600; @@ -38,38 +38,49 @@ const anchorMixin = css` color: var(--av-color-link-fg-dimmed-active); text-decoration-color: var(--av-color-link-fg-dimmed-active); } + } `; const anchorPrimaryStyle = css` ${anchorMixin}; `; -/** - * TODO: add secondary variant - */ +// TODO: add secondary variant const anchorSecondaryStyle = css``; export function AnchorDivider() { return | ; } +// TODO: Create a base component between Anchor and Button export const Anchor = forwardRef(function AnchorWithRef( - { as: Component = 'a', children, href, target, variant = 'primary', ...props }: AnchorOwnProps, + { as: Component = 'a', children, target, variant = 'primary', ...props }: AnchorOwnProps, ref: Ref ) { + const anchorProps = + target === '_blank' + ? { + rel: 'noreferrer', + target, + } + : {}; + + const buttonProps = { + type: 'button', + }; + return ( {children} ); -}) as (props: AnchorProps) => React.JSX.Element; +}) as (props: AnchorProps) => React.JSX.Element; interface AnchorOwnProps { as?: E; diff --git a/src/core/Button.tsx b/src/core/Button.tsx index 84b6840..13d6f66 100644 --- a/src/core/Button.tsx +++ b/src/core/Button.tsx @@ -34,11 +34,10 @@ const primaryButtonStyle = css` } `; -/** - * TODO: add secondary variant - */ +// TODO: add secondary variant const secondaryButtonStyle = css``; +// TODO: Create a base component between Anchor and Button export const Button = forwardRef(function ButtonWithRef( { as: Component = 'button', target, variant = 'primary', ...props }: ButtonOwnProps, ref: Ref diff --git a/src/layout/Footer.tsx b/src/layout/Footer.tsx index 9bd8280..179bdcc 100644 --- a/src/layout/Footer.tsx +++ b/src/layout/Footer.tsx @@ -1,4 +1,6 @@ import { css } from '@emotion/react'; +import { Link } from 'react-router-dom'; +import { Anchor } from '../core/Anchor'; import { diamondMixin, layoutMediaQueryMixin, @@ -49,8 +51,9 @@ export function Footer() {

©2024 Anna Vo. All rights reserved.

- Site created with great appreciation to developers who have contributed to:
- Vite, React, Typescript, Emotion Css, Prettier, Eslint, Yarn, VsCode, Github. + + About how this site was built +

); diff --git a/src/layout/Header.tsx b/src/layout/Header.tsx index 2ab9203..3e300d7 100644 --- a/src/layout/Header.tsx +++ b/src/layout/Header.tsx @@ -53,11 +53,15 @@ export function Header() { return (
diff --git a/src/routes/AboutSite.tsx b/src/routes/AboutSite.tsx new file mode 100644 index 0000000..c63c440 --- /dev/null +++ b/src/routes/AboutSite.tsx @@ -0,0 +1,80 @@ +import { Anchor } from '../core/Anchor'; + +export function AboutSite() { + return ( + <> +

About this site

+

+ This site was created with great appreciation to developers who have contributed to: +

    +
  • Vite
  • +
  • React
  • +
  • Typescript
  • +
  • Emotion
  • +
  • React Router DOM
  • +
  • Yarn
  • +
  • Eslint
  • +
  • Prettier
  • +
  • VsCode
  • +
  • Github
  • +
+

+ +

+ When spinning up this site, I initially started off using CRA but it felt a bit clunky and + dependencies were outdated. I switched to Vite and found it a much better experience. I also + opted to write my own css with some tools to clamp my typography and space for a more fluid + and responsive layout. The site follows accessibility best practices. Testing was performed + using Axe DevTools, VoiceOver, and keyboard. +

+ +

+ Feel free to{' '} + + take a look at my code + + . I opted to leave it public so that it could be used as a sample of my coding practice. +

+ +

Tech stack

+

+ I enjoy working in{' '} + + React + + ,{' '} + + Typescript + + , and using CSS in JS, which this site uses{' '} + + Emotion + {' '} + for. I prefer using css variables, though I have worked with Less and Sass in the past. I + haven't found a need for adding in Less or Sass anymore with the combination of css + variables and CSS in JS. Though if there's a need to create design tokens in various + formats, I recommend using{' '} + + Amazon's style dictionary + + . I recently created a proof of concept for the design team looking to create a universal + design system and thought this worked pretty well for their needs. +

+ +

Eslint and Prettier

+

+ I am a HUGE fan of using linting and formatting tools. It helps when performing code reviews + and jumping from team to team when the code syntax and formatting are consistent. Developers + don't have to think too much about formatting and can focus on the code. Linters can also + help prevent mistakes and improve code. +

+ +

IDEs

+ +

+ While I have used IntelliJ Idea, especially when working in Java or Groovy code, I prefer + VsCode for most everything else. +

+ + ); +} diff --git a/src/styles/Element.ts b/src/styles/Element.ts index 0b36aec..cbb99c8 100644 --- a/src/styles/Element.ts +++ b/src/styles/Element.ts @@ -34,6 +34,12 @@ export const elementStyle = css` margin-inline: 0; } + h2 { + font-size: var(--av-font-step-1); + margin-block: var(--av-space-2xs); + margin-inline: 0; + } + a { text-decoration: inherit; } @@ -42,4 +48,8 @@ export const elementStyle = css` margin-block: var(--av-space-xs); text-wrap: pretty; /* use in newer browsers to pretty up text wrapping */ } + + ul { + margin-block-end: 0; + } `; diff --git a/tsconfig.app.tsbuildinfo b/tsconfig.app.tsbuildinfo index 69639ea..999dfbe 100644 --- a/tsconfig.app.tsbuildinfo +++ b/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/app.tsx","./src/index.tsx","./src/vite-env.d.ts","./src/core/anchor.tsx","./src/core/blockquote.tsx","./src/core/button.tsx","./src/core/skiplink.tsx","./src/layout/footer.tsx","./src/layout/header.tsx","./src/layout/mainsection.tsx","./src/layout/pagewrapper.tsx","./src/routes/about.tsx","./src/routes/error.tsx","./src/routes/new.tsx","./src/routes/root.tsx","./src/routes/unknown.tsx","./src/styles/base.ts","./src/styles/element.ts","./src/styles/mixins.ts","./src/styles/theme.ts","./src/styles/typography.ts","./src/types/polymorphic.ts"],"version":"5.6.3"} \ No newline at end of file +{"root":["./src/app.tsx","./src/index.tsx","./src/vite-env.d.ts","./src/core/anchor.tsx","./src/core/blockquote.tsx","./src/core/button.tsx","./src/core/skiplink.tsx","./src/layout/footer.tsx","./src/layout/header.tsx","./src/layout/mainsection.tsx","./src/layout/pagewrapper.tsx","./src/routes/about.tsx","./src/routes/aboutsite.tsx","./src/routes/error.tsx","./src/routes/new.tsx","./src/routes/root.tsx","./src/routes/unknown.tsx","./src/styles/base.ts","./src/styles/element.ts","./src/styles/mixins.ts","./src/styles/theme.ts","./src/styles/typography.ts","./src/types/polymorphic.ts"],"version":"5.6.3"} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 3b31f44..8d733f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -550,10 +550,10 @@ __metadata: languageName: node linkType: hard -"@eslint/core@npm:^0.6.0": - version: 0.6.0 - resolution: "@eslint/core@npm:0.6.0" - checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240 +"@eslint/core@npm:^0.7.0": + version: 0.7.0 + resolution: "@eslint/core@npm:0.7.0" + checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a languageName: node linkType: hard @@ -574,10 +574,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.12.0, @eslint/js@npm:^9.11.1": - version: 9.12.0 - resolution: "@eslint/js@npm:9.12.0" - checksum: 10c0/325650a59a1ce3d97c69441501ebaf415607248bacbe8c8ca35adc7cb73b524f592f266a75772f496b06f3239e3ee1996722a242148085f0ee5fb3dd7065897c +"@eslint/js@npm:9.13.0, @eslint/js@npm:^9.13.0": + version: 9.13.0 + resolution: "@eslint/js@npm:9.13.0" + checksum: 10c0/672257bffe17777b8a98bd80438702904cc7a0b98b9c2e426a8a10929198b3553edf8a3fc20feed4133c02e7c8f7331a0ef1b23e5dab8e4469f7f1791beff1e0 languageName: node linkType: hard @@ -921,13 +921,6 @@ __metadata: languageName: node linkType: hard -"@types/gh-pages@npm:^6": - version: 6.1.0 - resolution: "@types/gh-pages@npm:6.1.0" - checksum: 10c0/d8bf644822df211accac9cff24fcc0a5155fd715d05bc1698175623f5cde1aff81c302e7e38f7105e0fa0fe7ab24d7009d8dbb875897af669f48e06c3c20484c - languageName: node - linkType: hard - "@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" @@ -965,13 +958,13 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.3.10": - version: 18.3.11 - resolution: "@types/react@npm:18.3.11" +"@types/react@npm:*, @types/react@npm:^18.3.12": + version: 18.3.12 + resolution: "@types/react@npm:18.3.12" dependencies: "@types/prop-types": "npm:*" csstype: "npm:^3.0.2" - checksum: 10c0/ce80512246ca5bda69db85b9f4f1835189334acfb6b2c4f3eda8cabff1ff1a3ea9ce4f3b895bdbc18c94140aa45592331aa3fdeb557f525c1b048de7ce84fc0e + checksum: 10c0/8bae8d9a41619804561574792e29112b413044eb0d53746dde2b9720c1f9a59f71c895bbd7987cd8ce9500b00786e53bc032dced38cddf42910458e145675290 languageName: node linkType: hard @@ -982,15 +975,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.10.0" +"@typescript-eslint/eslint-plugin@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.11.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.10.0" - "@typescript-eslint/type-utils": "npm:8.10.0" - "@typescript-eslint/utils": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/type-utils": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -1001,7 +994,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/4b77ba9c865a2a14e238cd330b5901f0274b8ce1c13324fccd0339b8eea82a50a4709394c903fd8cd5bd0d3aebace0761ff9a4a19fa20b00bb61349b7671c035 + checksum: 10c0/be509f7bb0c0c596801059b06995a81a1c326cc6ac31d96a32f7b6b7d7b495f9bad4dc442aa6e923d22515e62c668d3c14695c68bd6e0be1d4bf72158b7fd2d6 languageName: node linkType: hard @@ -1016,21 +1009,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/parser@npm:8.10.0" +"@typescript-eslint/parser@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/parser@npm:8.11.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.10.0" - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/typescript-estree": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/7becb2457c085c239838d301796074b790f46dd38c9fbc14ec1dec8e993c7115cd8a66cdc07983c3a68a2dd92e24e8acc49d69a4ebcc29e9869957eb52d1cb74 + checksum: 10c0/e83f239fec60697083e5dcb1c8948340e783ea6e043fe9a65d557faef8882963b09d69aacd736eb8ab18a768769a7bbfc3de0f1251d4bba080613541acb0741c languageName: node linkType: hard @@ -1044,28 +1037,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/scope-manager@npm:8.10.0" +"@typescript-eslint/scope-manager@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/scope-manager@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" - checksum: 10c0/b8bb8635c4d6c00a3578d6265e3ee0f5d96d0c9dee534ed588aa411c3f4497fd71cce730c3ae7571e52453d955b191bc9edcc47c9af21a20c90e9a20f2371108 + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" + checksum: 10c0/0910da62d8ae261711dd9f89d5c7d8e96ff13c50054436256e5a661309229cb49e3b8189c9468d36b6c4d3f7cddd121519ea78f9b18c9b869a808834b079b2ea languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/type-utils@npm:8.10.0" +"@typescript-eslint/type-utils@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/type-utils@npm:8.11.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.10.0" - "@typescript-eslint/utils": "npm:8.10.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/1af8fce8394279e6ac7bcef449a132072ee36e374c8d557564246ffe7150230844901ca0305e29525bf37c87010e03bf8bedec76fccbfe1e41931cb4f274e208 + checksum: 10c0/b69e31c1599ceeb20c29052a4ddb33a554174a3a4c55ee37d90c9b8250af6ef978a0b9ddbeefef4e83d62c4caea1bfa2d8088527f397bde69fb4ab9b360d794a languageName: node linkType: hard @@ -1076,10 +1069,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/types@npm:8.10.0" - checksum: 10c0/f27dd43c8383e02e914a254257627e393dfc0f08b0f74a253c106813ae361f090271b2f3f2ef588fa3ca1329897d873da595bb5641fe8e3091b25eddca24b5d2 +"@typescript-eslint/types@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/types@npm:8.11.0" + checksum: 10c0/5ccdd3eeee077a6fc8e7f4bc0e0cbc9327b1205a845253ec5c0c6c49ff915e853161df00c24a0ffb4b8ec745d3f153dd0e066400a021c844c026e31121f46699 languageName: node linkType: hard @@ -1101,12 +1094,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.10.0" +"@typescript-eslint/typescript-estree@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1116,7 +1109,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/535a740fe25be0e28fe68c41e3264273d1e5169c9f938e08cc0e3415c357726f43efa44621960108c318fc3305c425d29f3223b6e731d44d67f84058a8947304 + checksum: 10c0/b629ad3cd32b005d5c1d67c36958a418f8672efebea869399834f4f201ebf90b942165eebb5c9d9799dcabdc2cc26e5fabb00629f76b158847f42e1a491a75a6 languageName: node linkType: hard @@ -1138,17 +1131,17 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/utils@npm:8.10.0" +"@typescript-eslint/utils@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/utils@npm:8.11.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.10.0" - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/typescript-estree": "npm:8.10.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/a21a2933517176abd00fcd5d8d80023e35dc3d89d5746bbac43790b4e984ab1f371117db08048bce7f42d54c64f4e0e35161149f8f34fd25a27bff9d1110fd16 + checksum: 10c0/bb5bcc8d928a55b22298e76f834ea6a9fe125a9ffeb6ac23bee0258b3ed32f41e281888a3d0be226a05e1011bb3b70e42a71a40366acdefea6779131c46bc522 languageName: node linkType: hard @@ -1162,19 +1155,19 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.10.0" +"@typescript-eslint/visitor-keys@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.11.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/14721c4ac939640d5fd1ee1b6eeb07604b11a6017e319e21dcc71e7aac2992341fc7ae1992d977bad4433b6a1d0d1c0c279e6927316b26245f6e333f922fa458 + checksum: 10c0/7a5a49609fdc47e114fe59eee56393c90b122ec8e9520f90b0c5e189635ae1ccfa8e00108f641342c2c8f4637fe9d40c77927cf7c8248a3a660812cb4b7d0c08 languageName: node linkType: hard -"@vitejs/plugin-react@npm:^4.3.2": - version: 4.3.2 - resolution: "@vitejs/plugin-react@npm:4.3.2" +"@vitejs/plugin-react@npm:^4.3.3": + version: 4.3.3 + resolution: "@vitejs/plugin-react@npm:4.3.3" dependencies: "@babel/core": "npm:^7.25.2" "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" @@ -1183,7 +1176,7 @@ __metadata: react-refresh: "npm:^0.14.2" peerDependencies: vite: ^4.2.0 || ^5.0.0 - checksum: 10c0/945f357175bea45031dc98d379e63cd34cd60a51b3dd394b66138696625ac8b55bc913a23481f78bbe15ca558c21ea4699b936abbd8242003d7c0ad51d298727 + checksum: 10c0/b370c25fb47bb96f0cc51f3aadbbcfce54e40f95a4de67cf932e5ec526f139648da703725c6ea2c71a1b525eb3dd6e3e8ff877da143627cd2575de5ec4f00aa3 languageName: node linkType: hard @@ -1401,13 +1394,6 @@ __metadata: languageName: node linkType: hard -"async@npm:^3.2.4": - version: 3.2.6 - resolution: "async@npm:3.2.6" - checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 - languageName: node - linkType: hard - "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -1591,20 +1577,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^11.0.0": - version: 11.1.0 - resolution: "commander@npm:11.1.0" - checksum: 10c0/13cc6ac875e48780250f723fb81c1c1178d35c5decb1abb1b628b3177af08a8554e76b2c0f29de72d69eef7c864d12613272a71fabef8047922bc622ab75a179 - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6 - languageName: node - linkType: hard - "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -1772,13 +1744,6 @@ __metadata: languageName: node linkType: hard -"email-addresses@npm:^5.0.0": - version: 5.0.0 - resolution: "email-addresses@npm:5.0.0" - checksum: 10c0/fc8a6f84e378bbe601ce39a3d8d86bc7e4584030ae9eb1938e12943f7fb5207e5fd7ae449cced3bea70968a519ade560d55ca170208c3f1413d7d25d8613a577 - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -1895,7 +1860,7 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.19": +"es-iterator-helpers@npm:^1.1.0": version: 1.1.0 resolution: "es-iterator-helpers@npm:1.1.0" dependencies: @@ -2044,7 +2009,7 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": +"escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 @@ -2150,25 +2115,25 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-refresh@npm:^0.4.12": - version: 0.4.12 - resolution: "eslint-plugin-react-refresh@npm:0.4.12" +"eslint-plugin-react-refresh@npm:^0.4.14": + version: 0.4.14 + resolution: "eslint-plugin-react-refresh@npm:0.4.14" peerDependencies: eslint: ">=7" - checksum: 10c0/33dd82450f7c5fa884c5c84ffaf9d9a8b363bc155432807dc09904c7db6ba724888fac4562b058268259aa7c9270b622ef411488011b3469a2add275ed5c2273 + checksum: 10c0/427108008ffcc2e0be36897398e61a2fae54c5bf092af0171bc4cf1927080d40619bb07be02ecd7c515372210228cf849023997cfa0252d37115f9b0c0debcd2 languageName: node linkType: hard -"eslint-plugin-react@npm:^7.37.1": - version: 7.37.1 - resolution: "eslint-plugin-react@npm:7.37.1" +"eslint-plugin-react@npm:^7.37.2": + version: 7.37.2 + resolution: "eslint-plugin-react@npm:7.37.2" dependencies: array-includes: "npm:^3.1.8" array.prototype.findlast: "npm:^1.2.5" array.prototype.flatmap: "npm:^1.3.2" array.prototype.tosorted: "npm:^1.1.4" doctrine: "npm:^2.1.0" - es-iterator-helpers: "npm:^1.0.19" + es-iterator-helpers: "npm:^1.1.0" estraverse: "npm:^5.3.0" hasown: "npm:^2.0.2" jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" @@ -2183,7 +2148,7 @@ __metadata: string.prototype.repeat: "npm:^1.0.0" peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 10c0/13cf55666f16d2ca45b14aad1b0e14741d1817679c86d20aff0bc1e802439a8541f40a42c4c8e3486ffb710f1bcc2f3e56697f2b5f724306a7fca174e1ad6433 + checksum: 10c0/01c498f263c201698bf653973760f86a07fa0cdec56c044f3eaa5ddaae71c64326015dfa5fde76ca8c5386ffe789fc79932624b614e13b6a1ad789fee3f7c491 languageName: node linkType: hard @@ -2234,16 +2199,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.11.1": - version: 9.12.0 - resolution: "eslint@npm:9.12.0" +"eslint@npm:^9.13.0": + version: 9.13.0 + resolution: "eslint@npm:9.13.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.6.0" + "@eslint/core": "npm:^0.7.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.12.0" + "@eslint/js": "npm:9.13.0" "@eslint/plugin-kit": "npm:^0.2.0" "@humanfs/node": "npm:^0.16.5" "@humanwhocodes/module-importer": "npm:^1.0.1" @@ -2280,7 +2245,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/67cf6ea3ea28dcda7dd54aac33e2d4028eb36991d13defb0d2339c3eaa877d5dddd12cd4416ddc701a68bcde9e0bb9e65524c2e4e9914992c724f5b51e949dda + checksum: 10c0/d3577444152182a9d8ea8c6a6acb073d3a2773ad73a6b646f432746583ec4bfcd6a44fcc2e37d05d276984e583c46c2d289b3b981ca8f8b4052756a152341d19 languageName: node linkType: hard @@ -2400,24 +2365,6 @@ __metadata: languageName: node linkType: hard -"filename-reserved-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "filename-reserved-regex@npm:2.0.0" - checksum: 10c0/453740b7f9fd126e508da555b37e38c1f7ff19f5e9f3d297b2de1beb09854957baddd74c83235e87b16e9ce27a2368798896669edad5a81b5b7bd8cb57c942fc - languageName: node - linkType: hard - -"filenamify@npm:^4.3.0": - version: 4.3.0 - resolution: "filenamify@npm:4.3.0" - dependencies: - filename-reserved-regex: "npm:^2.0.0" - strip-outer: "npm:^1.0.1" - trim-repeated: "npm:^1.0.0" - checksum: 10c0/dcfd2f116d66f78c9dd58bb0f0d9b6529d89c801a9f37a4f86e7adc0acecb6881c7fb7c3231dc9e6754b767edcfdca89cba3a492a58afd2b48479b30d14ccf8f - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -2427,17 +2374,6 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.3.1": - version: 3.3.2 - resolution: "find-cache-dir@npm:3.3.2" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^3.0.2" - pkg-dir: "npm:^4.1.0" - checksum: 10c0/92747cda42bff47a0266b06014610981cfbb71f55d60f2c8216bc3108c83d9745507fb0b14ecf6ab71112bed29cd6fb1a137ee7436179ea36e11287e3159e587 - languageName: node - linkType: hard - "find-root@npm:^1.1.0": version: 1.1.0 resolution: "find-root@npm:1.1.0" @@ -2445,16 +2381,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.0.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: "npm:^5.0.0" - path-exists: "npm:^4.0.0" - checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 - languageName: node - linkType: hard - "find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" @@ -2501,17 +2427,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.1": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -2606,51 +2521,31 @@ __metadata: languageName: node linkType: hard -"gh-pages@npm:^6.2.0": - version: 6.2.0 - resolution: "gh-pages@npm:6.2.0" - dependencies: - async: "npm:^3.2.4" - commander: "npm:^11.0.0" - email-addresses: "npm:^5.0.0" - filenamify: "npm:^4.3.0" - find-cache-dir: "npm:^3.3.1" - fs-extra: "npm:^11.1.1" - globby: "npm:^11.1.0" - bin: - gh-pages: bin/gh-pages.js - gh-pages-clean: bin/gh-pages-clean.js - checksum: 10c0/30b996b3a9c3dc00d333b6fb15232b3ddc8628f9f458de871ad237b4e3414e68f5408d7525d82ae4a551e24bd7461f009908e8db7c7031dc7dc51e62e7c18ac0 - languageName: node - linkType: hard - "gio@workspace:.": version: 0.0.0-use.local resolution: "gio@workspace:." dependencies: "@emotion/react": "npm:^11.13.3" - "@eslint/js": "npm:^9.11.1" - "@types/gh-pages": "npm:^6" - "@types/react": "npm:^18.3.10" + "@eslint/js": "npm:^9.13.0" + "@types/react": "npm:^18.3.12" "@types/react-dom": "npm:^18.3.0" - "@vitejs/plugin-react": "npm:^4.3.2" - eslint: "npm:^9.11.1" + "@vitejs/plugin-react": "npm:^4.3.3" + eslint: "npm:^9.13.0" eslint-config-prettier: "npm:^9.1.0" eslint-plugin-import: "npm:^2.31.0" eslint-plugin-prettier: "npm:^5.2.1" - eslint-plugin-react: "npm:^7.37.1" + eslint-plugin-react: "npm:^7.37.2" eslint-plugin-react-hooks: "npm:^5.1.0-rc.0" - eslint-plugin-react-refresh: "npm:^0.4.12" + eslint-plugin-react-refresh: "npm:^0.4.14" eslint-plugin-sort: "npm:^3.0.2" - gh-pages: "npm:^6.2.0" globals: "npm:^15.9.0" prettier: "npm:^3.3.3" react: "npm:^18.3.1" react-dom: "npm:^18.3.1" react-router-dom: "npm:^6.27.0" typescript: "npm:^5.5.3" - typescript-eslint: "npm:^8.10.0" - vite: "npm:^5.4.9" + typescript-eslint: "npm:^8.11.0" + vite: "npm:^5.4.10" languageName: unknown linkType: soft @@ -2742,7 +2637,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -3287,19 +3182,6 @@ __metadata: languageName: node linkType: hard -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: "npm:^4.1.6" - universalify: "npm:^2.0.0" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 - languageName: node - linkType: hard - "jsx-ast-utils@npm:^2.4.1 || ^3.0.0": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" @@ -3338,15 +3220,6 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: "npm:^4.1.0" - checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 - languageName: node - linkType: hard - "locate-path@npm:^6.0.0": version: 6.0.0 resolution: "locate-path@npm:6.0.0" @@ -3390,15 +3263,6 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.2": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: "npm:^6.0.0" - checksum: 10c0/56aaafefc49c2dfef02c5c95f9b196c4eb6988040cf2c712185c7fe5c99b4091591a7fc4d4eafaaefa70ff763a26f6ab8c3ff60b9e75ea19876f49b18667ecaa - languageName: node - linkType: hard - "make-fetch-happen@npm:^13.0.0": version: 13.0.1 resolution: "make-fetch-happen@npm:13.0.1" @@ -3714,15 +3578,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: "npm:^2.0.0" - checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 - languageName: node - linkType: hard - "p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0" @@ -3732,15 +3587,6 @@ __metadata: languageName: node linkType: hard -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: "npm:^2.2.0" - checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 - languageName: node - linkType: hard - "p-locate@npm:^5.0.0": version: 5.0.0 resolution: "p-locate@npm:5.0.0" @@ -3759,13 +3605,6 @@ __metadata: languageName: node linkType: hard -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f - languageName: node - linkType: hard - "package-json-from-dist@npm:^1.0.0": version: 1.0.1 resolution: "package-json-from-dist@npm:1.0.1" @@ -3846,15 +3685,6 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^4.1.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: "npm:^4.0.0" - checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 - languageName: node - linkType: hard - "possible-typed-array-names@npm:^1.0.0": version: 1.0.0 resolution: "possible-typed-array-names@npm:1.0.0" @@ -4217,7 +4047,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.3.1": +"semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -4479,15 +4309,6 @@ __metadata: languageName: node linkType: hard -"strip-outer@npm:^1.0.1": - version: 1.0.1 - resolution: "strip-outer@npm:1.0.1" - dependencies: - escape-string-regexp: "npm:^1.0.2" - checksum: 10c0/c0f38e6f37563d878a221b1c76f0822f180ec5fc39be5ada30ee637a7d5b59d19418093bad2b4db1e69c40d7a7a7ac50828afce07276cf3d51ac8965cb140dfb - languageName: node - linkType: hard - "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -4567,15 +4388,6 @@ __metadata: languageName: node linkType: hard -"trim-repeated@npm:^1.0.0": - version: 1.0.0 - resolution: "trim-repeated@npm:1.0.0" - dependencies: - escape-string-regexp: "npm:^1.0.2" - checksum: 10c0/89acada0142ed0cdb113615a3e82fdb09e7fdb0e3504ded62762dd935bc27debfcc38edefa497dc7145d8dc8602d40dd9eec891e0ea6c28fa0cc384200b692db - languageName: node - linkType: hard - "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -4683,17 +4495,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.10.0": - version: 8.10.0 - resolution: "typescript-eslint@npm:8.10.0" +"typescript-eslint@npm:^8.11.0": + version: 8.11.0 + resolution: "typescript-eslint@npm:8.11.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.10.0" - "@typescript-eslint/parser": "npm:8.10.0" - "@typescript-eslint/utils": "npm:8.10.0" + "@typescript-eslint/eslint-plugin": "npm:8.11.0" + "@typescript-eslint/parser": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/9eca1bfdea4e108bea06f0053b57f8a9eaeb43bf3316a39c6d29631bd3217ec67611e46d361417c48a5f6eeb99c4a7fc81c020734b1b47d7b8e42fa67d74ea0f + checksum: 10c0/8f9b5916c9f47b0cbb26f142d1a266a6aaf33998ec87621252dffb56d8fe0ad01a944f8d8d837e4e6058153a1deee3557527d14fa7bf7ef80a927334529db6bd languageName: node linkType: hard @@ -4747,13 +4559,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.1.0": version: 1.1.1 resolution: "update-browserslist-db@npm:1.1.1" @@ -4777,9 +4582,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.4.9": - version: 5.4.9 - resolution: "vite@npm:5.4.9" +"vite@npm:^5.4.10": + version: 5.4.10 + resolution: "vite@npm:5.4.10" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -4816,7 +4621,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/e9c59f2c639047e37c79bbbb151c7a55a3dc27932957cf4cf0447ee0bdcc1ddfd9b1fb3ba0465371c01ba3616d62561327855794c2d652213c3a10a32e6d369d + checksum: 10c0/4ef4807d2fd166a920de244dbcec791ba8a903b017a7d8e9f9b4ac40d23f8152c1100610583d08f542b47ca617a0505cfc5f8407377d610599d58296996691ed languageName: node linkType: hard