From 8ba88734c4ae54bf7cfcbc881964a14a42fbb1af Mon Sep 17 00:00:00 2001 From: Jeremy Ortiz Date: Tue, 30 Jul 2024 13:41:22 +1000 Subject: [PATCH 1/2] feature: add GEL playground app --- apps/playground/.eslintrc.json | 3 + apps/playground/.gitignore | 36 ++ apps/playground/README.md | 36 ++ apps/playground/next.config.mjs | 4 + apps/playground/package.json | 28 ++ apps/playground/postcss.config.mjs | 8 + apps/playground/public/next.svg | 1 + apps/playground/public/vercel.svg | 1 + apps/playground/src/app/favicon.ico | Bin 0 -> 25930 bytes apps/playground/src/app/globals.css | 3 + apps/playground/src/app/layout.tsx | 23 + apps/playground/src/app/page.tsx | 29 ++ .../src/components/card/card.component.tsx | 28 ++ apps/playground/src/theme/theme.store.ts | 30 ++ apps/playground/src/theme/theme.types.ts | 5 + apps/playground/src/theme/themes.ts | 29 ++ apps/playground/tailwind.config.ts | 20 + apps/playground/tsconfig.json | 26 ++ pnpm-lock.yaml | 424 ++++++++++++++---- 19 files changed, 639 insertions(+), 95 deletions(-) create mode 100644 apps/playground/.eslintrc.json create mode 100644 apps/playground/.gitignore create mode 100644 apps/playground/README.md create mode 100644 apps/playground/next.config.mjs create mode 100644 apps/playground/package.json create mode 100644 apps/playground/postcss.config.mjs create mode 100644 apps/playground/public/next.svg create mode 100644 apps/playground/public/vercel.svg create mode 100644 apps/playground/src/app/favicon.ico create mode 100644 apps/playground/src/app/globals.css create mode 100644 apps/playground/src/app/layout.tsx create mode 100644 apps/playground/src/app/page.tsx create mode 100644 apps/playground/src/components/card/card.component.tsx create mode 100644 apps/playground/src/theme/theme.store.ts create mode 100644 apps/playground/src/theme/theme.types.ts create mode 100644 apps/playground/src/theme/themes.ts create mode 100644 apps/playground/tailwind.config.ts create mode 100644 apps/playground/tsconfig.json diff --git a/apps/playground/.eslintrc.json b/apps/playground/.eslintrc.json new file mode 100644 index 000000000..bffb357a7 --- /dev/null +++ b/apps/playground/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/apps/playground/.gitignore b/apps/playground/.gitignore new file mode 100644 index 000000000..fd3dbb571 --- /dev/null +++ b/apps/playground/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/apps/playground/README.md b/apps/playground/README.md new file mode 100644 index 000000000..c4033664f --- /dev/null +++ b/apps/playground/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/apps/playground/next.config.mjs b/apps/playground/next.config.mjs new file mode 100644 index 000000000..4678774e6 --- /dev/null +++ b/apps/playground/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/apps/playground/package.json b/apps/playground/package.json new file mode 100644 index 000000000..ffb37657d --- /dev/null +++ b/apps/playground/package.json @@ -0,0 +1,28 @@ +{ + "name": "playground", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "lint:fix": "next lint --fix" + }, + "dependencies": { + "next": "14.2.5", + "react": "^18", + "react-dom": "^18", + "zustand": "~4.5.4" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.5", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} diff --git a/apps/playground/postcss.config.mjs b/apps/playground/postcss.config.mjs new file mode 100644 index 000000000..1a69fd2a4 --- /dev/null +++ b/apps/playground/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/apps/playground/public/next.svg b/apps/playground/public/next.svg new file mode 100644 index 000000000..5174b28c5 --- /dev/null +++ b/apps/playground/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/playground/public/vercel.svg b/apps/playground/public/vercel.svg new file mode 100644 index 000000000..d2f842227 --- /dev/null +++ b/apps/playground/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/playground/src/app/favicon.ico b/apps/playground/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..09b3f98a60e0f89f8edd4981560dc1eba3aaf315 GIT binary patch literal 25930 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 KpT5K)=>Gu0&e~J} literal 0 HcmV?d00001 diff --git a/apps/playground/src/app/globals.css b/apps/playground/src/app/globals.css new file mode 100644 index 000000000..b5c61c956 --- /dev/null +++ b/apps/playground/src/app/globals.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/apps/playground/src/app/layout.tsx b/apps/playground/src/app/layout.tsx new file mode 100644 index 000000000..2386769a6 --- /dev/null +++ b/apps/playground/src/app/layout.tsx @@ -0,0 +1,23 @@ +import { type Metadata } from 'next'; +import { Inter } from 'next/font/google'; + +import './globals.css'; + +const inter = Inter({ subsets: ['latin'] }); + +export const metadata: Metadata = { + title: 'GEL Playground', + description: 'GEl Playground', +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + {children} + + ); +} diff --git a/apps/playground/src/app/page.tsx b/apps/playground/src/app/page.tsx new file mode 100644 index 000000000..49cb04870 --- /dev/null +++ b/apps/playground/src/app/page.tsx @@ -0,0 +1,29 @@ +'use client'; + +import { Card } from '@/components/card/card.component'; +import { useThemeStore } from '@/theme/theme.store'; +import { BrandKey } from '@/theme/theme.types'; + +export default function Home() { + const { activeThemeKey, setTheme } = useThemeStore(); + return ( +
+
    +
    + + +
    + + + + + +
+
+ ); +} diff --git a/apps/playground/src/components/card/card.component.tsx b/apps/playground/src/components/card/card.component.tsx new file mode 100644 index 000000000..ee37e058d --- /dev/null +++ b/apps/playground/src/components/card/card.component.tsx @@ -0,0 +1,28 @@ +'use client'; + +import { useThemeStore } from '@/theme/theme.store'; +import { BrandKey } from '@/theme/theme.types'; + +export function Card({ active, brand = 'wbc' }: { active?: boolean; brand?: BrandKey }) { + const { themes, activeTheme, activeThemeKey, brandName } = useThemeStore(); + return ( +
  • +
    +
    +

    + {active ? `Active brand: ${brandName[activeThemeKey]}` : brandName[brand]} +

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore + magna aliqua. +

    +
    +
  • + ); +} diff --git a/apps/playground/src/theme/theme.store.ts b/apps/playground/src/theme/theme.store.ts new file mode 100644 index 000000000..40c3a9881 --- /dev/null +++ b/apps/playground/src/theme/theme.store.ts @@ -0,0 +1,30 @@ +import { create } from 'zustand'; + +import { BrandKey, Theme } from './theme.types'; +import { BOMTheme, BSATheme, STGTheme, WBCTheme } from './themes'; + +type ThemeState = { + activeTheme: Theme; + activeThemeKey: BrandKey; + brandName: Record; + setTheme: (theme: BrandKey) => void; + themes: Record; +}; + +export const useThemeStore = create()(set => ({ + activeTheme: WBCTheme, + activeThemeKey: 'wbc', + brandName: { + wbc: 'Westpac', + stg: 'St. George', + bom: 'Bank of Melbourne', + bsa: 'BankSA', + }, + setTheme: theme => set(state => ({ activeThemeKey: theme, activeTheme: state.themes[theme] })), + themes: { + wbc: WBCTheme, + bom: BOMTheme, + bsa: BSATheme, + stg: STGTheme, + }, +})); diff --git a/apps/playground/src/theme/theme.types.ts b/apps/playground/src/theme/theme.types.ts new file mode 100644 index 000000000..2f14f219e --- /dev/null +++ b/apps/playground/src/theme/theme.types.ts @@ -0,0 +1,5 @@ +export type BrandKey = 'bom' | 'bsa' | 'stg' | 'wbc'; + +export type ColorKey = 'primary' | 'hero' | 'text' | 'border'; + +export type Theme = Record; diff --git a/apps/playground/src/theme/themes.ts b/apps/playground/src/theme/themes.ts new file mode 100644 index 000000000..b7d965de6 --- /dev/null +++ b/apps/playground/src/theme/themes.ts @@ -0,0 +1,29 @@ +import { Theme } from './theme.types'; + +export const WBCTheme: Theme = { + primary: '#DA1710', + hero: '#1F1C4F', + text: '#181B25', + border: '#DEDEE1', +}; + +export const STGTheme: Theme = { + primary: '#E30000', + hero: '#008739', + text: '#004833', + border: '#D6D5D0', +}; + +export const BOMTheme: Theme = { + primary: '#D13900', + hero: '#534891', + text: '#20024E', + border: '#D4D4D8', +}; + +export const BSATheme: Theme = { + primary: '#D81B2B', + hero: '#002F6C', + text: '#333', + border: '#D3D4D5', +}; diff --git a/apps/playground/tailwind.config.ts b/apps/playground/tailwind.config.ts new file mode 100644 index 000000000..e9a0944e7 --- /dev/null +++ b/apps/playground/tailwind.config.ts @@ -0,0 +1,20 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/apps/playground/tsconfig.json b/apps/playground/tsconfig.json new file mode 100644 index 000000000..7b2858930 --- /dev/null +++ b/apps/playground/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be2f1a6b2..df757f3d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,46 @@ importers: specifier: ^1.9.0 version: 1.9.0 + apps/playground: + dependencies: + next: + specifier: 14.2.5 + version: 14.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: + specifier: ^18 + version: 18.2.0 + react-dom: + specifier: ^18 + version: 18.2.0(react@18.2.0) + zustand: + specifier: ~4.5.4 + version: 4.5.4(@types/react@18.2.28)(immer@9.0.21)(react@18.2.0) + devDependencies: + '@types/node': + specifier: ^20 + version: 20.12.14 + '@types/react': + specifier: ^18 + version: 18.2.28 + '@types/react-dom': + specifier: ^18 + version: 18.2.1 + eslint: + specifier: ^8 + version: 8.57.0 + eslint-config-next: + specifier: 14.2.5 + version: 14.2.5(eslint@8.57.0)(typescript@5.1.6) + postcss: + specifier: ^8 + version: 8.4.39 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.4(ts-node@10.9.2(@types/node@20.12.14)(typescript@5.1.6)) + typescript: + specifier: ^5 + version: 5.1.6 + apps/protoform: dependencies: '@westpac/ui': @@ -1860,63 +1900,123 @@ packages: '@next/env@14.2.4': resolution: {integrity: sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==} + '@next/env@14.2.5': + resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==} + '@next/eslint-plugin-next@14.2.4': resolution: {integrity: sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA==} + '@next/eslint-plugin-next@14.2.5': + resolution: {integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==} + '@next/swc-darwin-arm64@14.2.4': resolution: {integrity: sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@14.2.5': + resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@14.2.4': resolution: {integrity: sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@14.2.5': + resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@14.2.4': resolution: {integrity: sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@14.2.5': + resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@14.2.4': resolution: {integrity: sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@14.2.5': + resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@14.2.4': resolution: {integrity: sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@14.2.5': + resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@14.2.4': resolution: {integrity: sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@14.2.5': + resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@14.2.4': resolution: {integrity: sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@14.2.5': + resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-ia32-msvc@14.2.4': resolution: {integrity: sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] + '@next/swc-win32-ia32-msvc@14.2.5': + resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + '@next/swc-win32-x64-msvc@14.2.4': resolution: {integrity: sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@14.2.5': + resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -5559,6 +5659,15 @@ packages: typescript: optional: true + eslint-config-next@14.2.5: + resolution: {integrity: sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + eslint-config-prettier@8.6.0: resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true @@ -7413,6 +7522,24 @@ packages: sass: optional: true + next@14.2.5: + resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -7912,14 +8039,6 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.39: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} @@ -9373,6 +9492,11 @@ packages: '@types/react': optional: true + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-sync-external-store@1.2.2: resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} peerDependencies: @@ -9788,6 +9912,21 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + zustand@4.5.4: + resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -11615,37 +11754,70 @@ snapshots: '@next/env@14.2.4': {} + '@next/env@14.2.5': {} + '@next/eslint-plugin-next@14.2.4': dependencies: glob: 10.3.10 + '@next/eslint-plugin-next@14.2.5': + dependencies: + glob: 10.3.10 + '@next/swc-darwin-arm64@14.2.4': optional: true + '@next/swc-darwin-arm64@14.2.5': + optional: true + '@next/swc-darwin-x64@14.2.4': optional: true + '@next/swc-darwin-x64@14.2.5': + optional: true + '@next/swc-linux-arm64-gnu@14.2.4': optional: true + '@next/swc-linux-arm64-gnu@14.2.5': + optional: true + '@next/swc-linux-arm64-musl@14.2.4': optional: true + '@next/swc-linux-arm64-musl@14.2.5': + optional: true + '@next/swc-linux-x64-gnu@14.2.4': optional: true + '@next/swc-linux-x64-gnu@14.2.5': + optional: true + '@next/swc-linux-x64-musl@14.2.4': optional: true + '@next/swc-linux-x64-musl@14.2.5': + optional: true + '@next/swc-win32-arm64-msvc@14.2.4': optional: true + '@next/swc-win32-arm64-msvc@14.2.5': + optional: true + '@next/swc-win32-ia32-msvc@14.2.4': optional: true + '@next/swc-win32-ia32-msvc@14.2.5': + optional: true + '@next/swc-win32-x64-msvc@14.2.4': optional: true + '@next/swc-win32-x64-msvc@14.2.5': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -15178,7 +15350,7 @@ snapshots: '@types/pg@8.11.6': dependencies: - '@types/node': 17.0.12 + '@types/node': 20.12.14 pg-protocol: 1.6.1 pg-types: 4.0.2 @@ -15326,7 +15498,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 5.51.0(typescript@5.1.6) '@typescript-eslint/utils': 5.51.0(eslint@8.57.0)(typescript@5.1.6) - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 tsutils: 3.21.0(typescript@5.1.6) optionalDependencies: @@ -15344,10 +15516,10 @@ snapshots: dependencies: '@typescript-eslint/types': 5.51.0 '@typescript-eslint/visitor-keys': 5.51.0 - debug: 4.3.4 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 + semver: 7.6.2 tsutils: 3.21.0(typescript@5.1.6) optionalDependencies: typescript: 5.1.6 @@ -16435,12 +16607,12 @@ snapshots: css-loader@6.10.0(webpack@5.92.1(@swc/core@1.3.35)(esbuild@0.18.20)): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) - postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) - postcss-modules-scope: 3.1.1(postcss@8.4.35) - postcss-modules-values: 4.0.0(postcss@8.4.35) + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.39) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.39) + postcss-modules-scope: 3.1.1(postcss@8.4.39) + postcss-modules-values: 4.0.0(postcss@8.4.39) postcss-value-parser: 4.2.0 semver: 7.6.0 optionalDependencies: @@ -16985,6 +17157,24 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-config-next@14.2.5(eslint@8.57.0)(typescript@5.1.6): + dependencies: + '@next/eslint-plugin-next': 14.2.5 + '@rushstack/eslint-patch': 1.10.3 + '@typescript-eslint/parser': 5.51.0(eslint@8.57.0)(typescript@5.1.6) + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) + eslint-plugin-react: 7.34.3(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + eslint-config-prettier@8.6.0(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -17027,6 +17217,23 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + dependencies: + debug: 4.3.5 + enhanced-resolve: 5.17.0 + eslint: 8.57.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + fast-glob: 3.3.2 + get-tsconfig: 4.7.5 + is-core-module: 2.14.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.5 @@ -17055,6 +17262,17 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-module-utils@2.8.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.51.0(eslint@8.57.0)(typescript@5.1.6) + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.51.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + transitivePeerDependencies: + - supports-color + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 @@ -17796,7 +18014,7 @@ snapshots: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.5 minipass: 7.0.4 path-scurry: 1.10.1 @@ -17975,7 +18193,7 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -17994,7 +18212,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -18014,9 +18232,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.35): + icss-utils@5.1.0(postcss@8.4.39): dependencies: - postcss: 8.4.35 + postcss: 8.4.39 idb-keyval@6.2.1: {} @@ -18718,7 +18936,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.0 + semver: 7.6.2 make-error@1.3.6: {} @@ -19338,6 +19556,31 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@14.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@next/env': 14.2.5 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001640 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.0.0)(react@18.2.0) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.5 + '@next/swc-darwin-x64': 14.2.5 + '@next/swc-linux-arm64-gnu': 14.2.5 + '@next/swc-linux-arm64-musl': 14.2.5 + '@next/swc-linux-x64-gnu': 14.2.5 + '@next/swc-linux-x64-musl': 14.2.5 + '@next/swc-win32-arm64-msvc': 14.2.5 + '@next/swc-win32-ia32-msvc': 14.2.5 + '@next/swc-win32-x64-msvc': 14.2.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -19780,13 +20023,6 @@ snapshots: transitivePeerDependencies: - ts-node - postcss-import@15.1.0(postcss@8.4.31): - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - postcss-import@15.1.0(postcss@8.4.39): dependencies: postcss: 8.4.39 @@ -19794,11 +20030,6 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.31): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.31 - postcss-js@4.0.1(postcss@8.4.39): dependencies: camelcase-css: 2.0.1 @@ -19812,20 +20043,28 @@ snapshots: postcss: 8.4.31 ts-node: 10.9.1(@swc/core@1.3.35)(@types/node@20.12.12)(typescript@5.1.6) - postcss-load-config@4.0.2(postcss@8.4.31)(ts-node@10.9.2(@swc/core@1.3.35)(@types/node@17.0.12)(typescript@5.1.6)): + postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.35)(@types/node@20.12.12)(typescript@5.1.6)): dependencies: lilconfig: 3.1.1 yaml: 2.3.4 optionalDependencies: - postcss: 8.4.31 + postcss: 8.4.39 + ts-node: 10.9.1(@swc/core@1.3.35)(@types/node@20.12.12)(typescript@5.1.6) + + postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.35)(@types/node@17.0.12)(typescript@5.1.6)): + dependencies: + lilconfig: 3.1.1 + yaml: 2.3.4 + optionalDependencies: + postcss: 8.4.39 ts-node: 10.9.2(@swc/core@1.3.35)(@types/node@17.0.12)(typescript@5.1.6) - postcss-load-config@4.0.2(postcss@8.4.31)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.1.6)): + postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.1.6)): dependencies: lilconfig: 3.1.1 yaml: 2.3.4 optionalDependencies: - postcss: 8.4.31 + postcss: 8.4.39 ts-node: 10.9.2(@types/node@20.0.0)(typescript@5.1.6) postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@types/node@20.12.14)(typescript@5.1.6)): @@ -19839,47 +20078,42 @@ snapshots: postcss-loader@7.3.4(postcss@8.4.31)(typescript@5.1.6)(webpack@5.92.1(@swc/core@1.3.35)(esbuild@0.18.20)): dependencies: cosmiconfig: 8.3.6(typescript@5.1.6) - jiti: 1.21.0 + jiti: 1.21.6 postcss: 8.4.31 semver: 7.6.0 webpack: 5.92.1(@swc/core@1.3.35)(esbuild@0.18.20) transitivePeerDependencies: - typescript - postcss-modules-extract-imports@3.0.0(postcss@8.4.35): + postcss-modules-extract-imports@3.0.0(postcss@8.4.39): dependencies: - postcss: 8.4.35 + postcss: 8.4.39 - postcss-modules-local-by-default@4.0.4(postcss@8.4.35): + postcss-modules-local-by-default@4.0.4(postcss@8.4.39): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.1.1(postcss@8.4.35): + postcss-modules-scope@3.1.1(postcss@8.4.39): dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - - postcss-modules-values@4.0.0(postcss@8.4.35): - dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 - postcss-nested@6.0.1(postcss@8.4.31): + postcss-modules-values@4.0.0(postcss@8.4.39): dependencies: - postcss: 8.4.31 - postcss-selector-parser: 6.0.15 + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 postcss-nested@6.0.1(postcss@8.4.39): dependencies: postcss: 8.4.39 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.1.0 postcss-reporter@7.1.0(postcss@8.4.31): dependencies: - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.31 thenby: 1.3.4 @@ -19901,18 +20135,6 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.0.2 - postcss@8.4.35: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - postcss@8.4.39: dependencies: nanoid: 3.3.7 @@ -20517,12 +20739,12 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.31 + postcss: 8.4.39 source-map: 0.6.1 resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -21051,7 +21273,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 glob: 10.3.10 lines-and-columns: 1.2.4 @@ -21122,11 +21344,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.31 - postcss-import: 15.1.0(postcss@8.4.31) - postcss-js: 4.0.1(postcss@8.4.31) - postcss-load-config: 4.0.2(postcss@8.4.31)(ts-node@10.9.1(@swc/core@1.3.35)(@types/node@20.12.12)(typescript@5.1.6)) - postcss-nested: 6.0.1(postcss@8.4.31) + postcss: 8.4.39 + postcss-import: 15.1.0(postcss@8.4.39) + postcss-js: 4.0.1(postcss@8.4.39) + postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.35)(@types/node@20.12.12)(typescript@5.1.6)) + postcss-nested: 6.0.1(postcss@8.4.39) postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 resolve: 1.22.8 @@ -21150,11 +21372,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.31 - postcss-import: 15.1.0(postcss@8.4.31) - postcss-js: 4.0.1(postcss@8.4.31) - postcss-load-config: 4.0.2(postcss@8.4.31)(ts-node@10.9.2(@swc/core@1.3.35)(@types/node@17.0.12)(typescript@5.1.6)) - postcss-nested: 6.0.1(postcss@8.4.31) + postcss: 8.4.39 + postcss-import: 15.1.0(postcss@8.4.39) + postcss-js: 4.0.1(postcss@8.4.39) + postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.35)(@types/node@17.0.12)(typescript@5.1.6)) + postcss-nested: 6.0.1(postcss@8.4.39) postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 resolve: 1.22.8 @@ -21178,11 +21400,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.31 - postcss-import: 15.1.0(postcss@8.4.31) - postcss-js: 4.0.1(postcss@8.4.31) - postcss-load-config: 4.0.2(postcss@8.4.31)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.1.6)) - postcss-nested: 6.0.1(postcss@8.4.31) + postcss: 8.4.39 + postcss-import: 15.1.0(postcss@8.4.39) + postcss-js: 4.0.1(postcss@8.4.39) + postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.1.6)) + postcss-nested: 6.0.1(postcss@8.4.39) postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 resolve: 1.22.8 @@ -21690,7 +21912,7 @@ snapshots: unplugin@1.7.1: dependencies: acorn: 8.12.1 - chokidar: 3.5.3 + chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 @@ -21700,7 +21922,7 @@ snapshots: dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 update-browserslist-db@1.1.0(browserslist@4.23.1): dependencies: @@ -21756,6 +21978,10 @@ snapshots: optionalDependencies: '@types/react': 18.2.28 + use-sync-external-store@1.2.0(react@18.2.0): + dependencies: + react: 18.2.0 + use-sync-external-store@1.2.2(react@18.2.0): dependencies: react: 18.2.0 @@ -21808,10 +22034,10 @@ snapshots: vite-node@0.30.1(@types/node@20.12.14)(less@4.2.0)(terser@5.31.1): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.5 mlly: 1.6.0 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 vite: 4.5.3(@types/node@20.12.14)(less@4.2.0)(terser@5.31.1) transitivePeerDependencies: - '@types/node' @@ -21837,7 +22063,7 @@ snapshots: vite@5.2.12(@types/node@20.12.12)(less@4.2.0)(terser@5.31.1): dependencies: esbuild: 0.20.2 - postcss: 8.4.38 + postcss: 8.4.39 rollup: 4.18.0 optionalDependencies: '@types/node': 20.12.12 @@ -22181,4 +22407,12 @@ snapshots: yocto-queue@1.0.0: {} + zustand@4.5.4(@types/react@18.2.28)(immer@9.0.21)(react@18.2.0): + dependencies: + use-sync-external-store: 1.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.28 + immer: 9.0.21 + react: 18.2.0 + zwitch@2.0.4: {} From b7234cb8b24836be4a11aac1b71df2e13137f2e6 Mon Sep 17 00:00:00 2001 From: Jeremy Ortiz Date: Tue, 30 Jul 2024 13:43:00 +1000 Subject: [PATCH 2/2] chore: fix prettier --- apps/playground/tailwind.config.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/playground/tailwind.config.ts b/apps/playground/tailwind.config.ts index e9a0944e7..7747eda6a 100644 --- a/apps/playground/tailwind.config.ts +++ b/apps/playground/tailwind.config.ts @@ -1,17 +1,16 @@ -import type { Config } from "tailwindcss"; +import type { Config } from 'tailwindcss'; const config: Config = { content: [ - "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", - "./src/components/**/*.{js,ts,jsx,tsx,mdx}", - "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + './src/pages/**/*.{js,ts,jsx,tsx,mdx}', + './src/components/**/*.{js,ts,jsx,tsx,mdx}', + './src/app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: { backgroundImage: { - "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", - "gradient-conic": - "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', }, }, },