diff --git a/{{cookiecutter.project_dirname}}/__tests__/components/Navbar.test.tsx b/{{cookiecutter.project_dirname}}/__tests__/components/Navbar.test.tsx index 88e7d30..bf7c528 100644 --- a/{{cookiecutter.project_dirname}}/__tests__/components/Navbar.test.tsx +++ b/{{cookiecutter.project_dirname}}/__tests__/components/Navbar.test.tsx @@ -1,13 +1,10 @@ import { expect } from '@jest/globals' -import { screen } from '@testing-library/react' +import { render, screen } from '@testing-library/react' import React from 'react' import { Navbar } from '@/components/Navbar' -import { renderWithWrappers } from '../functions' - -const setup = () => renderWithWrappers() test('Navbar renders correctly', () => { - setup() + render() expect(screen.getByRole('img')).toBeTruthy() }) diff --git a/{{cookiecutter.project_dirname}}/__tests__/components/ThemeSwitch.test.tsx b/{{cookiecutter.project_dirname}}/__tests__/components/ThemeSwitch.test.tsx deleted file mode 100644 index 6b9b734..0000000 --- a/{{cookiecutter.project_dirname}}/__tests__/components/ThemeSwitch.test.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { expect } from '@jest/globals' -import { screen, fireEvent } from '@testing-library/react' -import React from 'react' - -import { renderWithWrappers } from '../functions' -import { ThemeSwitch } from '@/components/ThemeSwitch' - -const setup = () => renderWithWrappers() - -test('ThemeSwitch renders correctly', () => { - setup() - expect(screen.getByRole('checkbox')).toBeTruthy() -}) - -test('ThemeSwitch toggle dark mode on click', () => { - setup() - const input = screen.getByRole('checkbox') as HTMLInputElement - - fireEvent.click(input) - expect(input.checked).toEqual(true) - - fireEvent.click(input) - expect(input.checked).toEqual(false) -}) diff --git a/{{cookiecutter.project_dirname}}/__tests__/functions.tsx b/{{cookiecutter.project_dirname}}/__tests__/functions.tsx deleted file mode 100644 index e450dd7..0000000 --- a/{{cookiecutter.project_dirname}}/__tests__/functions.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Provider } from 'react-redux' -import { render } from '@testing-library/react' -import { ThemeProvider } from 'styled-components' -import React from 'react' - -import themes from '@/styles/themes' -import store from '@/store' - -import type { ReactElement } from 'react' - -const defaultStore = store - -import type { configureStore as configureStoreType } from '@reduxjs/toolkit' - -export const renderWithWrappers = ( - element: ReactElement, - store?: ReturnType -) => { - return render( - - {element} - - ).container -} diff --git a/{{cookiecutter.project_dirname}}/next.config.js b/{{cookiecutter.project_dirname}}/next.config.js index a33f053..dba5775 100644 --- a/{{cookiecutter.project_dirname}}/next.config.js +++ b/{{cookiecutter.project_dirname}}/next.config.js @@ -2,18 +2,13 @@ const { withSentryConfig } = require('@sentry/nextjs') -const { - SENTRY_AUTH_TOKEN, - SENTRY_ORG, - SENTRY_PROJECT_NAME, - SENTRY_URL, -} = process.env +const { SENTRY_AUTH_TOKEN, SENTRY_ORG, SENTRY_PROJECT_NAME, SENTRY_URL } = + process.env const nextjsConfig = { - compiler: { styledComponents: true }, - i18n:{ + i18n: { defaultLocale: 'en-US', - locales: ['en-US', 'it-IT'], + locales: ['en-US', 'it-IT'] }, output: 'standalone', reactStrictMode: true, @@ -22,7 +17,7 @@ const nextjsConfig = { { source: '/{{ cookiecutter.service_slug }}/health', destination: '/api/health' - }, + } ] } @@ -37,8 +32,9 @@ const SentryWebpackPluginOptions = { // Make sure adding Sentry options is the last code to run before exporting, to // ensure that your source maps include changes from all other Webpack plugins -const config = SENTRY_AUTH_TOKEN && SENTRY_ORG && SENTRY_URL - ? withSentryConfig(nextjsConfig, SentryWebpackPluginOptions) - : nextjsConfig +const config = + SENTRY_AUTH_TOKEN && SENTRY_ORG && SENTRY_URL + ? withSentryConfig(nextjsConfig, SentryWebpackPluginOptions) + : nextjsConfig module.exports = config diff --git a/{{cookiecutter.project_dirname}}/package.json b/{{cookiecutter.project_dirname}}/package.json index a41aadb..bd21778 100644 --- a/{{cookiecutter.project_dirname}}/package.json +++ b/{{cookiecutter.project_dirname}}/package.json @@ -15,19 +15,13 @@ }, "dependencies": { "@next/font": "^13.4.19", - "@reduxjs/toolkit": "^1.9.5", "@sentry/nextjs": "^7.64.0", "basic-auth": "^2.0.1", "express": "^4.18.2", "next": "^13.4.19", - "nookies": "^2.5.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-is": "^18.2.0", - "react-redux": "^8.1.2", - "redux": "^4.2.1", - "styled-components": "^6.0.8", - "styled-normalize": "^8.0.7" + "react-is": "^18.2.0" }, "devDependencies": { "@next/eslint-plugin-next": "^13.4.19", @@ -40,8 +34,6 @@ "@types/node": "^20.5.3", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "@types/react-redux": "^7.1.26", - "@types/styled-components": "^5.1.26", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", "eslint": "^8.48.0", diff --git a/{{cookiecutter.project_dirname}}/public/images/logo-dark.svg b/{{cookiecutter.project_dirname}}/public/images/logo-dark.svg deleted file mode 100644 index 8ed3dca..0000000 --- a/{{cookiecutter.project_dirname}}/public/images/logo-dark.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/{{cookiecutter.project_dirname}}/public/images/logo-light.svg b/{{cookiecutter.project_dirname}}/public/images/logo-light.svg deleted file mode 100644 index ff26e63..0000000 --- a/{{cookiecutter.project_dirname}}/public/images/logo-light.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/{{cookiecutter.project_dirname}}/src/components/Navbar.tsx b/{{cookiecutter.project_dirname}}/src/components/Navbar.tsx index 0ae1162..061ceba 100644 --- a/{{cookiecutter.project_dirname}}/src/components/Navbar.tsx +++ b/{{cookiecutter.project_dirname}}/src/components/Navbar.tsx @@ -1,34 +1,19 @@ import React from 'react' -import styled from 'styled-components' +import styles from '@/styles/navbar.module.css' -import { ThemeSwitch } from '@/components/ThemeSwitch' import Image from 'next/image' -import { useAppSelector } from '@/store' const Navbar = () => { - const theme = useAppSelector(state => state.utils.theme) - return ( - ) } -const Nav = styled.nav` - width: 100%; - background-color: ${({ theme }) => theme.colors.neutrals[100]}; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - padding: 5px; -` - export { Navbar } diff --git a/{{cookiecutter.project_dirname}}/src/components/ThemeSwitch.tsx b/{{cookiecutter.project_dirname}}/src/components/ThemeSwitch.tsx deleted file mode 100644 index d6d92bb..0000000 --- a/{{cookiecutter.project_dirname}}/src/components/ThemeSwitch.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import React, { useMemo } from 'react' -import styled from 'styled-components' -import nookies from 'nookies' - -import { Theme } from '@/models/Utils' -import { changeTheme } from '@/store/utilsSlice' -import { useAppDispatch, useAppSelector } from '@/store' - -const ThemeSwitch = () => { - const dispatch = useAppDispatch() - const theme = useAppSelector(state => state.utils.theme) - - const isDark = useMemo(() => theme === Theme.dark, [theme]) - const handlePressTheme = () => { - const newTheme = isDark ? Theme.light : Theme.dark - - nookies.set(null, 'THEME', newTheme, { - path: '/' - }) - - dispatch(changeTheme(newTheme)) - } - - return ( - - - - - ) -} - -const Switch = styled.label` - position: relative; - display: inline-block; - width: 45px; - height: 24px; -` - -const Input = styled.input` - opacity: 0; - width: 0; - height: 0; - outline: none; - - &:checked + span { - background-color: black; - - &::before { - transform: translateX(20px); - } - } - - &:focus + span { - box-shadow: 0 0 1px black; - } -` - -const Slider = styled.span` - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: ${({ theme }) => theme.colors.neutrals[0]}; - transition: 0.4s; - border-radius: 34px; - - &::before { - position: absolute; - content: ''; - height: 20px; - width: 20px; - left: 2px; - bottom: 2px; - background-color: ${({ theme }) => theme.colors.ui8}; - border-radius: 50%; - -webkit-transition: 0.4s; - transition: 0.4s; - } -` - -export { ThemeSwitch } diff --git a/{{cookiecutter.project_dirname}}/src/components/commons/Button.tsx b/{{cookiecutter.project_dirname}}/src/components/commons/Button.tsx deleted file mode 100644 index a7d8272..0000000 --- a/{{cookiecutter.project_dirname}}/src/components/commons/Button.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import styled from 'styled-components' - -export const Button = styled.button` - align-items: center; - background-color: ${({ theme }) => theme.colors.link}; - border: 0; - border-radius: 5px; - color: ${({ theme }) => theme.colors.ui1}; - cursor: pointer; - display: flex; - justify-content: center; - min-width: 120px; - outline: none; - padding: 10px; - transition: 0.3s background-color ease-in-out; - width: fit-content; - &:disabled { - cursor: not-allowed; - opacity: 0.4; - } - &:hover { - background-color: ${({ theme }) => theme.colors.activeLink}; - } -` diff --git a/{{cookiecutter.project_dirname}}/src/components/commons/Input.tsx b/{{cookiecutter.project_dirname}}/src/components/commons/Input.tsx deleted file mode 100644 index a167f02..0000000 --- a/{{cookiecutter.project_dirname}}/src/components/commons/Input.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react' -import styled from 'styled-components' - -type Props = JSX.IntrinsicElements['input'] & { - errors?: string[] -} - -const InputWithErrors = ({ - errors, - max, - min, - onChange, - placeholder, - required, - step, - style, - type, - value -}: Props) => { - return ( - - 0} - max={max} - min={min} - onChange={onChange} - placeholder={placeholder} - required={required} - step={step} - type={type} - value={value} - /> - {errors && errors.length > 0 && errors.map(err =>

{err}

)} -
- ) -} - -const Input = styled.input<{ errors?: boolean }>` - border: 1px solid black; - box-sizing: border-box; - border-radius: 6px; - padding: 10px 20px; - font-style: normal; - font-size: 16px; - line-height: 19px; - ::placeholder { - font-style: italic; - } -` - -const InputContainer = styled.div` - display: flex; - flex-direction: column; - margin-bottom: 25px; - p { - font-size: 12px; - margin-left: 10px; - color: ${({ theme }) => theme.colors.status.error}; - } -` - -export { Input, InputWithErrors } diff --git a/{{cookiecutter.project_dirname}}/src/components/commons/Typography.tsx b/{{cookiecutter.project_dirname}}/src/components/commons/Typography.tsx deleted file mode 100644 index b7facc9..0000000 --- a/{{cookiecutter.project_dirname}}/src/components/commons/Typography.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import styled from 'styled-components' - -type BaseTextProps = { - color?: string - italic?: boolean - margin?: string - uppercase?: boolean - weight?: 'bold' | 'normal' -} - -const GenericTitle = styled.h1` - color: ${({ color }) => color}; - margin: ${({ margin }) => margin || 0}; - text-transform: ${({ uppercase }) => (uppercase ? 'uppercase' : 'none')}; - ${({ italic }) => italic && 'font-style: italic;'}; -` - -export const H1 = { - Normal: styled(GenericTitle)` - font-size: ${({ theme }) => theme.titles.h1.normal.fontSize}; - font-weight: ${({ theme }) => theme.titles.h1.normal.fontWeight}; - `, - Big: styled(GenericTitle)` - font-size: ${({ theme }) => theme.titles.h1.big.fontSize}; - font-weight: ${({ theme }) => theme.titles.h1.big.fontWeight}; - `, - Medium: styled(GenericTitle)` - font-size: ${({ theme }) => theme.titles.h1.medium.fontSize}; - font-weight: ${({ theme }) => theme.titles.h1.medium.fontWeight}; - ` -} - -export const H2 = { - Normal: styled(GenericTitle).attrs({ as: 'h2' })` - font-size: ${({ theme }) => theme.titles.h2.normal.fontSize}; - font-weight: ${({ theme }) => theme.titles.h2.normal.fontWeight}; - ` -} - -export const H3 = { - Normal: styled(GenericTitle).attrs({ as: 'h3' })` - font-size: ${({ theme }) => theme.titles.h3.normal.fontSize}; - font-weight: ${({ theme }) => theme.titles.h3.normal.fontWeight}; - ` -} - -export const H4 = { - Normal: styled(GenericTitle).attrs({ as: 'h4' })` - font-size: ${({ theme }) => theme.titles.h4.normal.fontSize}; - font-weight: ${({ theme }) => theme.titles.h4.normal.fontWeight}; - ` -} - -const GenericText = styled.p` - color: ${({ color, theme }) => color || theme.colors.ui8}; - margin: ${({ margin }) => margin || 0}; - text-transform: ${({ uppercase }) => (uppercase ? 'uppercase' : 'none')}; - ${({ italic }) => italic && 'font-style: italic;'}; -` - -export const Text = { - Normal: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.normal.fontSize}; - font-weight: ${({ theme }) => theme.texts.normal.fontWeight}; - `, - NormalBold: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.normalBold.fontSize}; - font-weight: ${({ theme }) => theme.texts.normalBold.fontWeight}; - `, - Big: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.big.fontSize}; - font-weight: ${({ theme }) => theme.texts.big.fontWeight}; - `, - BigBold: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.bigBold.fontSize}; - font-weight: ${({ theme }) => theme.texts.bigBold.fontWeight}; - `, - Medium: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.medium.fontSize}; - font-weight: ${({ theme }) => theme.texts.medium.fontWeight}; - `, - MediumBold: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.mediumBold.fontSize}; - font-weight: ${({ theme }) => theme.texts.mediumBold.fontWeight}; - `, - Small: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.small.fontSize}; - font-weight: ${({ theme }) => theme.texts.small.fontWeight}; - `, - SmallBold: styled(GenericText)` - font-size: ${({ theme }) => theme.texts.smallBold.fontSize}; - font-weight: ${({ theme }) => theme.texts.smallBold.fontWeight}; - ` -} diff --git a/{{cookiecutter.project_dirname}}/src/components/layout/Base.tsx b/{{cookiecutter.project_dirname}}/src/components/layout/Base.tsx index 3d32c04..4031630 100644 --- a/{{cookiecutter.project_dirname}}/src/components/layout/Base.tsx +++ b/{{cookiecutter.project_dirname}}/src/components/layout/Base.tsx @@ -1,34 +1,35 @@ -import { parseCookies } from 'nookies' -import { ThemeProvider } from 'styled-components' -import React, { useEffect } from 'react' +import React from 'react' +import { + Open_Sans as OpenSans, + Hepta_Slab as HeptaSlab +} from '@next/font/google' -import { changeTheme } from '@/store/utilsSlice' -import { GlobalStyle } from '@/styles/GlobalStyle' import { Navbar } from '@/components/Navbar' -import { useAppDispatch, useAppSelector } from '@/store' -import themes from '@/styles/themes' + +const baseFont = OpenSans({ + subsets: ['latin'], + weight: ['400', '500', '700'], + style: ['normal', 'italic'], + variable: '--font-base' +}) + +const titleFont = HeptaSlab({ + subsets: ['latin'], + weight: ['400', '500', '700'], + style: ['normal'], + variable: '--font-title' +}) type Props = { children: React.ReactNode } const Layout = ({ children }: Props) => { - const dispatch = useAppDispatch() - const { theme } = useAppSelector(state => state.utils) - - useEffect(() => { - const cookie = parseCookies() - if (cookie['THEME'] !== theme) { - dispatch(changeTheme(cookie['THEME'])) - } - }, [dispatch, theme]) - return ( - - +
{children} - +
) } diff --git a/{{cookiecutter.project_dirname}}/src/models/Api.ts b/{{cookiecutter.project_dirname}}/src/models/Api.ts deleted file mode 100644 index 14e078f..0000000 --- a/{{cookiecutter.project_dirname}}/src/models/Api.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface ApiOptions { - serverSide: boolean -} - -export interface LoginRequest { - username: string - password: string -} - -export interface LoginResponse { - email: string -} diff --git a/{{cookiecutter.project_dirname}}/src/models/Utils.ts b/{{cookiecutter.project_dirname}}/src/models/Utils.ts deleted file mode 100644 index 441b4a3..0000000 --- a/{{cookiecutter.project_dirname}}/src/models/Utils.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum Theme { - light = 'light', - dark = 'dark' -} diff --git a/{{cookiecutter.project_dirname}}/src/pages/_app.tsx b/{{cookiecutter.project_dirname}}/src/pages/_app.tsx index 8184470..6951be8 100644 --- a/{{cookiecutter.project_dirname}}/src/pages/_app.tsx +++ b/{{cookiecutter.project_dirname}}/src/pages/_app.tsx @@ -1,8 +1,7 @@ -import { Provider } from 'react-redux' import Head from 'next/head' import React from 'react' -import store from '@/store' +import '@/styles/global.css' import Layout from '@/components/layout/Base' @@ -17,11 +16,9 @@ function MyApp({ Component, pageProps }: AppProps) { {title} - - - - - + + + ) } diff --git a/{{cookiecutter.project_dirname}}/src/pages/_document.tsx b/{{cookiecutter.project_dirname}}/src/pages/_document.tsx index f689f97..3513b93 100644 --- a/{{cookiecutter.project_dirname}}/src/pages/_document.tsx +++ b/{{cookiecutter.project_dirname}}/src/pages/_document.tsx @@ -1,36 +1,7 @@ import React from 'react' -import { ServerStyleSheet } from 'styled-components' import Document, { Html, Head, Main, NextScript } from 'next/document' -import type { DocumentInitialProps, DocumentContext } from 'next/document' - export default class MyDocument extends Document { - static async getInitialProps( - ctx: DocumentContext - ): Promise { - const sheet = new ServerStyleSheet() - const originalRenderPage = ctx.renderPage - - try { - ctx.renderPage = () => - originalRenderPage({ - enhanceApp: App => - function renderPage(props) { - return sheet.collectStyles() - } - }) - - const initialProps = await Document.getInitialProps(ctx) - - return { - ...initialProps, - styles: [initialProps.styles, sheet.getStyleElement()] - } - } finally { - sheet.seal() - } - } - render() { const { locale } = this.props return ( diff --git a/{{cookiecutter.project_dirname}}/src/pages/index.tsx b/{{cookiecutter.project_dirname}}/src/pages/index.tsx index 63b948e..1703287 100644 --- a/{{cookiecutter.project_dirname}}/src/pages/index.tsx +++ b/{{cookiecutter.project_dirname}}/src/pages/index.tsx @@ -1,28 +1,14 @@ import React from 'react' -import styled from 'styled-components' - -import { H1 } from '@/components/commons/Typography' +import styles from '@/styles/index.module.css' import type { NextPage } from 'next' const Home: NextPage = () => { return ( - - Hello World! - +
+

Hello World!

+
) } -const Container = styled.div` - display: flex; - flex: 1; - min-height: calc(100vh - 80px); - align-items: center; - justify-content: center; - flex-direction: column; - button { - margin-top: 30px; - } -` - export default Home diff --git a/{{cookiecutter.project_dirname}}/src/store/index.ts b/{{cookiecutter.project_dirname}}/src/store/index.ts deleted file mode 100644 index 1586c48..0000000 --- a/{{cookiecutter.project_dirname}}/src/store/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { configureStore } from '@reduxjs/toolkit' -import { useDispatch, useSelector } from 'react-redux' - -import reducers from '@/store/reducers' - -import type { Action } from 'redux' -import type { ThunkAction } from '@reduxjs/toolkit' -import type { TypedUseSelectorHook } from 'react-redux' - -const store = configureStore({ reducer: reducers }) -export type AppStore = typeof store -export type AppState = ReturnType -export type RootState = ReturnType -export type AppThunk = ThunkAction< - ReturnType, - AppState, - unknown, - Action -> -export type AppDispatch = typeof store.dispatch -export const useAppDispatch: () => AppDispatch = useDispatch -export const useAppSelector: TypedUseSelectorHook = useSelector - -export default store diff --git a/{{cookiecutter.project_dirname}}/src/store/reducers.ts b/{{cookiecutter.project_dirname}}/src/store/reducers.ts deleted file mode 100644 index 3efdc48..0000000 --- a/{{cookiecutter.project_dirname}}/src/store/reducers.ts +++ /dev/null @@ -1,7 +0,0 @@ -import utils from '@/store/utilsSlice' - -const reducers = { - utils -} - -export default reducers diff --git a/{{cookiecutter.project_dirname}}/src/store/utilsSlice.ts b/{{cookiecutter.project_dirname}}/src/store/utilsSlice.ts deleted file mode 100644 index 6a7a9b8..0000000 --- a/{{cookiecutter.project_dirname}}/src/store/utilsSlice.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { createSlice } from '@reduxjs/toolkit' - -import { Theme } from '@/models/Utils' - -interface UtilsState { - theme: Theme -} - -const initialState: UtilsState = { theme: Theme.light } - -const utilsSlice = createSlice({ - name: 'utils', - initialState, - reducers: { - changeTheme: (state, action) => { - state.theme = action.payload - } - } -}) - -export const { changeTheme } = utilsSlice.actions - -export default utilsSlice.reducer diff --git a/{{cookiecutter.project_dirname}}/src/styles/GlobalStyle.tsx b/{{cookiecutter.project_dirname}}/src/styles/GlobalStyle.tsx deleted file mode 100644 index 94f070a..0000000 --- a/{{cookiecutter.project_dirname}}/src/styles/GlobalStyle.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { createGlobalStyle } from 'styled-components' -import { normalize } from 'styled-normalize' - -import { - Open_Sans as OpenSans, - Hepta_Slab as HeptaSlab -} from '@next/font/google' - -const baseFont = OpenSans({ - subsets: ['latin'], - weight: ['400', '500', '700'], - style: ['normal', 'italic'] -}) - -const titleFont = HeptaSlab({ - subsets: ['latin'], - weight: ['400', '500', '700'], - style: ['normal'] -}) - -export const GlobalStyle = createGlobalStyle` - ${normalize} - - * { - box-sizing: border-box; - } - - body { - font-family: ${baseFont.style.fontFamily}; - font-weight: 400; - background-color: ${({ theme }) => theme.colors.neutrals[0]}; - color: ${({ theme }) => theme.colors.ui8}; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-family: ${titleFont.style.fontFamily}; - } -` diff --git a/{{cookiecutter.project_dirname}}/src/styles/global.css b/{{cookiecutter.project_dirname}}/src/styles/global.css new file mode 100644 index 0000000..1836820 --- /dev/null +++ b/{{cookiecutter.project_dirname}}/src/styles/global.css @@ -0,0 +1,19 @@ +* { + box-sizing: border-box; +} + +body { + font-family: var(--font-base); + font-weight: 400; + background-color: white; + color: rgb(28, 28, 28); +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: var(--font-title); +} diff --git a/{{cookiecutter.project_dirname}}/src/styles/index.module.css b/{{cookiecutter.project_dirname}}/src/styles/index.module.css new file mode 100644 index 0000000..14dbcf1 --- /dev/null +++ b/{{cookiecutter.project_dirname}}/src/styles/index.module.css @@ -0,0 +1,13 @@ +.title { + font-size: 40px; + font-weight: 500; +} + +.container { + display: flex; + flex: 1; + min-height: calc(100vh - 80px); + align-items: center; + justify-content: center; + flex-direction: column; +} diff --git a/{{cookiecutter.project_dirname}}/src/styles/navbar.module.css b/{{cookiecutter.project_dirname}}/src/styles/navbar.module.css new file mode 100644 index 0000000..339af01 --- /dev/null +++ b/{{cookiecutter.project_dirname}}/src/styles/navbar.module.css @@ -0,0 +1,9 @@ +.navbar { + width: 100%; + background-color: rgb(244, 247, 248); + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + padding: 5px; +} diff --git a/{{cookiecutter.project_dirname}}/src/styles/themes/dark.ts b/{{cookiecutter.project_dirname}}/src/styles/themes/dark.ts deleted file mode 100644 index 974fe59..0000000 --- a/{{cookiecutter.project_dirname}}/src/styles/themes/dark.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { theme as lightTheme } from '@/styles/themes/light' - -import type { DefaultTheme } from 'styled-components' - -const theme: DefaultTheme = { - ...lightTheme, - colors: { - ...lightTheme.colors, - ui1: '#1C1C1C', - ui2: '#333333', - ui3: '#696D73', - ui4: '#A6B0BB', - ui5: '#E5E8EB', - ui6: '#E0EAEF', - ui7: '#EDF8FF', - ui8: '#F1F9FF', - neutrals: { - 0: '#000000', - 100: '#404952', - 200: '#777F86', - 300: '#949CA1', - 400: '#B3B9BD', - 500: '#D2D7DA', - 600: '#F4F7F8' - } - } -} - -export { theme } diff --git a/{{cookiecutter.project_dirname}}/src/styles/themes/index.ts b/{{cookiecutter.project_dirname}}/src/styles/themes/index.ts deleted file mode 100644 index 3969878..0000000 --- a/{{cookiecutter.project_dirname}}/src/styles/themes/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Theme } from '@/models/Utils' -import { theme as light } from '@/styles/themes/light' -import { theme as dark } from '@/styles/themes/dark' - -const theme = { - [Theme.light]: light, - [Theme.dark]: dark -} - -export default theme diff --git a/{{cookiecutter.project_dirname}}/src/styles/themes/light.ts b/{{cookiecutter.project_dirname}}/src/styles/themes/light.ts deleted file mode 100644 index e5ac9cf..0000000 --- a/{{cookiecutter.project_dirname}}/src/styles/themes/light.ts +++ /dev/null @@ -1,116 +0,0 @@ -import type { DefaultTheme } from 'styled-components' - -const theme: DefaultTheme = { - colors: { - ui1: '#F1F9FF', - ui2: '#EDF8FF', - ui3: '#E0EAEF', - ui4: '#E5E8EB', - ui5: '#A6B0BB', - ui6: '#696D73', - ui7: '#333333', - ui8: '#1C1C1C', - link: '#316CF4', - activeLink: '#007AFF', - successLabel: '#B0FFD9', - errorLabel: '#FFD0D0', - primary: { - 0: '#D7F3FF', - 100: '#94D5F2', - 200: '#4D96DC', - 300: '#098BC5', - 400: '#00529E', - 500: '#002E5C' - }, - secondary: { - 0: '#34A853', - 100: '#FBBA03' - }, - status: { - info: '#007AFF', - attention: '#FFC700', - success: '#1AC755', - warning: '#FF7A00', - error: '#BA1B23' - }, - neutrals: { - 0: '#FFFFFF', - 100: '#F4F7F8', - 200: '#D2D7DA', - 300: '#B3B9BD', - 400: '#949CA1', - 500: '#777F86', - 600: '#404952' - } - }, - titles: { - h1: { - normal: { - fontSize: '40px', - fontWeight: 500 - }, - big: { - fontSize: '50px', - fontWeight: 500 - }, - medium: { - fontSize: '45px', - fontWeight: 500 - } - }, - h2: { - normal: { - fontSize: '32px', - fontWeight: 500 - } - }, - h3: { - normal: { - fontSize: '24px', - fontWeight: 500 - } - }, - h4: { - normal: { - fontSize: '20px', - fontWeight: 500 - } - } - }, - texts: { - normal: { - fontSize: '16px', - fontWeight: 400 - }, - normalBold: { - fontSize: '16px', - fontWeight: 700 - }, - big: { - fontSize: '18px', - fontWeight: 400 - }, - bigBold: { - fontSize: '18px', - fontWeight: 700 - }, - medium: { - fontSize: '12px', - fontWeight: 400 - }, - mediumBold: { - fontSize: '12px', - fontWeight: 700 - }, - small: { - fontSize: '10px', - fontWeight: 400 - }, - smallBold: { - fontSize: '10px', - fontWeight: 500 - } - } -} - -export { theme } diff --git a/{{cookiecutter.project_dirname}}/yarn.lock b/{{cookiecutter.project_dirname}}/yarn.lock index c93a7c6..629fca2 100644 --- a/{{cookiecutter.project_dirname}}/yarn.lock +++ b/{{cookiecutter.project_dirname}}/yarn.lock @@ -268,7 +268,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.12.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.9.2": version "7.23.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== @@ -351,23 +351,6 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@emotion/is-prop-valid@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" - integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw== - dependencies: - "@emotion/memoize" "^0.8.1" - -"@emotion/memoize@^0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" - integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== - -"@emotion/unitless@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" - integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -798,16 +781,6 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.0.tgz#7d8dacb7fdef0e4387caf7396cbd77f179867d06" integrity sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ== -"@reduxjs/toolkit@^1.9.5": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.7.tgz#7fc07c0b0ebec52043f8cb43510cf346405f78a6" - integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ== - dependencies: - immer "^9.0.21" - redux "^4.2.1" - redux-thunk "^2.4.2" - reselect "^4.1.8" - "@rollup/plugin-commonjs@24.0.0": version "24.0.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.0.tgz#fb7cf4a6029f07ec42b25daa535c75b05a43f75c" @@ -1149,14 +1122,6 @@ dependencies: "@types/node" "*" -"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" - integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== - dependencies: - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - "@types/http-errors@*": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" @@ -1252,16 +1217,6 @@ dependencies: "@types/react" "*" -"@types/react-redux@^7.1.26": - version "7.1.33" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.33.tgz#53c5564f03f1ded90904e3c90f77e4bd4dc20b15" - integrity sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg== - dependencies: - "@types/hoist-non-react-statics" "^3.3.0" - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - redux "^4.0.0" - "@types/react@*", "@types/react@^18.2.21": version "18.2.48" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" @@ -1313,30 +1268,11 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== -"@types/styled-components@^5.1.26": - version "5.1.34" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.34.tgz#4107df8ef8a7eaba4fa6b05f78f93fba4daf0300" - integrity sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA== - dependencies: - "@types/hoist-non-react-statics" "*" - "@types/react" "*" - csstype "^3.0.2" - -"@types/stylis@4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b" - integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw== - "@types/tough-cookie@*": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== -"@types/use-sync-external-store@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43" - integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== - "@types/yargs-parser@*": version "21.0.3" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" @@ -2135,11 +2071,6 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelize@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" - integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== - caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001565: version "1.0.30001576" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" @@ -2357,11 +2288,6 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2389,20 +2315,6 @@ cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-color-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" - integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== - -css-to-react-native@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" - integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== - dependencies: - camelize "^1.0.0" - css-color-keywords "^1.0.0" - postcss-value-parser "^4.0.2" - css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -2425,11 +2337,6 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== - csstype@^3.0.2: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" @@ -3835,7 +3742,7 @@ help-me@^4.0.1: glob "^8.0.0" readable-stream "^3.6.0" -hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -3939,11 +3846,6 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== -immer@^9.0.21: - version "9.0.21" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" - integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== - import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -5275,14 +5177,6 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -nookies@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/nookies/-/nookies-2.5.2.tgz#cc55547efa982d013a21475bd0db0c02c1b35b27" - integrity sha512-x0TRSaosAEonNKyCrShoUaJ5rrT5KHRNZ5DwPCuizjgrnkpE5DRf3VL7AyyQin4htict92X1EQ7ejDbaHDVdYA== - dependencies: - cookie "^0.4.1" - set-cookie-parser "^2.4.6" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -5619,11 +5513,6 @@ pkginfo@^0.4.1: resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" integrity sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ== -postcss-value-parser@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - postcss@8.4.31: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" @@ -5848,18 +5737,6 @@ react-is@^18.0.0, react-is@^18.2.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-redux@^8.1.2: - version "8.1.3" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" - integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== - dependencies: - "@babel/runtime" "^7.12.1" - "@types/hoist-non-react-statics" "^3.3.1" - "@types/use-sync-external-store" "^0.0.3" - hoist-non-react-statics "^3.3.2" - react-is "^18.0.0" - use-sync-external-store "^1.0.0" - react@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -5900,18 +5777,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redux-thunk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" - integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== - -redux@^4.0.0, redux@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" - integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== - dependencies: - "@babel/runtime" "^7.9.2" - reflect.getprototypeof@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" @@ -5970,11 +5835,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -reselect@^4.1.8: - version "4.1.8" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" - integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -6205,11 +6065,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-cookie-parser@^2.4.6: - version "2.6.0" - resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" - integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== - set-function-length@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" @@ -6235,11 +6090,6 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -shallowequal@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -6483,21 +6333,6 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -styled-components@^6.0.8: - version "6.1.8" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.8.tgz#c109d36aeea52d8f049e12de2f3be39a6fc86201" - integrity sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw== - dependencies: - "@emotion/is-prop-valid" "1.2.1" - "@emotion/unitless" "0.8.0" - "@types/stylis" "4.2.0" - css-to-react-native "3.2.0" - csstype "3.1.2" - postcss "8.4.31" - shallowequal "1.1.0" - stylis "4.3.1" - tslib "2.5.0" - styled-jsx@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" @@ -6505,16 +6340,6 @@ styled-jsx@5.1.1: dependencies: client-only "0.0.1" -styled-normalize@^8.0.7: - version "8.1.0" - resolved "https://registry.yarnpkg.com/styled-normalize/-/styled-normalize-8.1.0.tgz#bf2695104c9df85c6caa2205d207f03d22bfd792" - integrity sha512-GzcJvU/mHI2FXjdnTysDpRZSG+5NPid/bNIR/QZ/vOwc8HuqvOlOMDVr457sTKN+M3Hd3s5fdv9tC1v0BhT1nA== - -stylis@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb" - integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ== - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6685,11 +6510,6 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -6866,11 +6686,6 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" -use-sync-external-store@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"