From 5206f8b81b680a94e7b5cf73467896fcd64a31fa Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 16 Dec 2022 11:55:12 +0100 Subject: [PATCH 001/119] refactor(web): initial mantine setup --- web/package.json | 6 +- web/pnpm-lock.yaml | 574 +++++++++++++++++++---- web/src/index.css | 1 + web/src/main.tsx | 13 +- web/src/providers/VisibilityProvider.tsx | 31 -- 5 files changed, 485 insertions(+), 140 deletions(-) delete mode 100644 web/src/providers/VisibilityProvider.tsx diff --git a/web/package.json b/web/package.json index 4870e69..220ca96 100644 --- a/web/package.json +++ b/web/package.json @@ -5,13 +5,16 @@ "private": true, "dependencies": { "@chakra-ui/react": "2.3.6", - "@emotion/react": "^11.8.2", + "@emotion/react": "^11.10.5", "@emotion/styled": "^11.8.1", "@fortawesome/fontawesome-svg-core": "^6.1.1", "@fortawesome/free-brands-svg-icons": "^6.1.1", "@fortawesome/free-regular-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", "@fortawesome/react-fontawesome": "^0.1.18", + "@mantine/core": "^5.9.4", + "@mantine/dates": "^5.9.4", + "@mantine/hooks": "^5.9.4", "@testing-library/jest-dom": "^5.16.3", "@testing-library/react": "^12.1.4", "@testing-library/user-event": "^13.5.0", @@ -20,6 +23,7 @@ "@types/react": "^18.0.24", "@types/react-dom": "^18.0.8", "@vitejs/plugin-react": "^1.3.2", + "dayjs": "^1.11.7", "focus-trap-react": "^9.0.2", "framer-motion": "^6.2.8", "prettier": "^2.7.1", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 72e8794..31c3a4b 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -5,13 +5,16 @@ specifiers: '@babel/plugin-syntax-flow': ^7.14.5 '@babel/plugin-transform-react-jsx': ^7.14.9 '@chakra-ui/react': 2.3.6 - '@emotion/react': ^11.8.2 + '@emotion/react': ^11.10.5 '@emotion/styled': ^11.8.1 '@fortawesome/fontawesome-svg-core': ^6.1.1 '@fortawesome/free-brands-svg-icons': ^6.1.1 '@fortawesome/free-regular-svg-icons': ^6.1.1 '@fortawesome/free-solid-svg-icons': ^6.1.1 '@fortawesome/react-fontawesome': ^0.1.18 + '@mantine/core': ^5.9.4 + '@mantine/dates': ^5.9.4 + '@mantine/hooks': ^5.9.4 '@testing-library/dom': ^8.11.4 '@testing-library/jest-dom': ^5.16.3 '@testing-library/react': ^12.1.4 @@ -23,6 +26,7 @@ specifiers: '@vitejs/plugin-react': ^1.3.2 autoprefixer: ^10.0.2 cross-env: ^7.0.3 + dayjs: ^1.11.7 focus-trap-react: ^9.0.2 framer-motion: ^6.2.8 postcss: ^8.1.0 @@ -37,14 +41,17 @@ specifiers: web-vitals: ^2.1.4 dependencies: - '@chakra-ui/react': 2.3.6_zmrz2cmshjklcm3tj4hldbkley - '@emotion/react': 11.8.2_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_va75oy65rvpv5pp5ts2rjqhzoe + '@chakra-ui/react': 2.3.6_i4qi6vz53hwxibic4snumhcfqy + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy + '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe '@fortawesome/fontawesome-svg-core': 6.1.1 '@fortawesome/free-brands-svg-icons': 6.1.1 '@fortawesome/free-regular-svg-icons': 6.1.1 '@fortawesome/free-solid-svg-icons': 6.1.1 '@fortawesome/react-fontawesome': 0.1.18_sdfg7szeivrzzj63kiqxwaxkwu + '@mantine/core': 5.9.4_hhuapac6geeisg3mk6qmy7wn7a + '@mantine/dates': 5.9.4_qna4mfjln7nd2ikoxaebjem64u + '@mantine/hooks': 5.9.4_react@18.2.0 '@testing-library/jest-dom': 5.16.3 '@testing-library/react': 12.1.4_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 13.5.0_tejv2mq25i2itkdftmp7m2s2de @@ -53,6 +60,7 @@ dependencies: '@types/react': 18.0.24 '@types/react-dom': 18.0.8 '@vitejs/plugin-react': 1.3.2 + dayjs: 1.11.7 focus-trap-react: 9.0.2_v2m5e27vhdewzwhryxwfaorcca framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y prettier: 2.7.1 @@ -208,7 +216,7 @@ packages: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.18.7 /@babel/helper-environment-visitor/7.18.6: resolution: {integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==} @@ -221,7 +229,7 @@ packages: dependencies: '@babel/helper-get-function-arity': 7.16.7 '@babel/template': 7.16.7 - '@babel/types': 7.17.0 + '@babel/types': 7.18.7 /@babel/helper-function-name/7.18.6: resolution: {integrity: sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==} @@ -235,13 +243,13 @@ packages: resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.18.7 /@babel/helper-hoist-variables/7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.18.7 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} @@ -307,7 +315,7 @@ packages: resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.18.7 /@babel/helper-simple-access/7.18.6: resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} @@ -320,7 +328,7 @@ packages: resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.18.7 /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} @@ -336,7 +344,6 @@ packages: /@babel/helper-validator-identifier/7.18.6: resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} engines: {node: '>=6.9.0'} - dev: false /@babel/helper-validator-option/7.16.7: resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} @@ -372,7 +379,7 @@ packages: resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.16.7 + '@babel/helper-validator-identifier': 7.18.6 chalk: 2.4.2 js-tokens: 4.0.0 @@ -429,6 +436,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: false + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.17.8: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.18.6 + dev: false + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.6: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} @@ -517,6 +534,13 @@ packages: dependencies: regenerator-runtime: 0.13.9 + /@babel/runtime/7.20.6: + resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + /@babel/template/7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} @@ -582,7 +606,6 @@ packages: dependencies: '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 - dev: false /@chakra-ui/accordion/2.1.2_kmlicq6bwxmlcznv6sr6tuc4dy: resolution: {integrity: sha512-Jf7A6I0eIGk34zO5TiTW8orJOFQb5A/D1ekNYbaukNccoUPKJg/xdQ/b00oIR6LT93nJxggkoP/vszfmmTHuFg==} @@ -596,7 +619,7 @@ packages: '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/transition': 2.0.11_4tlgiwfhwimjjb62viejpa3zx4 framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 @@ -611,7 +634,7 @@ packages: '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/spinner': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -628,7 +651,7 @@ packages: '@chakra-ui/image': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -640,7 +663,7 @@ packages: dependencies: '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -657,7 +680,7 @@ packages: '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 '@chakra-ui/spinner': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -676,7 +699,7 @@ packages: '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/visually-hidden': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@zag-js/focus-visible': 0.1.0 framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y @@ -699,7 +722,7 @@ packages: react: '>=18' dependencies: '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -718,7 +741,7 @@ packages: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -732,13 +755,13 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/css-reset/2.0.8_uipakss5pgtuqzobjvamnha64i: + /@chakra-ui/css-reset/2.0.8_hp5f5nkljdiwilp4rgxyefcplu: resolution: {integrity: sha512-VuDD1rk1pFc+dItk4yUcstyoC9D2B35hatHDBtlPMqTczFAzpbgVJJYgEHANatXGfulM5SdckmYEIJ3Tac1Rtg==} peerDependencies: '@emotion/react': '>=10.0.35' react: '>=18' dependencies: - '@emotion/react': 11.8.2_tazjupc4o35ph7b3pedstd2nsy + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy react: 18.2.0 dev: false @@ -771,7 +794,7 @@ packages: '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -801,7 +824,7 @@ packages: '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/react-types': 2.0.3_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -824,7 +847,7 @@ packages: react: '>=18' dependencies: '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -835,7 +858,7 @@ packages: react: '>=18' dependencies: '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -850,7 +873,7 @@ packages: '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -866,7 +889,7 @@ packages: '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -890,7 +913,7 @@ packages: dependencies: '@chakra-ui/breakpoint-utils': 2.0.4 '@chakra-ui/react-env': 2.0.10_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -914,7 +937,7 @@ packages: '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 '@chakra-ui/react-use-outside-click': 2.0.4_react@18.2.0 '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/transition': 2.0.11_4tlgiwfhwimjjb62viejpa3zx4 framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 @@ -934,7 +957,7 @@ packages: '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/react-types': 2.0.3_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/transition': 2.0.11_4tlgiwfhwimjjb62viejpa3zx4 aria-hidden: 1.1.3 framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y @@ -962,7 +985,7 @@ packages: '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -985,7 +1008,7 @@ packages: '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1006,7 +1029,7 @@ packages: '@chakra-ui/react-use-focus-effect': 2.0.5_react@18.2.0 '@chakra-ui/react-use-focus-on-pointer-down': 2.0.3_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 dev: false @@ -1041,11 +1064,11 @@ packages: react: '>=18' dependencies: '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false - /@chakra-ui/provider/2.0.20_jhqg3ct5bm4gstf7pwswqr5qsi: + /@chakra-ui/provider/2.0.20_j4wg2sj2vch6fr6ex3thq6lg2q: resolution: {integrity: sha512-mNNfsgm05G4x1VzvHVR9+PNEiuxNnn9xUKDuEwoaO7+IHCMzCRMtPbSJjwmv0xvHUGB9+JChjPpZI5RuHQziJQ==} peerDependencies: '@emotion/react': ^11.0.0 @@ -1053,13 +1076,13 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/css-reset': 2.0.8_uipakss5pgtuqzobjvamnha64i + '@chakra-ui/css-reset': 2.0.8_hp5f5nkljdiwilp4rgxyefcplu '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y '@chakra-ui/react-env': 2.0.10_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/utils': 2.0.11 - '@emotion/react': 11.8.2_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_va75oy65rvpv5pp5ts2rjqhzoe + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy + '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: false @@ -1074,7 +1097,7 @@ packages: '@chakra-ui/react-context': 2.0.4_react@18.2.0 '@chakra-ui/react-types': 2.0.3_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@zag-js/focus-visible': 0.1.0 react: 18.2.0 dev: false @@ -1272,7 +1295,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/react/2.3.6_zmrz2cmshjklcm3tj4hldbkley: + /@chakra-ui/react/2.3.6_i4qi6vz53hwxibic4snumhcfqy: resolution: {integrity: sha512-xo43UU+yMqRGHZLU4fSgzojeRl5stlIfT+GLbT9CUVEm0HMJCt2m8RsNPBvGOMzANdC+bzwSiOm+MNzQBi9IBQ==} peerDependencies: '@emotion/react': ^11.0.0 @@ -1290,7 +1313,7 @@ packages: '@chakra-ui/close-button': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/control-box': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/counter': 2.0.10_react@18.2.0 - '@chakra-ui/css-reset': 2.0.8_uipakss5pgtuqzobjvamnha64i + '@chakra-ui/css-reset': 2.0.8_hp5f5nkljdiwilp4rgxyefcplu '@chakra-ui/editable': 2.0.13_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/hooks': 2.1.0_react@18.2.0 @@ -1308,7 +1331,7 @@ packages: '@chakra-ui/popper': 3.0.8_react@18.2.0 '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y '@chakra-ui/progress': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/provider': 2.0.20_jhqg3ct5bm4gstf7pwswqr5qsi + '@chakra-ui/provider': 2.0.20_j4wg2sj2vch6fr6ex3thq6lg2q '@chakra-ui/radio': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/react-env': 2.0.10_react@18.2.0 '@chakra-ui/select': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u @@ -1318,7 +1341,7 @@ packages: '@chakra-ui/stat': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/styled-system': 2.3.4 '@chakra-ui/switch': 2.0.14_kmlicq6bwxmlcznv6sr6tuc4dy - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/table': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/tabs': 2.1.4_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/tag': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u @@ -1330,8 +1353,8 @@ packages: '@chakra-ui/transition': 2.0.11_4tlgiwfhwimjjb62viejpa3zx4 '@chakra-ui/utils': 2.0.11 '@chakra-ui/visually-hidden': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@emotion/react': 11.8.2_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_va75oy65rvpv5pp5ts2rjqhzoe + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy + '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -1346,7 +1369,7 @@ packages: react: '>=18' dependencies: '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1362,7 +1385,7 @@ packages: dependencies: '@chakra-ui/media-query': 3.2.7_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/react-use-previous': 2.0.2_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1382,7 +1405,7 @@ packages: '@chakra-ui/react-use-pan-event': 2.0.5_react@18.2.0 '@chakra-ui/react-use-size': 2.0.4_react@18.2.0 '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1392,7 +1415,7 @@ packages: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1404,7 +1427,7 @@ packages: dependencies: '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1423,12 +1446,12 @@ packages: react: '>=18' dependencies: '@chakra-ui/checkbox': 2.2.2_kmlicq6bwxmlcznv6sr6tuc4dy - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 dev: false - /@chakra-ui/system/2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y: + /@chakra-ui/system/2.3.0_czahumb22fzwzcv7wksbqto7oq: resolution: {integrity: sha512-BxikahglBI0uU8FE3anEorDTU5oKTUuBIEKVcQrEVnrbNuRJEy1OVYyCNXfqW3MpruRO9ypYV2bWt02AZZWEaQ==} peerDependencies: '@emotion/react': ^11.0.0 @@ -1440,8 +1463,8 @@ packages: '@chakra-ui/styled-system': 2.3.4 '@chakra-ui/theme-utils': 2.0.1 '@chakra-ui/utils': 2.0.11 - '@emotion/react': 11.8.2_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_va75oy65rvpv5pp5ts2rjqhzoe + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy + '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe react: 18.2.0 react-fast-compare: 3.2.0 dev: false @@ -1453,7 +1476,7 @@ packages: react: '>=18' dependencies: '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1471,7 +1494,7 @@ packages: '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1483,7 +1506,7 @@ packages: dependencies: '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1494,7 +1517,7 @@ packages: react: '>=18' dependencies: '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1540,7 +1563,7 @@ packages: '@chakra-ui/react-use-timeout': 2.0.2_react@18.2.0 '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 '@chakra-ui/styled-system': 2.3.4 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq '@chakra-ui/theme': 2.1.14_kzevwk2hxgy6fnrjqv25jdmqp4 framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 @@ -1561,7 +1584,7 @@ packages: '@chakra-ui/react-use-disclosure': 2.0.5_react@18.2.0 '@chakra-ui/react-use-event-listener': 2.0.4_react@18.2.0 '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq framer-motion: 6.2.8_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -1592,7 +1615,7 @@ packages: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/system': 2.3.0_7cgzoxu72zx6aoub5hu3xkfl3y + '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq react: 18.2.0 dev: false @@ -1601,6 +1624,26 @@ packages: engines: {node: '>=10'} dev: false + /@emotion/babel-plugin/11.10.5_@babel+core@7.17.8: + resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.17.8 + '@babel/runtime': 7.20.6 + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/serialize': 1.1.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.8.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.1.3 + dev: false + /@emotion/babel-plugin/11.7.2_@babel+core@7.17.8: resolution: {integrity: sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==} peerDependencies: @@ -1609,10 +1652,10 @@ packages: '@babel/core': 7.17.8 '@babel/helper-module-imports': 7.16.7 '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8 - '@babel/runtime': 7.17.8 + '@babel/runtime': 7.20.6 '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.5 - '@emotion/serialize': 1.0.2 + '@emotion/serialize': 1.1.1 babel-plugin-macros: 2.8.0 convert-source-map: 1.8.0 escape-string-regexp: 4.0.0 @@ -1621,20 +1664,24 @@ packages: stylis: 4.0.13 dev: false - /@emotion/cache/11.7.1: - resolution: {integrity: sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==} + /@emotion/cache/11.10.5: + resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} dependencies: - '@emotion/memoize': 0.7.5 - '@emotion/sheet': 1.1.0 - '@emotion/utils': 1.1.0 - '@emotion/weak-memoize': 0.2.5 - stylis: 4.0.13 + '@emotion/memoize': 0.8.0 + '@emotion/sheet': 1.2.1 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + stylis: 4.1.3 dev: false /@emotion/hash/0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} dev: false + /@emotion/hash/0.9.0: + resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + dev: false + /@emotion/is-prop-valid/0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} requiresBuild: true @@ -1658,8 +1705,12 @@ packages: resolution: {integrity: sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==} dev: false - /@emotion/react/11.8.2_tazjupc4o35ph7b3pedstd2nsy: - resolution: {integrity: sha512-+1bcHBaNJv5nkIIgnGKVsie3otS0wF9f1T1hteF3WeVvMNQEtfZ4YyFpnphGoot3ilU/wWMgP2SgIDuHLE/wAA==} + /@emotion/memoize/0.8.0: + resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + dev: false + + /@emotion/react/11.10.5_tazjupc4o35ph7b3pedstd2nsy: + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} peerDependencies: '@babel/core': ^7.0.0 '@types/react': '*' @@ -1671,12 +1722,13 @@ packages: optional: true dependencies: '@babel/core': 7.17.8 - '@babel/runtime': 7.17.8 - '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 - '@emotion/cache': 11.7.1 - '@emotion/serialize': 1.0.2 - '@emotion/utils': 1.1.0 - '@emotion/weak-memoize': 0.2.5 + '@babel/runtime': 7.20.6 + '@emotion/babel-plugin': 11.10.5_@babel+core@7.17.8 + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 '@types/react': 18.0.24 hoist-non-react-statics: 3.3.2 react: 18.2.0 @@ -1688,15 +1740,25 @@ packages: '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.5 '@emotion/unitless': 0.7.5 - '@emotion/utils': 1.1.0 + '@emotion/utils': 1.2.0 csstype: 3.0.11 dev: false - /@emotion/sheet/1.1.0: - resolution: {integrity: sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==} + /@emotion/serialize/1.1.1: + resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + dependencies: + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/unitless': 0.8.0 + '@emotion/utils': 1.2.0 + csstype: 3.0.11 dev: false - /@emotion/styled/11.8.1_va75oy65rvpv5pp5ts2rjqhzoe: + /@emotion/sheet/1.2.1: + resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + dev: false + + /@emotion/styled/11.8.1_u4t5zvghn4tibzhpavspmf3vfe: resolution: {integrity: sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==} peerDependencies: '@babel/core': ^7.0.0 @@ -1713,7 +1775,7 @@ packages: '@babel/runtime': 7.17.8 '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 '@emotion/is-prop-valid': 1.1.2 - '@emotion/react': 11.8.2_tazjupc4o35ph7b3pedstd2nsy + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy '@emotion/serialize': 1.0.2 '@emotion/utils': 1.1.0 '@types/react': 18.0.24 @@ -1724,12 +1786,61 @@ packages: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} dev: false + /@emotion/unitless/0.8.0: + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks/1.0.0_react@18.2.0: + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + /@emotion/utils/1.1.0: resolution: {integrity: sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==} dev: false - /@emotion/weak-memoize/0.2.5: - resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} + /@emotion/utils/1.2.0: + resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + dev: false + + /@emotion/weak-memoize/0.3.0: + resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} + dev: false + + /@floating-ui/core/1.0.4: + resolution: {integrity: sha512-FPFLbg2b06MIw1dqk2SOEMAMX3xlrreGjcui5OTxfBDtaKTmh0kioOVjT8gcfl58juawL/yF+S+gnq8aUYQx/Q==} + dev: false + + /@floating-ui/dom/1.0.12: + resolution: {integrity: sha512-HeG/wHoa2laUHlDX3xkzqlUqliAfa+zqV04LaKIwNCmCNaW2p0fQi4/Kd0LB4GdFoJ2UllLFq5gWnXAd67lg7w==} + dependencies: + '@floating-ui/core': 1.0.4 + dev: false + + /@floating-ui/react-dom-interactions/0.10.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-UEHqdnzyoiWNU5az/tAljr9iXFzN18DcvpMqW+/cXz4FEhDEB1ogLtWldOWCujLerPBnSRocADALafelOReMpw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/react-dom': 1.0.1_biqbaboplfbrettd7655fr4n2y + aria-hidden: 1.1.3 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@floating-ui/react-dom/1.0.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-UW0t1Gi8ikbDRr8cQPVcqIDMBwUEENe5V4wlHWdrJ5egFnRQFBV9JirauTBFI6S8sM1qFUC1i+qa3g87E6CLTw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.0.12 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 dev: false /@fortawesome/fontawesome-common-types/6.1.1: @@ -1826,10 +1937,187 @@ packages: '@jridgewell/resolve-uri': 3.0.5 '@jridgewell/sourcemap-codec': 1.4.11 + /@mantine/core/5.9.4_hhuapac6geeisg3mk6qmy7wn7a: + resolution: {integrity: sha512-lUiRk9nHoK/lelAdyirt/MJh6ACHyV9OizYWUG4YjjZhYfGaKQQuZ7b8I/bCV3MMQmhjp02ujBPTEFHH7dzQkw==} + peerDependencies: + '@mantine/hooks': 5.9.4 + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/react-dom-interactions': 0.10.3_biqbaboplfbrettd7655fr4n2y + '@mantine/hooks': 5.9.4_react@18.2.0 + '@mantine/styles': 5.9.4_sogmqz4enknxtkxk3k5s6bqwnq + '@mantine/utils': 5.9.4_react@18.2.0 + '@radix-ui/react-scroll-area': 1.0.2_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-textarea-autosize: 8.3.4_bbvjflvjoibwhtpmedigb26h6y + transitivePeerDependencies: + - '@emotion/react' + - '@types/react' + dev: false + + /@mantine/dates/5.9.4_qna4mfjln7nd2ikoxaebjem64u: + resolution: {integrity: sha512-JgOQnc2cblzxsKl3m/Ygv1vIE49ObtioQTgRiAd8GXlZH0Urb81NYKiJoKHV5uJvLIIBkAYWVTs7PKc73dXs+Q==} + peerDependencies: + '@mantine/core': 5.9.4 + '@mantine/hooks': 5.9.4 + dayjs: '>=1.0.0' + react: '>=16.8.0' + dependencies: + '@mantine/core': 5.9.4_hhuapac6geeisg3mk6qmy7wn7a + '@mantine/hooks': 5.9.4_react@18.2.0 + '@mantine/utils': 5.9.4_react@18.2.0 + dayjs: 1.11.7 + react: 18.2.0 + dev: false + + /@mantine/hooks/5.9.4_react@18.2.0: + resolution: {integrity: sha512-W6RR6fLKh0gPnIA+HLnJ3NRbgnlhbjsajug+Fhhs+CE6z1528ROI63OZ9s5NIAUj/aATkEyJA64P/V/yXYZ69A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@mantine/styles/5.9.4_sogmqz4enknxtkxk3k5s6bqwnq: + resolution: {integrity: sha512-tgmRNgIMBiXIjnCkNh9l88J+ZgRGlAFQ20DwXIHygZ+hNX8z2Bg7I99xyZYdN4O3Km41CWqDUKxj/im7hT7D1Q==} + peerDependencies: + '@emotion/react': '>=11.9.0' + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy + clsx: 1.1.1 + csstype: 3.0.9 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@mantine/utils/5.9.4_react@18.2.0: + resolution: {integrity: sha512-NZAn30jjF52X+MFnkO3oaVgo2LPx3o/QxYlcuMkRBUTZALEXvQgrD0OyGDRgEXnfMdmkBP6rk3Pol6yXXEwU6w==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + /@popperjs/core/2.11.4: resolution: {integrity: sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==} dev: false + /@radix-ui/number/1.0.0: + resolution: {integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==} + dependencies: + '@babel/runtime': 7.20.6 + dev: false + + /@radix-ui/primitive/1.0.0: + resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + dependencies: + '@babel/runtime': 7.20.6 + dev: false + + /@radix-ui/react-compose-refs/1.0.0_react@18.2.0: + resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + react: 18.2.0 + dev: false + + /@radix-ui/react-context/1.0.0_react@18.2.0: + resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + react: 18.2.0 + dev: false + + /@radix-ui/react-direction/1.0.0_react@18.2.0: + resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + react: 18.2.0 + dev: false + + /@radix-ui/react-presence/1.0.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 + '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@radix-ui/react-primitive/1.0.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + '@radix-ui/react-slot': 1.0.1_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@radix-ui/react-scroll-area/1.0.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + '@radix-ui/number': 1.0.0 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 + '@radix-ui/react-context': 1.0.0_react@18.2.0 + '@radix-ui/react-direction': 1.0.0_react@18.2.0 + '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 + '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@radix-ui/react-slot/1.0.1_react@18.2.0: + resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-callback-ref/1.0.0_react@18.2.0: + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect/1.0.0_react@18.2.0: + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.6 + react: 18.2.0 + dev: false + /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -2082,11 +2370,20 @@ packages: /babel-plugin-macros/2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} dependencies: - '@babel/runtime': 7.17.8 + '@babel/runtime': 7.20.6 cosmiconfig: 6.0.0 resolve: 1.22.0 dev: false + /babel-plugin-macros/3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.20.6 + cosmiconfig: 7.1.0 + resolve: 1.22.0 + dev: false + /bail/2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: false @@ -2148,6 +2445,11 @@ packages: resolution: {integrity: sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==} dev: false + /clsx/1.1.1: + resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} + engines: {node: '>=6'} + dev: false + /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -2160,7 +2462,7 @@ packages: color-name: 1.1.4 /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2199,6 +2501,17 @@ packages: yaml: 1.10.2 dev: false + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + /cross-env/7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2238,6 +2551,14 @@ packages: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} dev: false + /csstype/3.0.9: + resolution: {integrity: sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==} + dev: false + + /dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dev: false + /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2504,7 +2825,7 @@ packages: engines: {node: '>=6'} /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} /escape-string-regexp/4.0.0: @@ -2625,7 +2946,7 @@ packages: engines: {node: '>=4'} /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} /has-flag/4.0.0: @@ -2687,7 +3008,7 @@ packages: dev: false /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: false /is-buffer/2.0.5: @@ -3055,7 +3376,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.16.7 + '@babel/code-frame': 7.18.6 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -3159,7 +3480,7 @@ packages: peerDependencies: react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.17.8 + '@babel/runtime': 7.20.6 react: 18.2.0 dev: false @@ -3186,7 +3507,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.17.8 + '@babel/runtime': 7.20.6 '@types/react': 18.0.24 focus-lock: 0.11.3 prop-types: 15.8.1 @@ -3286,6 +3607,20 @@ packages: tslib: 2.3.1 dev: false + /react-textarea-autosize/8.3.4_bbvjflvjoibwhtpmedigb26h6y: + resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.20.6 + react: 18.2.0 + use-composed-ref: 1.3.0_react@18.2.0 + use-latest: 1.2.1_bbvjflvjoibwhtpmedigb26h6y + transitivePeerDependencies: + - '@types/react' + dev: false + /react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -3301,6 +3636,10 @@ packages: strip-indent: 3.0.0 dev: false + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} @@ -3397,7 +3736,7 @@ packages: dev: false /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} /source-map/0.6.1: @@ -3433,6 +3772,10 @@ packages: resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} dev: false + /stylis/4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + dev: false + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3459,7 +3802,7 @@ packages: dev: false /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} /toggle-selection/1.0.6: @@ -3567,6 +3910,41 @@ packages: tslib: 2.3.1 dev: false + /use-composed-ref/1.3.0_react@18.2.0: + resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use-isomorphic-layout-effect/1.1.2_bbvjflvjoibwhtpmedigb26h6y: + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.24 + react: 18.2.0 + dev: false + + /use-latest/1.2.1_bbvjflvjoibwhtpmedigb26h6y: + resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.24 + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2_bbvjflvjoibwhtpmedigb26h6y + dev: false + /use-sidecar/1.1.2_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} diff --git a/web/src/index.css b/web/src/index.css index 38aaccb..2522b4a 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -3,6 +3,7 @@ @import url('https://fonts.googleapis.com/css2?family=Fira+Mono&display=swap'); @import url('https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700&display=swap'); +@import url("https://use.typekit.net/wxh5ury.css"); html { color-scheme: normal !important; diff --git a/web/src/main.tsx b/web/src/main.tsx index 9c04664..98073e3 100644 --- a/web/src/main.tsx +++ b/web/src/main.tsx @@ -2,7 +2,6 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; -import { VisibilityProvider } from './providers/VisibilityProvider'; import { ChakraProvider } from '@chakra-ui/react'; import { theme } from './theme'; import { debugData } from './utils/debugData'; @@ -12,6 +11,7 @@ import { fab } from '@fortawesome/free-brands-svg-icons'; import { library } from '@fortawesome/fontawesome-svg-core'; import { isEnvBrowser } from './utils/misc'; import LocaleProvider from './providers/LocaleProvider'; +import { MantineProvider } from '@mantine/core'; library.add(fas, far, fab); @@ -25,22 +25,15 @@ if (isEnvBrowser()) { root!.style.backgroundPosition = 'center'; } -debugData([ - { - action: 'setVisible', - data: true, - }, -]); - const root = document.getElementById('root'); ReactDOM.createRoot(root!).render( - + - + ); diff --git a/web/src/providers/VisibilityProvider.tsx b/web/src/providers/VisibilityProvider.tsx deleted file mode 100644 index 3da412e..0000000 --- a/web/src/providers/VisibilityProvider.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React, { Context, createContext, useContext, useState } from 'react'; -import { useNuiEvent } from '../hooks/useNuiEvent'; - -const VisibilityCtx = createContext(null); - -interface VisibilityProviderValue { - setVisible: (visible: boolean) => void; - visible: boolean; -} - -// This should be mounted at the top level of your application, it is currently set to -// apply a CSS visibility value. If this is non-performant, this should be customized. -export const VisibilityProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { - const [visible, setVisible] = useState(true); - - useNuiEvent('setVisible', setVisible); - - return ( - -
{children}
-
- ); -}; - -export const useVisibility = () => - useContext(VisibilityCtx as Context); From 1893b660146423f2c3c375e413160d6677550741 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 16 Dec 2022 12:03:31 +0100 Subject: [PATCH 002/119] refactor(web/dev): mantine rewrite --- web/src/features/dev/index.tsx | 129 ++++++++++++++------------------- 1 file changed, 56 insertions(+), 73 deletions(-) diff --git a/web/src/features/dev/index.tsx b/web/src/features/dev/index.tsx index f75224e..08492d3 100644 --- a/web/src/features/dev/index.tsx +++ b/web/src/features/dev/index.tsx @@ -1,16 +1,4 @@ -import { - Button, - Drawer, - DrawerBody, - DrawerContent, - DrawerHeader, - DrawerOverlay, - IconButton, - Tooltip, - VStack, - Divider, - useDisclosure, -} from '@chakra-ui/react'; +import { ActionIcon, Tooltip, Drawer, Stack, Divider, Button } from '@mantine/core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { debugAlert } from './debug/alert'; import { debugContext } from './debug/context'; @@ -20,72 +8,67 @@ import { debugCustomNotification, debugNotification } from './debug/notification import { debugCircleProgressbar, debugProgressbar } from './debug/progress'; import { debugTextUI } from './debug/textui'; import { debugSkillCheck } from './debug/skillcheck'; +import { useState } from 'react'; const Dev: React.FC = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); + const [opened, setOpened] = useState(false); return ( <> - - } - colorScheme="orange" - size="lg" - aria-label="Dev tools" - onClick={() => onOpen()} - /> + + setOpened(true)} + radius="xl" + variant="filled" + color="orange" + sx={{ position: 'absolute', bottom: 0, right: 0, width: 50, height: 50 }} + size="xl" + mr={50} + mb={50} + > + + - - - - Developer drawer - - - - - - - - - - - - - - - - - - - - - + + setOpened(false)} opened={opened} title="Developer drawer" padding="xl"> + + + + + + + + + + + + + + + + + + ); From f24e43a1a4fc9aed0cc916db511111af53b0bd09 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 16 Dec 2022 12:27:15 +0100 Subject: [PATCH 003/119] refactor(web/alert): alert dialog mantine rewrite --- web/src/features/dev/debug/alert.ts | 8 +-- web/src/features/dialog/AlertDialog.tsx | 74 ++++++++++++------------- web/src/main.tsx | 1 - web/src/providers/LocaleProvider.tsx | 1 + 4 files changed, 42 insertions(+), 42 deletions(-) diff --git a/web/src/features/dev/debug/alert.ts b/web/src/features/dev/debug/alert.ts index 8f98586..72674c2 100644 --- a/web/src/features/dev/debug/alert.ts +++ b/web/src/features/dev/debug/alert.ts @@ -10,10 +10,10 @@ export const debugAlert = () => { content: 'General kenobi \n Markdown works', centered: true, cancel: true, - labels: { - confirm: 'Ok', - cancel: 'Not ok', - }, + // labels: { + // confirm: 'Ok', + // cancel: 'Not ok', + // }, }, }, ]); diff --git a/web/src/features/dialog/AlertDialog.tsx b/web/src/features/dialog/AlertDialog.tsx index 5cf03a6..a6643a8 100644 --- a/web/src/features/dialog/AlertDialog.tsx +++ b/web/src/features/dialog/AlertDialog.tsx @@ -1,14 +1,5 @@ -import { - AlertDialog as Dialog, - AlertDialogBody, - AlertDialogFooter, - AlertDialogHeader, - AlertDialogContent, - AlertDialogOverlay, - useDisclosure, - Button, -} from '@chakra-ui/react'; -import { useRef, useState } from 'react'; +import { Modal, Button, Stack, Group } from '@mantine/core'; +import { useState } from 'react'; import ReactMarkdown from 'react-markdown'; import { useNuiEvent } from '../../hooks/useNuiEvent'; import { fetchNui } from '../../utils/fetchNui'; @@ -27,57 +18,66 @@ export interface AlertProps { const AlertDialog: React.FC = () => { const { locale } = useLocales(); - const { isOpen, onOpen, onClose } = useDisclosure(); - const cancelRef = useRef(null); + const [opened, setOpened] = useState(false); const [dialogData, setDialogData] = useState({ header: '', content: '', }); const closeAlert = (button: string) => { - onClose(); + setOpened(false); fetchNui('closeAlert', button); }; useNuiEvent('sendAlert', (data: AlertProps) => { setDialogData(data); - onOpen(); + setOpened(true); }); useNuiEvent('closeAlertDialog', () => { - onClose(); + setOpened(false); }); return ( <> - closeAlert('cancel')} + { + setOpened(false); + closeAlert('cancel'); + }} + withCloseButton={false} + overlayOpacity={0.5} + exitTransitionDuration={150} + title={{dialogData.header}} > - - - - {dialogData.header} - - - {dialogData.content} - - + + {dialogData.content} + {dialogData.cancel && ( - )} - - - - + + + ); }; diff --git a/web/src/main.tsx b/web/src/main.tsx index 98073e3..5a89415 100644 --- a/web/src/main.tsx +++ b/web/src/main.tsx @@ -4,7 +4,6 @@ import './index.css'; import App from './App'; import { ChakraProvider } from '@chakra-ui/react'; import { theme } from './theme'; -import { debugData } from './utils/debugData'; import { fas } from '@fortawesome/free-solid-svg-icons'; import { far } from '@fortawesome/free-regular-svg-icons'; import { fab } from '@fortawesome/free-brands-svg-icons'; diff --git a/web/src/providers/LocaleProvider.tsx b/web/src/providers/LocaleProvider.tsx index dd6e102..330fcd5 100644 --- a/web/src/providers/LocaleProvider.tsx +++ b/web/src/providers/LocaleProvider.tsx @@ -15,6 +15,7 @@ debugData([ data: { language: 'English', ui: { + cancel: 'Cancel', close: 'Close', confirm: 'Confirm', }, From c41947496986a0153d9f468d359a739de7b49a4c Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 16 Dec 2022 15:00:01 +0100 Subject: [PATCH 004/119] refactor(web/input): input dialog mantine rewrite --- web/src/features/dialog/AlertDialog.tsx | 8 +- web/src/features/dialog/InputDialog.tsx | 74 ++++++++++--------- .../dialog/components/fields/checkbox.tsx | 19 ++--- .../dialog/components/fields/input.tsx | 51 +++++-------- .../dialog/components/fields/number.tsx | 44 +++-------- .../dialog/components/fields/select.tsx | 32 +++----- .../dialog/components/fields/slider.tsx | 45 +++++------ web/src/interfaces/dialog.ts | 3 +- 8 files changed, 108 insertions(+), 168 deletions(-) diff --git a/web/src/features/dialog/AlertDialog.tsx b/web/src/features/dialog/AlertDialog.tsx index a6643a8..a828ec0 100644 --- a/web/src/features/dialog/AlertDialog.tsx +++ b/web/src/features/dialog/AlertDialog.tsx @@ -57,13 +57,7 @@ const AlertDialog: React.FC = () => { {dialogData.content} {dialogData.cancel && ( - )} diff --git a/web/src/features/dialog/InputDialog.tsx b/web/src/features/dialog/InputDialog.tsx index f9cf774..658933a 100644 --- a/web/src/features/dialog/InputDialog.tsx +++ b/web/src/features/dialog/InputDialog.tsx @@ -1,4 +1,4 @@ -import { Modal, ModalOverlay, ModalContent, ModalFooter, ModalHeader, ModalBody, Button } from '@chakra-ui/react'; +import { Group, Modal, Button, Stack } from '@mantine/core'; import React from 'react'; import { useNuiEvent } from '../../hooks/useNuiEvent'; import { useLocales } from '../../providers/LocaleProvider'; @@ -62,42 +62,48 @@ const InputDialog: React.FC = () => { return ( <> - - - { - if (e.key === 'Enter' && visible) return handleConfirm(); - }} - > - {fields.heading} - - {fields.rows.map((row: IInput | ICheckbox | ISelect | INumber | ISlider, index) => ( - - {row.type === 'input' && ( - - )} - {row.type === 'checkbox' && } - {row.type === 'select' && } - {row.type === 'number' && } - {row.type === 'slider' && } - - ))} - - - - - - + + ); diff --git a/web/src/features/dialog/components/fields/checkbox.tsx b/web/src/features/dialog/components/fields/checkbox.tsx index 6c36afc..bab6483 100644 --- a/web/src/features/dialog/components/fields/checkbox.tsx +++ b/web/src/features/dialog/components/fields/checkbox.tsx @@ -1,7 +1,6 @@ -import { Box, Checkbox, HStack, Text } from '@chakra-ui/react'; +import { Checkbox } from '@mantine/core'; import { useEffect } from 'react'; import { ICheckbox } from '../../../../interfaces/dialog'; -import Label from '../Label'; interface Props { row: ICheckbox; @@ -15,16 +14,12 @@ const CheckboxField: React.FC = (props) => { }, []); return ( - <> - - ) => props.handleChange(e.target.checked, props.index)} - defaultChecked={props.row.checked} - > - - - + ) => props.handleChange(e.target.checked, props.index)} + defaultChecked={props.row.checked} + /> ); }; diff --git a/web/src/features/dialog/components/fields/input.tsx b/web/src/features/dialog/components/fields/input.tsx index 0535e0f..5347d91 100644 --- a/web/src/features/dialog/components/fields/input.tsx +++ b/web/src/features/dialog/components/fields/input.tsx @@ -1,8 +1,7 @@ -import { Box, InputGroup, InputLeftElement, InputRightElement, Input } from '@chakra-ui/react'; +import { TextInput } from '@mantine/core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useEffect } from 'react'; import { IInput } from '../../../../interfaces/dialog'; -import Label from '../Label'; interface Props { row: IInput; @@ -18,37 +17,25 @@ const InputField: React.FC = (props) => { }, []); return ( - <> - - - + ) + } + /> ); }; diff --git a/web/src/features/dialog/components/fields/number.tsx b/web/src/features/dialog/components/fields/number.tsx index 4a82969..f3c3049 100644 --- a/web/src/features/dialog/components/fields/number.tsx +++ b/web/src/features/dialog/components/fields/number.tsx @@ -1,17 +1,7 @@ -import { - Box, - NumberInput, - NumberInputField, - NumberInputStepper, - NumberIncrementStepper, - NumberDecrementStepper, - InputLeftElement, - InputGroup, -} from '@chakra-ui/react'; +import { NumberInput } from '@mantine/core'; import { useEffect } from 'react'; import { INumber } from '../../../../interfaces/dialog'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import Label from '../Label'; interface Props { row: INumber; @@ -25,28 +15,16 @@ const NumberField: React.FC = (props) => { }, []); return ( - - + props.handleChange(value as number, props.index)} + icon={props.row.icon && } + /> ); }; diff --git a/web/src/features/dialog/components/fields/select.tsx b/web/src/features/dialog/components/fields/select.tsx index 28b7dea..7626667 100644 --- a/web/src/features/dialog/components/fields/select.tsx +++ b/web/src/features/dialog/components/fields/select.tsx @@ -1,4 +1,4 @@ -import { Box, Select } from '@chakra-ui/react'; +import { Select } from '@mantine/core'; import { useEffect } from 'react'; import { ISelect } from '../../../../interfaces/dialog'; @@ -8,6 +8,7 @@ interface Props { handleChange: (value: string, index: number) => void; } +// TODO: set label to value of value when there is no label provided const SelectField: React.FC = (props) => { useEffect(() => { if (props.row.default) { @@ -20,27 +21,14 @@ const SelectField: React.FC = (props) => { }, []); return ( - <> - - - - + - - {checked && ( - - - - )} - - + ); }; diff --git a/web/src/features/menu/list/Header.tsx b/web/src/features/menu/list/Header.tsx index 7a3ca1a..4d4198b 100644 --- a/web/src/features/menu/list/Header.tsx +++ b/web/src/features/menu/list/Header.tsx @@ -1,20 +1,31 @@ -import { Box, Text } from '@chakra-ui/react'; +import { Box, createStyles, Text } from '@mantine/core'; import React from 'react'; +const useStyles = createStyles((theme) => ({ + container: { + textAlign: 'center', + borderTopLeftRadius: theme.radius.md, + borderTopRightRadius: theme.radius.md, + backgroundColor: theme.colors.dark[6], + height: 60, + width: 384, + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + }, + heading: { + fontSize: 24, + textTransform: 'uppercase', + fontWeight: 500, + }, +})); + const Header: React.FC<{ title: string }> = ({ title }) => { + const { classes } = useStyles(); + return ( - - - {title} - + + {title} ); }; diff --git a/web/src/features/menu/list/ListItem.tsx b/web/src/features/menu/list/ListItem.tsx index 8b1ec32..51caa9a 100644 --- a/web/src/features/menu/list/ListItem.tsx +++ b/web/src/features/menu/list/ListItem.tsx @@ -1,8 +1,9 @@ -import { Box, Flex, Stack, Text, Progress } from '@chakra-ui/react'; +import { Box, Group, Stack, Text, Progress } from '@mantine/core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import React, { forwardRef } from 'react'; import CustomCheckbox from './CustomCheckbox'; import type { MenuItem } from './index'; +import { createStyles } from '@mantine/core'; interface Props { item: MenuItem; @@ -11,35 +12,80 @@ interface Props { checked: boolean; } +const useStyles = createStyles((theme, params: { iconColor?: string }) => ({ + buttonContainer: { + backgroundColor: theme.colors.dark[6], + borderRadius: theme.radius.md, + padding: 2, + height: 60, + scrollMargin: 8, + '&:focus': { + backgroundColor: theme.colors.dark[4], + outline: 'none', + }, + }, + buttonWrapper: { + paddingLeft: 5, + paddingRight: 12, + height: '100%', + }, + iconContainer: { + display: 'flex', + alignItems: 'center', + }, + icon: { + fontSize: 24, + color: params.iconColor || theme.colors.dark[2], + }, + label: { + color: theme.colors.dark[2], + textTransform: 'uppercase', + fontSize: 12, + verticalAlign: 'middle', + }, + chevronIcon: { + fontSize: 14, + color: theme.colors.dark[2], + }, + scrollIndexValue: { + color: theme.colors.dark[2], + textTransform: 'uppercase', + fontSize: 14, + }, + progressStack: { + width: '100%', + marginRight: 5, + }, + progressLabel: { + verticalAlign: 'middle', + marginBottom: 3, + }, +})); + const ListItem = forwardRef, Props>(({ item, index, scrollIndex, checked }, ref) => { + const { classes } = useStyles({ iconColor: item.iconColor }); + return ( { + ref={(element: HTMLDivElement) => { if (ref) // @ts-ignore i cba return (ref.current = [...ref.current, element]); }} > - + {item.icon && ( - - + + )} {Array.isArray(item.values) ? ( - - - - {item.label} - + + + {item.label} {typeof item.values[scrollIndex] === 'object' ? // @ts-ignore for some reason even checking the type TS still thinks it's a string @@ -47,30 +93,32 @@ const ListItem = forwardRef, Props>(({ item, index, : item.values[scrollIndex]} - - - + + + {scrollIndex + 1}/{item.values.length} - - - + + + ) : item.checked !== undefined ? ( - + {item.label} - + ) : item.progress !== undefined ? ( - - - {item.label} - - - + + {item.label} + ({ root: { backgroundColor: theme.colors.dark[3] } })} + /> + ) : ( {item.label} )} - + ); }); diff --git a/web/src/features/menu/list/index.tsx b/web/src/features/menu/list/index.tsx index e36d6bf..c4ffff2 100644 --- a/web/src/features/menu/list/index.tsx +++ b/web/src/features/menu/list/index.tsx @@ -1,4 +1,4 @@ -import { Box, Stack, Tooltip } from '@chakra-ui/react'; +import { Box, createStyles, Stack, Tooltip } from '@mantine/core'; import { useCallback, useEffect, useRef, useState } from 'react'; import { useNuiEvent } from '../../../hooks/useNuiEvent'; import ListItem from './ListItem'; @@ -9,6 +9,8 @@ import { fetchNui } from '../../../utils/fetchNui'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import React from 'react'; +type MenuPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; + export interface MenuItem { label: string; progress?: number; @@ -23,13 +25,53 @@ export interface MenuItem { } export interface MenuSettings { - position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; + position?: MenuPosition; title: string; canClose?: boolean; items: Array; startItemIndex?: number; } +const useStyles = createStyles((theme, params: { position?: MenuPosition; itemCount: number; selected: number }) => ({ + tooltip: { + backgroundColor: theme.colors.dark[6], + color: theme.colors.dark[2], + borderRadius: theme.radius.sm, + }, + container: { + position: 'absolute', + pointerEvents: 'none', + marginTop: params.position === 'top-left' || params.position === 'top-right' ? 5 : 0, + marginLeft: params.position === 'top-left' || params.position === 'bottom-left' ? 5 : 0, + marginRight: params.position === 'top-right' || params.position === 'bottom-right' ? 5 : 0, + marginBottom: params.position === 'bottom-left' || params.position === 'bottom-right' ? 5 : 0, + right: params.position === 'top-right' || params.position === 'bottom-right' ? 1 : undefined, + left: params.position === 'bottom-left' ? 1 : undefined, + bottom: params.position === 'bottom-left' || params.position === 'bottom-right' ? 1 : undefined, + fontFamily: 'Roboto', + }, + buttonsWrapper: { + height: 'fit-content', + maxHeight: 415, + overflow: 'hidden', + borderRadius: params.itemCount <= 6 || params.selected === params.itemCount - 1 ? theme.radius.md : undefined, + backgroundColor: theme.colors.dark[8], + borderTopLeftRadius: 0, + borderTopRightRadius: 0, + }, + scrollArrow: { + backgroundColor: theme.colors.dark[8], + textAlign: 'center', + borderBottomLeftRadius: theme.radius.md, + borderBottomRightRadius: theme.radius.md, + height: 25, + }, + scrollArrowIcon: { + color: theme.colors.dark[2], + fontSize: 20, + }, +})); + const ListMenu: React.FC = () => { const [menu, setMenu] = useState({ position: 'top-left', @@ -42,6 +84,7 @@ const ListMenu: React.FC = () => { const [checkedStates, setCheckedStates] = useState>({}); const listRefs = useRef>([]); const firstRenderRef = useRef(false); + const { classes } = useStyles({ position: menu.position, itemCount: menu.items.length, selected }); const closeMenu = (ignoreFetch?: boolean, keyPressed?: string, forceClose?: boolean) => { if (menu.canClose === false && !forceClose) return; @@ -184,44 +227,20 @@ const ListMenu: React.FC = () => { menu.items[selected].values[indexStates[selected]].description : menu.items[selected].description } - isOpen={ + opened={ isValuesObject(menu.items[selected].values) ? // @ts-ignore !!menu.items[selected].values[indexStates[selected]].description : !!menu.items[selected].description } - bg="#25262B" - color="#909296" - placement="bottom" - borderRadius="md" - fontFamily="Nunito" + transitionDuration={0} + classNames={{ tooltip: classes.tooltip }} > - +
- moveMenu(e)} - > + ) => moveMenu(e)}> - + {menu.items.map((item, index) => ( {item.label && ( @@ -239,8 +258,8 @@ const ListMenu: React.FC = () => { {menu.items.length > 6 && selected !== menu.items.length - 1 && ( - - + + )} From 9f1ae6184a5083715f1e38e9498adf244039b906 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 2 Jan 2023 14:02:07 +0100 Subject: [PATCH 023/119] chore(web): remove chakra packages --- web/package.json | 2 - web/pnpm-lock.yaml | 1314 +---------------- .../dialog/components/InfoTooltip.tsx | 23 - web/src/features/dialog/components/Label.tsx | 13 - .../features/progress/CircleProgressbar.tsx | 2 + web/src/features/progress/Progressbar.tsx | 3 +- web/src/index.css | 4 + web/src/main.tsx | 15 +- web/src/theme/index.ts | 12 +- 9 files changed, 16 insertions(+), 1372 deletions(-) delete mode 100644 web/src/features/dialog/components/InfoTooltip.tsx delete mode 100644 web/src/features/dialog/components/Label.tsx diff --git a/web/package.json b/web/package.json index 0c4978c..bdc9aaa 100644 --- a/web/package.json +++ b/web/package.json @@ -4,9 +4,7 @@ "homepage": "web/build", "private": true, "dependencies": { - "@chakra-ui/react": "2.3.6", "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.8.1", "@fortawesome/fontawesome-svg-core": "^6.1.1", "@fortawesome/free-brands-svg-icons": "^6.1.1", "@fortawesome/free-regular-svg-icons": "^6.1.1", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index ecbcf14..be37567 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -9,9 +9,7 @@ specifiers: '@babel/core': '>=7.0.0 <8.0.0' '@babel/plugin-syntax-flow': ^7.14.5 '@babel/plugin-transform-react-jsx': ^7.14.9 - '@chakra-ui/react': 2.3.6 '@emotion/react': ^11.10.5 - '@emotion/styled': ^11.8.1 '@fortawesome/fontawesome-svg-core': ^6.1.1 '@fortawesome/free-brands-svg-icons': ^6.1.1 '@fortawesome/free-regular-svg-icons': ^6.1.1 @@ -48,9 +46,7 @@ specifiers: web-vitals: ^2.1.4 dependencies: - '@chakra-ui/react': 2.3.6_lmf4e2bglwbz7zrp52glh3vtb4 '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe '@fortawesome/fontawesome-svg-core': 6.1.1 '@fortawesome/free-brands-svg-icons': 6.1.1 '@fortawesome/free-regular-svg-icons': 6.1.1 @@ -434,6 +430,7 @@ packages: dependencies: '@babel/core': 7.17.8 '@babel/helper-plugin-utils': 7.16.7 + dev: true /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.18.6: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} @@ -616,1023 +613,6 @@ packages: '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 - /@chakra-ui/accordion/2.1.2_r5w2a5xvuufbpzdplx7rhu5d34: - resolution: {integrity: sha512-Jf7A6I0eIGk34zO5TiTW8orJOFQb5A/D1ekNYbaukNccoUPKJg/xdQ/b00oIR6LT93nJxggkoP/vszfmmTHuFg==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - dependencies: - '@chakra-ui/descendant': 3.0.10_react@18.2.0 - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/transition': 2.0.11_mpyaigbqivyzkdvk6rklhdk7tm - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - dev: false - - /@chakra-ui/alert/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-n40KHU3j1H6EbIdgptjEad92V7Fpv7YD++ZBjy2g1h4w9ay9nw4kGHib3gaIkBupLf52CfLqySEc8w0taoIlXQ==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/spinner': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/anatomy/2.0.7: - resolution: {integrity: sha512-vzcB2gcsGCxhrKbldQQV6LnBPys4eSSsH2UA2mLsT+J3WlXw0aodZw0eE/nH7yLxe4zaQ4Gnc0KjkFW4EWNKSg==} - dev: false - - /@chakra-ui/avatar/2.2.0_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-mpAkfr/JG+BNBw2WvU55CSRFYKeFBUyAQAu3YulznLzi2U3e7k3IA0J8ofbrDYlSH/9KqkDuuSrxqGZgct+Nug==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/image': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/breadcrumb/2.1.0_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-khBR579SLDEo6Wuo3tETRY6m0yJD/WCvSR7Res2g1B6OJgc9OQGM7yIMu4OdLUTwfXsCnlHTDoSQPUxFOVAMIQ==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/breakpoint-utils/2.0.4: - resolution: {integrity: sha512-SUUEYnA/FCIKYDHMuEXcnBMwet+6RAAjQ+CqGD1hlwKPTfh7EK9fS8FoVAJa9KpRKAc/AawzPkgwvorzPj8NSg==} - dev: false - - /@chakra-ui/button/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-J6iMRITqxTxa0JexHUY9c7BXUrTZtSkl3jZ2hxiFybB4MQL8J2wZ24O846B6M+WTYqy7XVuHRuVURnH4czWesw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/spinner': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/checkbox/2.2.2_r5w2a5xvuufbpzdplx7rhu5d34: - resolution: {integrity: sha512-Y6Zbkkk5VNoe0RzqU6F+rKlFVPlubz1KIgYcb7CCNHGOM97dLtRm78eAvJ+7Xmpitr+7zZ4hJLLjfAz+e1X7rA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - dependencies: - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/visually-hidden': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@zag-js/focus-visible': 0.1.0 - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - dev: false - - /@chakra-ui/clickable/2.0.10_react@18.2.0: - resolution: {integrity: sha512-G6JdR6yAMlXpfjOJ70W2FL7aUwNuomiMFtkneeTpk7Q42bJ5iGHfYlbZEx5nJd8iB+UluXVM4xlhMv2MyytjGw==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/close-button/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-9WF/nwwK9BldS89WQ5PtXK2nFS4r8QOgKls2BOwXfE+rGmOUZtOsu8ne/drXRjgkiBRETR6CxdyUjm7EPzXllw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/color-mode/2.1.9_react@18.2.0: - resolution: {integrity: sha512-0kx0I+AQon8oS23/X+qMtnhsv/1BUulyJvU56p3Uh8CRaBfgJ7Ly9CerShoUL+5kadu6hN1M9oty4cugaCwv2w==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/control-box/2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-sHmZanFLEv4IDATl19ZTxq8Bi8PtjfvnsN6xF4k7JGSYUnk1YXUf1coyW7WKdcsczOASrMikfsLc3iEVAzx4Ng==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/counter/2.0.10_react@18.2.0: - resolution: {integrity: sha512-MZK8UKUZp4nFMd+GlV/cq0NIARS7UdlubTuCx+wockw9j2JI5OHzsyK0XiWuJiq5psegSTzpbtT99QfAUm3Yiw==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/number-utils': 2.0.4 - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/css-reset/2.0.8_hp5f5nkljdiwilp4rgxyefcplu: - resolution: {integrity: sha512-VuDD1rk1pFc+dItk4yUcstyoC9D2B35hatHDBtlPMqTczFAzpbgVJJYgEHANatXGfulM5SdckmYEIJ3Tac1Rtg==} - peerDependencies: - '@emotion/react': '>=10.0.35' - react: '>=18' - dependencies: - '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy - react: 18.2.0 - dev: false - - /@chakra-ui/descendant/3.0.10_react@18.2.0: - resolution: {integrity: sha512-MHH0Qdm0fGllGP2xgx4WOycmrpctyyEdGw6zxcfs2VqZNlrwmjG3Yb9eVY+Q7UmEv5rwAq6qRn7BhQxgSPn3Cg==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/dom-utils/2.0.3: - resolution: {integrity: sha512-aeGlRmTxcv0cvW44DyeZHru1i68ZDQsXpfX2dnG1I1yBlT6GlVx1xYjCULis9mjhgvd2O3NfcYPRTkjNWTDUbA==} - dev: false - - /@chakra-ui/editable/2.0.13_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-GM3n8t3/TOFFcDOWF/tuKsnqn66isZLsU+FkMRY2o0E8XjLBGjCKuXInPW5SRBqhje7EHC+kwViLE780PfwXbw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-focus-on-pointer-down': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/event-utils/2.0.5: - resolution: {integrity: sha512-VXoOAIsM0PFKDlhm+EZxkWlUXd5UFTb/LTux3y3A+S9G5fDxLRvpiLWByPUgTFTCDFcgTCF+YnQtdWJB4DLyxg==} - dev: false - - /@chakra-ui/focus-lock/2.0.12_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-NvIP59A11ZNbxXZ3qwxSiQ5npjABkpSbTIjK0uZ9bZm5LMfepRnuuA19VsVlq31/BYV9nHFAy6xzIuG+Qf9xMA==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/dom-utils': 2.0.3 - react: 18.2.0 - react-focus-lock: 2.9.1_bbvjflvjoibwhtpmedigb26h6y - transitivePeerDependencies: - - '@types/react' - dev: false - - /@chakra-ui/form-control/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-MVhIe0xY4Zn06IXRXFmS9tCa93snppK1SdUQb1P99Ipo424RrL5ykzLnJ8CAkQrhoVP3sxF7z3eOSzk8/iRfow==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/hooks/2.1.0_react@18.2.0: - resolution: {integrity: sha512-4H6BDITq/YrStW99LXurgPkcz4qHSVy9V/QWXCvt1pCuiDTqNztiW4r508H3ApAOsL9NEbyXcM/zWYD7r5VDjA==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-utils': 2.0.8_react@18.2.0 - '@chakra-ui/utils': 2.0.11 - compute-scroll-into-view: 1.0.14 - copy-to-clipboard: 3.3.1 - react: 18.2.0 - dev: false - - /@chakra-ui/icon/3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-RG4jf/XmBdaxOYI5J5QstEtTCPoVlmrQ/XiWhvN0LTgAnmZIqVwFl3Uw+satArdStHAs0GmJZg/E/soFTWuFmw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/image/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-S6NqAprPcbHnck/J+2wg06r9SSol62v5A01O8Kke2PnAyjalMcS+6P59lDRO7wvPqsdxq4PPbSTZP6Dww2CvcA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/input/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-lJ5necu+Wt698HdCTC7L/ErA2nNVJAra7+knPe0qMR+AizGEL7LKCV/bdQe7eggjvKsDGD4alJIEczUvm3JVUQ==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/object-utils': 2.0.4 - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/layout/2.1.9_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-ztsavtirtdtjxdqIkGR6fVcrffHp6hs1twRFO/dK14FGXrX3Nn9mi3J1fr1ITBHJq6y5B3yFEj0LHN2fO8dYyw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/breakpoint-utils': 2.0.4 - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/object-utils': 2.0.4 - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/shared-utils': 2.0.2 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/lazy-utils/2.0.2: - resolution: {integrity: sha512-MTxutBJZvqNNqrrS0722cI7qrnGu0yUQpIebmTxYwI+F3cOnPEKf5Ni+hrA8hKcw4XJhSY4npAPPYu1zJbOV4w==} - dev: false - - /@chakra-ui/live-region/2.0.10_react@18.2.0: - resolution: {integrity: sha512-eQ2ZIreR/plzi/KGszDYTi1TvIyGEBcPiWP52BQOS7xwpzb1vsoR1FgFAIELxAGJvKnMUs+9qVogfyRBX8PdOg==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/media-query/3.2.7_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-hbgm6JCe0kYU3PAhxASYYDopFQI26cW9kZnbp+5tRL1fykkVWNMPwoGC8FEZPur9JjXp7aoL6H4Jk7nrxY/XWw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/breakpoint-utils': 2.0.4 - '@chakra-ui/react-env': 2.0.10_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/menu/2.1.2_r5w2a5xvuufbpzdplx7rhu5d34: - resolution: {integrity: sha512-6Z7ecXjp6BtZ1ExbFggfxsAj1hwtcathXekmCTxHpXOD+BdjAC/13+oLclwXeuBO85aoTmQrQ2ovfTkO31bzRQ==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - dependencies: - '@chakra-ui/clickable': 2.0.10_react@18.2.0 - '@chakra-ui/descendant': 3.0.10_react@18.2.0 - '@chakra-ui/lazy-utils': 2.0.2 - '@chakra-ui/popper': 3.0.8_react@18.2.0 - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-animation-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-disclosure': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-focus-effect': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-outside-click': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/transition': 2.0.11_mpyaigbqivyzkdvk6rklhdk7tm - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - dev: false - - /@chakra-ui/modal/2.2.2_eedpjql22igyjxizmegfp4w7aq: - resolution: {integrity: sha512-cCYuqLZO4QqFUI1H+uEqixDk6UiCP3yC+sxkhFTXHIApSG9Z44v5np7BVTd6LKdmAN8pAWcc8Oxf14RvD6LWLw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - react-dom: '>=18' - dependencies: - '@chakra-ui/close-button': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/focus-lock': 2.0.12_bbvjflvjoibwhtpmedigb26h6y - '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/transition': 2.0.11_mpyaigbqivyzkdvk6rklhdk7tm - aria-hidden: 1.1.3 - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-remove-scroll: 2.5.5_bbvjflvjoibwhtpmedigb26h6y - transitivePeerDependencies: - - '@types/react' - dev: false - - /@chakra-ui/number-input/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-3owLjl01sCYpTd3xbq//fJo9QJ0Q3PVYSx9JeOzlXnnTW8ws+yHPrqQzPe7G+tO4yOYynWuUT+NJ9oyCeAJIxA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/counter': 2.0.10_react@18.2.0 - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-event-listener': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-interval': 2.0.2_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/number-utils/2.0.4: - resolution: {integrity: sha512-MdYd29GboBoKaXY9jhbY0Wl+0NxG1t/fa32ZSIbU6VrfMsZuAMl4NEJsz7Xvhy50fummLdKn5J6HFS7o5iyIgw==} - dev: false - - /@chakra-ui/object-utils/2.0.4: - resolution: {integrity: sha512-sY98L4v2wcjpwRX8GCXqT+WzpL0i5FHVxT1Okxw0360T2tGnZt7toAwpMfIOR3dzkemP9LfXMCyBmWR5Hi2zpQ==} - dev: false - - /@chakra-ui/pin-input/2.0.15_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-Ha8siSZm9gyjHHBK8ejwhKT6+75U12I/hNiYFvl2JHhc+Uh8tdi7+N+9SILO5vqbIv9kb+WGitvZ67I0cHjSfw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/descendant': 3.0.10_react@18.2.0 - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/popover/2.1.1_r5w2a5xvuufbpzdplx7rhu5d34: - resolution: {integrity: sha512-j09NsesfT+eaYITkITYJXDlRcPoOeQUM80neJZKOBgul2iHkVsEoii8dwS5Ip5ONeu4ane1b6zEOlYvYj2SrkA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - dependencies: - '@chakra-ui/close-button': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/lazy-utils': 2.0.2 - '@chakra-ui/popper': 3.0.8_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-animation-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-disclosure': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-focus-effect': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-focus-on-pointer-down': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - dev: false - - /@chakra-ui/popper/3.0.8_react@18.2.0: - resolution: {integrity: sha512-246eUwuCRsLpTPxn5T8D8T9/6ODqmmz6pRRJAjGnLlUB0gNHgjisBn0UDBic5Gbxcg0sqKvxOMY3uurbW5lXTA==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@popperjs/core': 2.11.4 - react: 18.2.0 - dev: false - - /@chakra-ui/portal/2.0.10_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-VRYvVAggIuqIZ3IQ6XZ1b5ujjjOUgPk9PPdc9jssUngZa7RG+5NXNhgoM8a5TsXv6aPEolBOlDNWuxzRQ4RSSg==} - peerDependencies: - react: '>=18' - react-dom: '>=18' - dependencies: - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false - - /@chakra-ui/progress/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-9qtZimZosTliI7siAZkLeCVdCpXCTxmSETCudHcCUsC+FtcFacmA65+We8qij1nOIqmsbm+NYU6PP89TU2n4Hg==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/provider/2.0.20_j4wg2sj2vch6fr6ex3thq6lg2q: - resolution: {integrity: sha512-mNNfsgm05G4x1VzvHVR9+PNEiuxNnn9xUKDuEwoaO7+IHCMzCRMtPbSJjwmv0xvHUGB9+JChjPpZI5RuHQziJQ==} - peerDependencies: - '@emotion/react': ^11.0.0 - '@emotion/styled': ^11.0.0 - react: '>=18' - react-dom: '>=18' - dependencies: - '@chakra-ui/css-reset': 2.0.8_hp5f5nkljdiwilp4rgxyefcplu - '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y - '@chakra-ui/react-env': 2.0.10_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/utils': 2.0.11 - '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false - - /@chakra-ui/radio/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-871hqAGQaufxyUzPP3aautPBIRZQmpi3fw5XPZ6SbY62dV61M4sjcttd46HfCf5SrAonoOADFQLMGQafznjhaA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@zag-js/focus-visible': 0.1.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-children-utils/2.0.3_react@18.2.0: - resolution: {integrity: sha512-tPQjLEEuAw/DYLRw0cNs/g8tcdhZ3r21Sr9dTAzoyvfk0vbZ24gCXRElltW2GZLiFA63mAidzhPmc+yQF3Wtgg==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-context/2.0.4_react@18.2.0: - resolution: {integrity: sha512-eBITFkf7fLSiMZrSdhweK4fYr41WUNMEeIEOP2dCWolE7WgKxNYaYleC+iRGY0GeXkFM2KYywUtixjJe29NuVA==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-env/2.0.10_react@18.2.0: - resolution: {integrity: sha512-3Yab5EbFcCGYzEsoijy4eA3354Z/JoXyk9chYIuW7Uwd+K6g/R8C0mUSAHeTmfp6Fix9kzDgerO5MWNM87b8cA==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-types/2.0.3_react@18.2.0: - resolution: {integrity: sha512-1mJYOQldFTALE0Wr3j6tk/MYvgQIp6CKkJulNzZrI8QN+ox/bJOh8OVP4vhwqvfigdLTui0g0k8M9h+j2ub/Mw==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-animation-state/2.0.5_react@18.2.0: - resolution: {integrity: sha512-8gZIqZpMS5yTGlC+IqYoSrV13joiAYoeI0YR2t68WuDagcZ459OrjE57+gF04NLxfdV7eUgwqnpuv7IOLbJX/A==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/dom-utils': 2.0.3 - '@chakra-ui/react-use-event-listener': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-callback-ref/2.0.4_react@18.2.0: - resolution: {integrity: sha512-he7EQfwMA4mwiDDKvX7cHIJaboCqf7UD3KYHGUcIjsF4dSc2Y8X5Ze4w+hmVZoJWIe4DWUzb3ili2SUm8eTgPg==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-controllable-state/2.0.5_react@18.2.0: - resolution: {integrity: sha512-JrZZpMX24CUyfDuyqDczw9Z9IMvjH8ujETHK0Zu4M0SIsX/q4EqOwwngUFL03I2gx/O38HfSdeX8hMu4zbTAGA==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-disclosure/2.0.5_react@18.2.0: - resolution: {integrity: sha512-kPLB9oxImASRhAbKfvfc03/lbAJbsXndEVRzd+nvvL+QZm2RRfnel3k6OIkWvGFOXXYOPE2+slLe8ZPwbTGg9g==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-event-listener/2.0.4_react@18.2.0: - resolution: {integrity: sha512-VqmalfKWMO8D21XuZO19WUtcP5xhbHXKzkggApTChZUN02UC5TC4pe0pYbDygoeUuNBhY+9lJKHeS08vYsljRg==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-focus-effect/2.0.5_react@18.2.0: - resolution: {integrity: sha512-sbe1QnsXXfjukM+laxbKnT0UnMpHe/7kTzEPG/BYM6/ZDUUmrC1Nz+8l+3H/52iWIaruikDBdif/Xd37Yvu3Kg==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/dom-utils': 2.0.3 - '@chakra-ui/react-use-event-listener': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-focus-on-pointer-down/2.0.3_react@18.2.0: - resolution: {integrity: sha512-8cKmpv26JnblexNaekWxEDI7M+MZnJcp1PJUz6lByjfQ1m4YjFr1cdbdhG4moaqzzYs7vTmO/qL8KVq8ZLUwyQ==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-event-listener': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-interval/2.0.2_react@18.2.0: - resolution: {integrity: sha512-5U1c0pEB5n0Yri0E4RdFXWx2RVBZBBhD8Uu49dM33jkIguCbIPmZ+YgVry5DDzCHyz4RgDg4yZKOPK0PI8lEUg==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-latest-ref/2.0.2_react@18.2.0: - resolution: {integrity: sha512-Ra/NMV+DSQ3n0AdKsyIqdgnFzls5UntabtIRfDXLrqmJ4tI0a1tDdop2qop0Ue87AcqD9P1KtQue4KPx7wCElw==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-merge-refs/2.0.4_react@18.2.0: - resolution: {integrity: sha512-aoWvtE5tDQNaLCiNUI6WV+MA2zVcCLR5mHSCISmowlTXyXOqOU5Fo9ZoUftzrmgCJpDu5x1jfUOivxuHUueb0g==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-outside-click/2.0.4_react@18.2.0: - resolution: {integrity: sha512-uerJKS8dqg2kHs1xozA5vcCqW0UInuwrfCPb+rDWBTpu7aEqxABMw9W3e4gfOABrAjhKz2I0a/bu2i8zbVwdLw==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-pan-event/2.0.5_react@18.2.0: - resolution: {integrity: sha512-nhE3b85++EEmBD2v6m46TLoA4LehSCZ349P8kvEjw/RC0K6XDOZndaBucIeAlnpEENSSUpczFfMSOLxSHdu0oA==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/event-utils': 2.0.5 - '@chakra-ui/react-use-latest-ref': 2.0.2_react@18.2.0 - framesync: 5.3.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-previous/2.0.2_react@18.2.0: - resolution: {integrity: sha512-ap/teLRPKopaHYD80fnf0TR/NpTWHJO5VdKg6sPyF1y5ediYLAzPT1G2OqMCj4QfJsYDctioT142URDYe0Nn7w==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-safe-layout-effect/2.0.2_react@18.2.0: - resolution: {integrity: sha512-gl5HDq9RVeDJiT8udtpx12KRV8JPLJHDIUX8f/yZcKpXow0C7FFGg5Yy5I9397NQog5ZjKMuOg+AUq9TLJxsyQ==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-size/2.0.4_react@18.2.0: - resolution: {integrity: sha512-W6rgTLuoSC4ovZtqYco8cG+yBadH3bhlg92T5lgpKDakSDr0mXcZdbGx6g0AOkgxXm0V1jWNGO1743wudtF7ew==} - peerDependencies: - react: '>=18' - dependencies: - '@zag-js/element-size': 0.1.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-timeout/2.0.2_react@18.2.0: - resolution: {integrity: sha512-n6zb3OmxtDmRMxYkDgILqKh15aDOa8jNLHBlqHzmlL6mEGNKmMFPW9j/KvpAqSgKjUTDRnnXcpneprTMKy/yrw==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - react: 18.2.0 - dev: false - - /@chakra-ui/react-use-update-effect/2.0.4_react@18.2.0: - resolution: {integrity: sha512-F/I9LVnGAQyvww+x7tQb47wCwjhMYjpxtM1dTg1U3oCEXY0yF1Ts3NJLUAlsr3nAW6epJIwWx61niC7KWpam1w==} - peerDependencies: - react: '>=18' - dependencies: - react: 18.2.0 - dev: false - - /@chakra-ui/react-utils/2.0.8_react@18.2.0: - resolution: {integrity: sha512-OSHHBKZlJWTi2NZcPnBx1PyZvLQY+n5RPBtcri7/89EDdAwz2NdEhp2Dz1yQRctOSCF1kB/rnCYDP1U0oRk9RQ==} - peerDependencies: - react: '>=18' - dependencies: - '@chakra-ui/utils': 2.0.11 - react: 18.2.0 - dev: false - - /@chakra-ui/react/2.3.6_lmf4e2bglwbz7zrp52glh3vtb4: - resolution: {integrity: sha512-xo43UU+yMqRGHZLU4fSgzojeRl5stlIfT+GLbT9CUVEm0HMJCt2m8RsNPBvGOMzANdC+bzwSiOm+MNzQBi9IBQ==} - peerDependencies: - '@emotion/react': ^11.0.0 - '@emotion/styled': ^11.0.0 - framer-motion: '>=4.0.0' - react: '>=18' - react-dom: '>=18' - dependencies: - '@chakra-ui/accordion': 2.1.2_r5w2a5xvuufbpzdplx7rhu5d34 - '@chakra-ui/alert': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/avatar': 2.2.0_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/breadcrumb': 2.1.0_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/button': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/checkbox': 2.2.2_r5w2a5xvuufbpzdplx7rhu5d34 - '@chakra-ui/close-button': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/control-box': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/counter': 2.0.10_react@18.2.0 - '@chakra-ui/css-reset': 2.0.8_hp5f5nkljdiwilp4rgxyefcplu - '@chakra-ui/editable': 2.0.13_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/hooks': 2.1.0_react@18.2.0 - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/image': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/input': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/layout': 2.1.9_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/live-region': 2.0.10_react@18.2.0 - '@chakra-ui/media-query': 3.2.7_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/menu': 2.1.2_r5w2a5xvuufbpzdplx7rhu5d34 - '@chakra-ui/modal': 2.2.2_eedpjql22igyjxizmegfp4w7aq - '@chakra-ui/number-input': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/pin-input': 2.0.15_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/popover': 2.1.1_r5w2a5xvuufbpzdplx7rhu5d34 - '@chakra-ui/popper': 3.0.8_react@18.2.0 - '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y - '@chakra-ui/progress': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/provider': 2.0.20_j4wg2sj2vch6fr6ex3thq6lg2q - '@chakra-ui/radio': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-env': 2.0.10_react@18.2.0 - '@chakra-ui/select': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/skeleton': 2.0.17_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/slider': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/spinner': 2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/stat': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/styled-system': 2.3.4 - '@chakra-ui/switch': 2.0.14_r5w2a5xvuufbpzdplx7rhu5d34 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/table': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/tabs': 2.1.4_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/tag': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/textarea': 2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/theme': 2.1.14_kzevwk2hxgy6fnrjqv25jdmqp4 - '@chakra-ui/theme-utils': 2.0.1 - '@chakra-ui/toast': 4.0.0_fh2kdmbk3zrge73f3a7mcxr4rm - '@chakra-ui/tooltip': 2.2.0_fh2kdmbk3zrge73f3a7mcxr4rm - '@chakra-ui/transition': 2.0.11_mpyaigbqivyzkdvk6rklhdk7tm - '@chakra-ui/utils': 2.0.11 - '@chakra-ui/visually-hidden': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - transitivePeerDependencies: - - '@types/react' - dev: false - - /@chakra-ui/select/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-NCDMb0w48GYCHmazVSQ7/ysEpbnri+Up6n+v7yytf6g43TPRkikvK5CsVgLnAEj0lIdCJhWXTcZer5wG5KOEgA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/shared-utils/2.0.2: - resolution: {integrity: sha512-wC58Fh6wCnFFQyiebVZ0NI7PFW9+Vch0QE6qN7iR+bLseOzQY9miYuzPJ1kMYiFd6QTOmPJkI39M3wHqrPYiOg==} - dev: false - - /@chakra-ui/skeleton/2.0.17_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-dL7viXEKDEzmAJGbHMj+QbGl9PAd0VWztEcWcz5wOGfmAcJllA0lVh6NmG/yqLb6iXPCX4Y1Y0Yurm459TEYWg==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/media-query': 3.2.7_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-use-previous': 2.0.2_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/slider/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-Cna04J7e4+F3tJNb7tRNfPP+koicbDsKJBp+f1NpR32JbRzIfrf2Vdr4hfD5/uOfC4RGxnVInNZzZLGBelLtLw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/number-utils': 2.0.4 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-callback-ref': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-latest-ref': 2.0.2_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-pan-event': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-size': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/spinner/2.0.10_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-SwId1xPaaFAaEYrR9eHkQHAuB66CbxwjWaQonEjeEUSh9ecxkd5WbXlsQSyf2hVRIqXJg0m3HIYblcKUsQt9Rw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/stat/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-ZPFK2fKufDSHD8bp/KhO3jLgW/b3PzdG4zV+7iTO7OYjxm5pkBfBAeMqfXGx4cl51rtWUKzsY0HV4vLLjcSjHw==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/styled-system/2.3.4: - resolution: {integrity: sha512-Lozbedu+GBj4EbHB/eGv475SFDLApsIEN9gNKiZJBJAE1HIhHn3Seh1iZQSrHC/Beq+D5cQq3Z+yPn3bXtFU7w==} - dependencies: - csstype: 3.0.11 - lodash.mergewith: 4.6.2 - dev: false - - /@chakra-ui/switch/2.0.14_r5w2a5xvuufbpzdplx7rhu5d34: - resolution: {integrity: sha512-6lzhCkJq7vbD3yGaorGLp0ZZU4ewdKwAu0e62qR8TfYZwbcbpkXbBKloIHbA2XKOduISzS2WYqjmoP6jSKIxrA==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - dependencies: - '@chakra-ui/checkbox': 2.2.2_r5w2a5xvuufbpzdplx7rhu5d34 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - dev: false - - /@chakra-ui/system/2.3.0_czahumb22fzwzcv7wksbqto7oq: - resolution: {integrity: sha512-BxikahglBI0uU8FE3anEorDTU5oKTUuBIEKVcQrEVnrbNuRJEy1OVYyCNXfqW3MpruRO9ypYV2bWt02AZZWEaQ==} - peerDependencies: - '@emotion/react': ^11.0.0 - '@emotion/styled': ^11.0.0 - react: '>=18' - dependencies: - '@chakra-ui/color-mode': 2.1.9_react@18.2.0 - '@chakra-ui/react-utils': 2.0.8_react@18.2.0 - '@chakra-ui/styled-system': 2.3.4 - '@chakra-ui/theme-utils': 2.0.1 - '@chakra-ui/utils': 2.0.11 - '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy - '@emotion/styled': 11.8.1_u4t5zvghn4tibzhpavspmf3vfe - react: 18.2.0 - react-fast-compare: 3.2.0 - dev: false - - /@chakra-ui/table/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-zQTiqPKEgjdeO/PG0FByn0fH4sPF7dLJF+YszrIzDc6wvpD96iY6MYLeV+CSelbH1g0/uibcJ10PSaFStfGUZg==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/tabs/2.1.4_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-/CQGj1lC9lvruT5BCYZH6Ok64W4CDSysDXuR2XPZXIih9kVOdXQEMXxG8+3vc63WqTBjHuURtZI0g8ouOy84ew==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/clickable': 2.0.10_react@18.2.0 - '@chakra-ui/descendant': 3.0.10_react@18.2.0 - '@chakra-ui/lazy-utils': 2.0.2 - '@chakra-ui/react-children-utils': 2.0.3_react@18.2.0 - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-controllable-state': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-safe-layout-effect': 2.0.2_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/tag/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-iJJcX+4hl+6Se/8eCRzG+xxDwZfiYgc4Ly/8s93M0uW2GLb+ybbfSE2DjeKSyk3mQVeGzuxGkBfDHH2c2v26ew==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/icon': 3.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/react-context': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/textarea/2.0.12_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-msR9YMynRXwZIqR6DgjQ2MogA/cW1syBx/R0v3es+9Zx8zlbuKdoLhYqajHteCup8dUzTeIH2Vs2vAwgq4wu5A==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/form-control': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@chakra-ui/theme-tools/2.0.12_kzevwk2hxgy6fnrjqv25jdmqp4: - resolution: {integrity: sha512-mnMlKSmXkCjHUJsKWmJbgBTGF2vnLaMLv1ihkBn5eQcCubMQrBLTiMAEFl5pZdzuHItU6QdnLGA10smcXbNl0g==} - peerDependencies: - '@chakra-ui/styled-system': '>=2.0.0' - dependencies: - '@chakra-ui/anatomy': 2.0.7 - '@chakra-ui/styled-system': 2.3.4 - '@ctrl/tinycolor': 3.4.0 - dev: false - - /@chakra-ui/theme-utils/2.0.1: - resolution: {integrity: sha512-NDwzgTPxm+v3PAJlSSU1MORHLMqO9vsRJ+ObELD5wpvE9aEyRziN/AZSoK2oLwCQMPEiU7R99K5ij1E6ptMt7w==} - dependencies: - '@chakra-ui/styled-system': 2.3.4 - '@chakra-ui/theme': 2.1.14_kzevwk2hxgy6fnrjqv25jdmqp4 - lodash.mergewith: 4.6.2 - dev: false - - /@chakra-ui/theme/2.1.14_kzevwk2hxgy6fnrjqv25jdmqp4: - resolution: {integrity: sha512-6EYJCQlrjSjNAJvZmw1un50F8+sQDFsdwu/7UzWe+TeANpKlz4ZcHbh0gkl3PD62lGis+ehITUwqRm8htvDOjw==} - peerDependencies: - '@chakra-ui/styled-system': '>=2.0.0' - dependencies: - '@chakra-ui/anatomy': 2.0.7 - '@chakra-ui/styled-system': 2.3.4 - '@chakra-ui/theme-tools': 2.0.12_kzevwk2hxgy6fnrjqv25jdmqp4 - dev: false - - /@chakra-ui/toast/4.0.0_fh2kdmbk3zrge73f3a7mcxr4rm: - resolution: {integrity: sha512-abeeloJac5T9WK2IN76fEM5FSRH+erNXln2HqDf5wLBn33avSBXWyTiUL8riVSUqto0lrIn6FuK/MmKo0DH4og==} - peerDependencies: - '@chakra-ui/system': 2.3.0 - framer-motion: '>=4.0.0' - react: '>=18' - react-dom: '>=18' - dependencies: - '@chakra-ui/alert': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/close-button': 2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u - '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y - '@chakra-ui/react-use-timeout': 2.0.2_react@18.2.0 - '@chakra-ui/react-use-update-effect': 2.0.4_react@18.2.0 - '@chakra-ui/styled-system': 2.3.4 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - '@chakra-ui/theme': 2.1.14_kzevwk2hxgy6fnrjqv25jdmqp4 - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false - - /@chakra-ui/tooltip/2.2.0_fh2kdmbk3zrge73f3a7mcxr4rm: - resolution: {integrity: sha512-oB97aQJBW+U3rRIt1ct7NaDRMnbW16JQ5ZBCl3BzN1VJWO3djiNuscpjVdZSceb+FdGSFo+GoDozp1ZwqdfFeQ==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - framer-motion: '>=4.0.0' - react: '>=18' - react-dom: '>=18' - dependencies: - '@chakra-ui/popper': 3.0.8_react@18.2.0 - '@chakra-ui/portal': 2.0.10_biqbaboplfbrettd7655fr4n2y - '@chakra-ui/react-types': 2.0.3_react@18.2.0 - '@chakra-ui/react-use-disclosure': 2.0.5_react@18.2.0 - '@chakra-ui/react-use-event-listener': 2.0.4_react@18.2.0 - '@chakra-ui/react-use-merge-refs': 2.0.4_react@18.2.0 - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false - - /@chakra-ui/transition/2.0.11_mpyaigbqivyzkdvk6rklhdk7tm: - resolution: {integrity: sha512-O0grc162LARPurjz1R+J+zr4AAKsVwN5+gaqLfZLMWg6TpvczJhwEA2fLCNAdkC/gomere390bJsy52xfUacUw==} - peerDependencies: - framer-motion: '>=4.0.0' - react: '>=18' - dependencies: - framer-motion: 8.0.2_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - dev: false - - /@chakra-ui/utils/2.0.11: - resolution: {integrity: sha512-4ZQdK6tbOuTrUCsAQBHWo7tw5/Q6pBV93ZbVpats61cSWMFGv32AIQw9/hA4un2zDeSWN9ZMVLNjAY2Dq/KQOA==} - dependencies: - '@types/lodash.mergewith': 4.6.6 - css-box-model: 1.2.1 - framesync: 5.3.0 - lodash.mergewith: 4.6.2 - dev: false - - /@chakra-ui/visually-hidden/2.0.11_e5d2utcogkjxxdp5h2rcoxuz2u: - resolution: {integrity: sha512-e+5amYvnsmEQdiWH4XMyvrtGTdwz//+48vwj5CsNWWcselzkwqodmciy5rIrT71/SCQDOtmgnL7ZWAUOffxfsQ==} - peerDependencies: - '@chakra-ui/system': '>=2.0.0' - react: '>=18' - dependencies: - '@chakra-ui/system': 2.3.0_czahumb22fzwzcv7wksbqto7oq - react: 18.2.0 - dev: false - - /@ctrl/tinycolor/3.4.0: - resolution: {integrity: sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==} - engines: {node: '>=10'} - dev: false - /@emotion/babel-plugin/11.10.5_@babel+core@7.17.8: resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} peerDependencies: @@ -1653,26 +633,6 @@ packages: stylis: 4.1.3 dev: false - /@emotion/babel-plugin/11.7.2_@babel+core@7.17.8: - resolution: {integrity: sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-module-imports': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8 - '@babel/runtime': 7.20.6 - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.5 - '@emotion/serialize': 1.1.1 - babel-plugin-macros: 2.8.0 - convert-source-map: 1.8.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.0.13 - dev: false - /@emotion/cache/11.10.5: resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} dependencies: @@ -1683,10 +643,6 @@ packages: stylis: 4.1.3 dev: false - /@emotion/hash/0.8.0: - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: false - /@emotion/hash/0.9.0: resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} dev: false @@ -1699,21 +655,11 @@ packages: dev: false optional: true - /@emotion/is-prop-valid/1.1.2: - resolution: {integrity: sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==} - dependencies: - '@emotion/memoize': 0.7.5 - dev: false - /@emotion/memoize/0.7.4: resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} dev: false optional: true - /@emotion/memoize/0.7.5: - resolution: {integrity: sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==} - dev: false - /@emotion/memoize/0.8.0: resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} dev: false @@ -1743,16 +689,6 @@ packages: react: 18.2.0 dev: false - /@emotion/serialize/1.0.2: - resolution: {integrity: sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==} - dependencies: - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.5 - '@emotion/unitless': 0.7.5 - '@emotion/utils': 1.2.0 - csstype: 3.0.11 - dev: false - /@emotion/serialize/1.1.1: resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} dependencies: @@ -1767,34 +703,6 @@ packages: resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} dev: false - /@emotion/styled/11.8.1_u4t5zvghn4tibzhpavspmf3vfe: - resolution: {integrity: sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==} - peerDependencies: - '@babel/core': ^7.0.0 - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@babel/core': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/core': 7.17.8 - '@babel/runtime': 7.17.8 - '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 - '@emotion/is-prop-valid': 1.1.2 - '@emotion/react': 11.10.5_tazjupc4o35ph7b3pedstd2nsy - '@emotion/serialize': 1.0.2 - '@emotion/utils': 1.1.0 - '@types/react': 18.0.24 - react: 18.2.0 - dev: false - - /@emotion/unitless/0.7.5: - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - dev: false - /@emotion/unitless/0.8.0: resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} dev: false @@ -1807,10 +715,6 @@ packages: react: 18.2.0 dev: false - /@emotion/utils/1.1.0: - resolution: {integrity: sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==} - dev: false - /@emotion/utils/1.2.0: resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} dev: false @@ -2058,10 +962,6 @@ packages: tslib: 2.4.0 dev: false - /@popperjs/core/2.11.4: - resolution: {integrity: sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==} - dev: false - /@radix-ui/number/1.0.0: resolution: {integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==} dependencies: @@ -2272,16 +1172,6 @@ packages: pretty-format: 26.6.2 dev: false - /@types/lodash.mergewith/4.6.6: - resolution: {integrity: sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==} - dependencies: - '@types/lodash': 4.14.180 - dev: false - - /@types/lodash/4.14.180: - resolution: {integrity: sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==} - dev: false - /@types/mdast/3.0.10: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: @@ -2362,14 +1252,6 @@ packages: - supports-color dev: false - /@zag-js/element-size/0.1.0: - resolution: {integrity: sha512-QF8wp0+V8++z+FHXiIw93+zudtubYszOtYbNgK39fg3pi+nCZtuSm4L1jC5QZMatNZ83MfOzyNCfgUubapagJQ==} - dev: false - - /@zag-js/focus-visible/0.1.0: - resolution: {integrity: sha512-PeaBcTmdZWcFf7n1aM+oiOdZc+sy14qi0emPIeUuGMTjbP0xLGrZu43kdpHnWSXy7/r4Ubp/vlg50MCV8+9Isg==} - dev: false - /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2423,14 +1305,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /babel-plugin-macros/2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} - dependencies: - '@babel/runtime': 7.20.6 - cosmiconfig: 6.0.0 - resolve: 1.22.0 - dev: false - /babel-plugin-macros/3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} @@ -2527,10 +1401,6 @@ packages: resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} dev: false - /compute-scroll-into-view/1.0.14: - resolution: {integrity: sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==} - dev: false - /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true @@ -2540,23 +1410,6 @@ packages: dependencies: safe-buffer: 5.1.2 - /copy-to-clipboard/3.3.1: - resolution: {integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==} - dependencies: - toggle-selection: 1.0.6 - dev: false - - /cosmiconfig/6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - /cosmiconfig/7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} @@ -2585,12 +1438,6 @@ packages: which: 2.0.2 dev: true - /css-box-model/1.2.1: - resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} - dependencies: - tiny-invariant: 1.2.0 - dev: false - /css.escape/1.5.1: resolution: {integrity: sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=} dev: false @@ -2641,10 +1488,6 @@ packages: engines: {node: '>=6'} dev: false - /detect-node-es/1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - dev: false - /diff-sequences/26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} engines: {node: '>= 10.14.2'} @@ -2900,13 +1743,6 @@ packages: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} dev: false - /focus-lock/0.11.3: - resolution: {integrity: sha512-4n0pYcPTa/uI7Q66BZna61nRT7lDhnuJ9PJr6wiDjx4uStg491ks41y7uOG+s0umaaa+hulNKSldU9aTg9/yVg==} - engines: {node: '>=10'} - dependencies: - tslib: 2.4.0 - dev: false - /focus-trap-react/9.0.2_v2m5e27vhdewzwhryxwfaorcca: resolution: {integrity: sha512-ZwhO5by6KG5r3dy48Lk00A1/0zNYw1Z3RZTN6O6kgAPsWFcwTFszOcQ1dLSfM8pIxpS/ttc7wTttJowjVT3jpg==} peerDependencies: @@ -2946,12 +1782,6 @@ packages: '@emotion/is-prop-valid': 0.8.8 dev: false - /framesync/5.3.0: - resolution: {integrity: sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==} - dependencies: - tslib: 2.4.0 - dev: false - /fs.realpath/1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} dev: true @@ -2972,11 +1802,6 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - /get-nonce/1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - dev: false - /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} dependencies: @@ -3056,12 +1881,6 @@ packages: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: false - /invariant/2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - dependencies: - loose-envify: 1.4.0 - dev: false - /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: false @@ -3127,10 +1946,6 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false - /lodash.mergewith/4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - dev: false - /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: false @@ -3521,15 +2336,6 @@ packages: resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} dev: false - /react-clientside-effect/1.2.6_react@18.2.0: - resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} - peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.20.6 - react: 18.2.0 - dev: false - /react-dom/18.2.0_react@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -3540,29 +2346,6 @@ packages: scheduler: 0.23.0 dev: false - /react-fast-compare/3.2.0: - resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} - dev: false - - /react-focus-lock/2.9.1_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-pSWOQrUmiKLkffPO6BpMXN7SNKXMsuOakl652IBuALAu1esk+IcpJyM+ALcYzPTTFz1rD0R54aB9A4HuP5t1Wg==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.20.6 - '@types/react': 18.0.24 - focus-lock: 0.11.3 - prop-types: 15.8.1 - react: 18.2.0 - react-clientside-effect: 1.2.6_react@18.2.0 - use-callback-ref: 1.3.0_bbvjflvjoibwhtpmedigb26h6y - use-sidecar: 1.1.2_bbvjflvjoibwhtpmedigb26h6y - dev: false - /react-hot-toast/2.4.0_6dztgcaza2bodipt2i5a4is4mu_npw22p3c4ehm7n7vxn2gqac44u: resolution: {integrity: sha512-qnnVbXropKuwUpriVVosgo8QrB+IaPJCpL8oBI6Ov84uvHZ5QQcTp2qg6ku2wNfgJl6rlQXJIQU5q+5lmPOutA==} engines: {node: '>=10'} @@ -3616,58 +2399,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-remove-scroll-bar/2.3.4_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.24 - react: 18.2.0 - react-style-singleton: 2.2.1_bbvjflvjoibwhtpmedigb26h6y - tslib: 2.4.0 - dev: false - - /react-remove-scroll/2.5.5_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.24 - react: 18.2.0 - react-remove-scroll-bar: 2.3.4_bbvjflvjoibwhtpmedigb26h6y - react-style-singleton: 2.2.1_bbvjflvjoibwhtpmedigb26h6y - tslib: 2.4.0 - use-callback-ref: 1.3.0_bbvjflvjoibwhtpmedigb26h6y - use-sidecar: 1.1.2_bbvjflvjoibwhtpmedigb26h6y - dev: false - - /react-style-singleton/2.2.1_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.24 - get-nonce: 1.0.1 - invariant: 2.2.4 - react: 18.2.0 - tslib: 2.4.0 - dev: false - /react-textarea-autosize/8.3.4_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} engines: {node: '>=10'} @@ -3822,10 +2553,6 @@ packages: inline-style-parser: 0.1.1 dev: false - /stylis/4.0.13: - resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} - dev: false - /stylis/4.1.3: resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} dev: false @@ -3851,18 +2578,10 @@ packages: resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==} dev: false - /tiny-invariant/1.2.0: - resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} - dev: false - /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - /toggle-selection/1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false - /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false @@ -3949,21 +2668,6 @@ packages: unist-util-visit-parents: 5.1.0 dev: false - /use-callback-ref/1.3.0_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.24 - react: 18.2.0 - tslib: 2.4.0 - dev: false - /use-composed-ref/1.3.0_react@18.2.0: resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} peerDependencies: @@ -3999,22 +2703,6 @@ packages: use-isomorphic-layout-effect: 1.1.2_bbvjflvjoibwhtpmedigb26h6y dev: false - /use-sidecar/1.1.2_bbvjflvjoibwhtpmedigb26h6y: - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.24 - detect-node-es: 1.1.0 - react: 18.2.0 - tslib: 2.4.0 - dev: false - /uvu/0.5.3: resolution: {integrity: sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==} engines: {node: '>=8'} diff --git a/web/src/features/dialog/components/InfoTooltip.tsx b/web/src/features/dialog/components/InfoTooltip.tsx deleted file mode 100644 index 967ce1a..0000000 --- a/web/src/features/dialog/components/InfoTooltip.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Box, Tooltip } from '@chakra-ui/react'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; - -const InfoTooltip: React.FC<{ description: string }> = ({ description }) => { - return ( - - - - - - ); -}; - -export default InfoTooltip; diff --git a/web/src/features/dialog/components/Label.tsx b/web/src/features/dialog/components/Label.tsx deleted file mode 100644 index 90e0a0a..0000000 --- a/web/src/features/dialog/components/Label.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { HStack, Text } from '@chakra-ui/react'; -import InfoTooltip from './InfoTooltip'; - -const Label: React.FC<{ label: string; description?: string }> = ({ label, description }) => { - return ( - - {label} - {description && } - - ); -}; - -export default Label; diff --git a/web/src/features/progress/CircleProgressbar.tsx b/web/src/features/progress/CircleProgressbar.tsx index b78d5e0..71fda9c 100644 --- a/web/src/features/progress/CircleProgressbar.tsx +++ b/web/src/features/progress/CircleProgressbar.tsx @@ -42,10 +42,12 @@ const useStyles = createStyles((theme, params: { position: 'middle' | 'bottom'; textAlign: 'center', fontFamily: 'roboto-mono', textShadow: theme.shadows.sm, + color: theme.colors.gray[3], }, label: { textAlign: 'center', textShadow: theme.shadows.sm, + color: theme.colors.gray[3], }, })); diff --git a/web/src/features/progress/Progressbar.tsx b/web/src/features/progress/Progressbar.tsx index 8df4cc5..0f1b9dd 100644 --- a/web/src/features/progress/Progressbar.tsx +++ b/web/src/features/progress/Progressbar.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Progress, Box, Text, createStyles } from '@mantine/core'; +import { Box, Text, createStyles } from '@mantine/core'; import { useNuiEvent } from '../../hooks/useNuiEvent'; import { fetchNui } from '../../utils/fetchNui'; import ScaleFade from '../../transitions/ScaleFade'; @@ -45,6 +45,7 @@ const useStyles = createStyles((theme) => ({ overflow: 'hidden', whiteSpace: 'nowrap', fontSize: 20, + color: theme.colors.gray[3], textShadow: theme.shadows.sm, }, })); diff --git a/web/src/index.css b/web/src/index.css index 88fc75d..2155053 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -22,6 +22,10 @@ body { overflow: hidden !important; } +p { + margin: 0; +} + #root { height: 100%; } diff --git a/web/src/main.tsx b/web/src/main.tsx index d28a398..e2939e2 100644 --- a/web/src/main.tsx +++ b/web/src/main.tsx @@ -2,7 +2,6 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; -import { ChakraProvider } from '@chakra-ui/react'; import { theme } from './theme'; import { fas } from '@fortawesome/free-solid-svg-icons'; import { far } from '@fortawesome/free-regular-svg-icons'; @@ -28,18 +27,8 @@ const root = document.getElementById('root'); ReactDOM.createRoot(root!).render( - - - - + + diff --git a/web/src/theme/index.ts b/web/src/theme/index.ts index 5cf45c4..51f51b1 100644 --- a/web/src/theme/index.ts +++ b/web/src/theme/index.ts @@ -1,9 +1,7 @@ -import { extendTheme, type ThemeConfig } from '@chakra-ui/react'; +import { MantineThemeOverride } from '@mantine/core'; -const config: ThemeConfig = { - initialColorMode: 'dark', +export const theme: MantineThemeOverride = { + colorScheme: 'dark', + fontFamily: 'Roboto', + shadows: { sm: '1px 1px 3px rgba(0, 0, 0, 0.5)' }, }; - -export const theme = extendTheme({ - config, -}); From 7d9e76b043f48025718a970e7897394910ba7f96 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 2 Jan 2023 19:33:50 +0100 Subject: [PATCH 024/119] refactor(web/transitions): improve scale fade transition --- web/src/transitions/ScaleFade.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/web/src/transitions/ScaleFade.tsx b/web/src/transitions/ScaleFade.tsx index 000f8e7..ae0d0fc 100644 --- a/web/src/transitions/ScaleFade.tsx +++ b/web/src/transitions/ScaleFade.tsx @@ -3,13 +3,12 @@ import { AnimatePresence, motion } from 'framer-motion'; const ScaleFade: React.FC<{ visible: boolean; children: React.ReactNode }> = ({ visible, children }) => { return ( <> - + {visible && ( {children} From 59f513ef013b7183bb133b665f0852ec22d68c00 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 2 Jan 2023 21:50:21 +0100 Subject: [PATCH 025/119] refactor(web/transitions): speed up initial scale fade transition --- web/src/transitions/ScaleFade.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/transitions/ScaleFade.tsx b/web/src/transitions/ScaleFade.tsx index ae0d0fc..e443e38 100644 --- a/web/src/transitions/ScaleFade.tsx +++ b/web/src/transitions/ScaleFade.tsx @@ -7,7 +7,7 @@ const ScaleFade: React.FC<{ visible: boolean; children: React.ReactNode }> = ({ {visible && ( {children} From 440a7564a386e3ae9b2a02a36bde40da69d9e6b4 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 2 Jan 2023 21:50:49 +0100 Subject: [PATCH 026/119] refactor(web/notifications): improve notification transitions --- .../notifications/NotificationWrapper.tsx | 144 ++++++++++++++---- 1 file changed, 114 insertions(+), 30 deletions(-) diff --git a/web/src/features/notifications/NotificationWrapper.tsx b/web/src/features/notifications/NotificationWrapper.tsx index e39a43e..db2c7d5 100644 --- a/web/src/features/notifications/NotificationWrapper.tsx +++ b/web/src/features/notifications/NotificationWrapper.tsx @@ -3,7 +3,7 @@ import { IconProp } from '@fortawesome/fontawesome-svg-core'; import { toast, Toaster, ToastPosition } from 'react-hot-toast'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import ReactMarkdown from 'react-markdown'; -import { Avatar, createStyles, Group, Stack, Box, Text } from '@mantine/core'; +import { Avatar, createStyles, Group, Stack, Box, Text, keyframes } from '@mantine/core'; import React from 'react'; export interface NotificationProps { @@ -49,6 +49,73 @@ const useStyles = createStyles((theme) => ({ }, })); +// I hate this +const enterAnimationTop = keyframes({ + from: { + opacity: 0, + transform: 'translateY(-30px)', + }, + to: { + opacity: 1, + transform: 'translateY(0px)', + }, +}); + +const enterAnimationBottom = keyframes({ + from: { + opacity: 0, + transform: 'translateY(30px)', + }, + to: { + opacity: 1, + transform: 'translateY(0px)', + }, +}); + +const exitAnimationTop = keyframes({ + from: { + opacity: 1, + transform: 'translateY(0px)', + }, + to: { + opacity: 0, + transform: 'translateY(-100%)', + }, +}); + +const exitAnimationRight = keyframes({ + from: { + opacity: 1, + transform: 'translateX(0px)', + }, + to: { + opacity: 0, + transform: 'translateX(100%)', + }, +}); + +const exitAnimationLeft = keyframes({ + from: { + opacity: 1, + transform: 'translateX(0px)', + }, + to: { + opacity: 0, + transform: 'translateX(-100%)', + }, +}); + +const exitAnimationBottom = keyframes({ + from: { + opacity: 1, + transform: 'translateY(0px)', + }, + to: { + opacity: 0, + transform: 'translateY(100%)', + }, +}); + const Notifications: React.FC = () => { const { classes } = useStyles(); @@ -68,39 +135,56 @@ const Notifications: React.FC = () => { data.icon = data.type === 'error' ? 'xmark' : data.type === 'success' ? 'check' : 'info'; } - toast( - - - {data.icon && ( - <> - {!data.iconColor ? ( - - - - ) : ( - - )} - - )} - - {data.title && {data.title}} - {data.description && {data.description}} - - - , + toast.custom( + (t) => ( + + + {data.icon && ( + <> + {!data.iconColor ? ( + + + + ) : ( + + )} + + )} + + {data.title && {data.title}} + {data.description && {data.description}} + + + + ), { id: data.id?.toString(), duration: data.duration || 3000, position: position || 'top-right', - style: { - padding: 0, - boxShadow: 'none', - backgroundColor: 'transparent', - }, } ); }); From d0811be0ce8122da6937b3489b8130540a9112ff Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 3 Jan 2023 18:55:02 +0100 Subject: [PATCH 027/119] refactor(web/input): use form control instead of controlled state --- web/package.json | 1 + web/pnpm-lock.yaml | 11 +++ web/src/features/dialog/InputDialog.tsx | 88 +++++++++++++------ .../dialog/components/fields/checkbox.tsx | 14 +-- .../dialog/components/fields/input.tsx | 12 ++- .../dialog/components/fields/number.tsx | 18 ++-- .../dialog/components/fields/select.tsx | 28 +++--- .../dialog/components/fields/slider.tsx | 21 +++-- .../notifications/NotificationWrapper.tsx | 4 +- 9 files changed, 121 insertions(+), 76 deletions(-) diff --git a/web/package.json b/web/package.json index bdc9aaa..233cce4 100644 --- a/web/package.json +++ b/web/package.json @@ -27,6 +27,7 @@ "prettier": "^2.7.1", "react": "18.2.0", "react-dom": "18.2.0", + "react-hook-form": "^7.41.3", "react-hot-toast": "^2.4.0", "react-markdown": "^8.0.1", "typescript": "^4.6.3", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index be37567..3f63d7b 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -38,6 +38,7 @@ specifiers: prop-types: ^15.8.1 react: 18.2.0 react-dom: 18.2.0 + react-hook-form: ^7.41.3 react-hot-toast: ^2.4.0 react-markdown: ^8.0.1 rimraf: ^3.0.2 @@ -69,6 +70,7 @@ dependencies: prettier: 2.7.1 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 + react-hook-form: 7.41.3_react@18.2.0 react-hot-toast: 2.4.0_6dztgcaza2bodipt2i5a4is4mu_npw22p3c4ehm7n7vxn2gqac44u react-markdown: 8.0.1_bbvjflvjoibwhtpmedigb26h6y typescript: 4.6.3 @@ -2346,6 +2348,15 @@ packages: scheduler: 0.23.0 dev: false + /react-hook-form/7.41.3_react@18.2.0: + resolution: {integrity: sha512-5QNTmqJtDb88WV5n41b6+AmcDMVyaJ3tccPgHAgS215w3jZ3bmJhDO27kNTr8u4YHNYXmS7p1/4/KachBAlUtw==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + /react-hot-toast/2.4.0_6dztgcaza2bodipt2i5a4is4mu_npw22p3c4ehm7n7vxn2gqac44u: resolution: {integrity: sha512-qnnVbXropKuwUpriVVosgo8QrB+IaPJCpL8oBI6Ov84uvHZ5QQcTp2qg6ku2wNfgJl6rlQXJIQU5q+5lmPOutA==} engines: {node: '>=10'} diff --git a/web/src/features/dialog/InputDialog.tsx b/web/src/features/dialog/InputDialog.tsx index 100e8a9..7232352 100644 --- a/web/src/features/dialog/InputDialog.tsx +++ b/web/src/features/dialog/InputDialog.tsx @@ -1,5 +1,5 @@ import { Group, Modal, Button, Stack } from '@mantine/core'; -import React from 'react'; +import React, { FormEvent, useRef } from 'react'; import { useNuiEvent } from '../../hooks/useNuiEvent'; import { useLocales } from '../../providers/LocaleProvider'; import { fetchNui } from '../../utils/fetchNui'; @@ -9,12 +9,19 @@ import CheckboxField from './components/fields/checkbox'; import SelectField from './components/fields/select'; import NumberField from './components/fields/number'; import SliderField from './components/fields/slider'; +import { useFieldArray, useForm } from 'react-hook-form'; export interface InputProps { heading: string; rows: Array; } +export type FormValues = { + test: { + value: any; + }[]; +}; + const InputDialog: React.FC = () => { const [fields, setFields] = React.useState({ heading: '', @@ -25,6 +32,12 @@ const InputDialog: React.FC = () => { const [visible, setVisible] = React.useState(false); const { locale } = useLocales(); + const form = useForm<{ test: { value: any }[] }>({}); + const fieldForm = useFieldArray({ + control: form.control, + name: 'test', + }); + const handlePasswordStates = (index: number) => { setPasswordStates({ ...passwordStates, @@ -37,6 +50,9 @@ const InputDialog: React.FC = () => { setFields(data); setInputData([]); setVisible(true); + data.rows.forEach((row, index) => { + fieldForm.insert(index, { value: row.type !== 'checkbox' ? row.default : row.checked } || { value: null }); + }); }); useNuiEvent('closeInputDialog', () => { @@ -60,6 +76,15 @@ const InputDialog: React.FC = () => { fetchNui('inputData', inputData); }; + const onSubmit = form.handleSubmit(async (data) => { + const values: any[] = []; + Object.values(data.test).forEach((obj: { value: any }) => values.push(obj.value)); + console.log(values); + await new Promise((resolve) => setTimeout(resolve, 200)); + form.reset(); + fieldForm.remove(); + }); + return ( <> { transition="fade" exitTransitionDuration={150} > - - {fields.rows.map((row: IInput | ICheckbox | ISelect | INumber | ISlider, index) => ( - - {row.type === 'input' && ( - - )} - {row.type === 'checkbox' && } - {row.type === 'select' && } - {row.type === 'number' && } - {row.type === 'slider' && } - - ))} - - - - - +
+ + {fieldForm.fields.map((item, index) => { + const row = fields.rows[index]; + return ( + + {row.type === 'input' && ( + + )} + {row.type === 'checkbox' && ( + + )} + {row.type === 'select' && } + {row.type === 'number' && } + {row.type === 'slider' && } + + ); + })} + + + + + +
); diff --git a/web/src/features/dialog/components/fields/checkbox.tsx b/web/src/features/dialog/components/fields/checkbox.tsx index bab6483..b2333cf 100644 --- a/web/src/features/dialog/components/fields/checkbox.tsx +++ b/web/src/features/dialog/components/fields/checkbox.tsx @@ -1,25 +1,17 @@ import { Checkbox } from '@mantine/core'; import { useEffect } from 'react'; import { ICheckbox } from '../../../../interfaces/dialog'; +import { UseFormRegisterReturn } from 'react-hook-form'; interface Props { row: ICheckbox; index: number; - handleChange: (value: boolean, index: number) => void; + register: UseFormRegisterReturn; } const CheckboxField: React.FC = (props) => { - useEffect(() => { - if (props.row.checked) props.handleChange(props.row.checked, props.index); - }, []); - return ( - ) => props.handleChange(e.target.checked, props.index)} - defaultChecked={props.row.checked} - /> + ); }; diff --git a/web/src/features/dialog/components/fields/input.tsx b/web/src/features/dialog/components/fields/input.tsx index 5347d91..634f889 100644 --- a/web/src/features/dialog/components/fields/input.tsx +++ b/web/src/features/dialog/components/fields/input.tsx @@ -1,28 +1,26 @@ import { TextInput } from '@mantine/core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useEffect } from 'react'; +import React, { useEffect } from 'react'; import { IInput } from '../../../../interfaces/dialog'; +import { UseFormRegisterReturn } from 'react-hook-form'; interface Props { + register: UseFormRegisterReturn; row: IInput; index: number; - handleChange: (value: string, index: number) => void; passwordStates: boolean[]; handlePasswordStates: (index: number) => void; } const InputField: React.FC = (props) => { - useEffect(() => { - if (props.row.default) props.handleChange(props.row.default, props.index); - }, []); - return ( } placeholder={props.row.placeholder} - defaultValue={props.row.default} disabled={props.row.disabled} type={!props.row.password || props.passwordStates[props.index] ? 'text' : 'password'} rightSection={ diff --git a/web/src/features/dialog/components/fields/number.tsx b/web/src/features/dialog/components/fields/number.tsx index f3c3049..79bc978 100644 --- a/web/src/features/dialog/components/fields/number.tsx +++ b/web/src/features/dialog/components/fields/number.tsx @@ -2,27 +2,35 @@ import { NumberInput } from '@mantine/core'; import { useEffect } from 'react'; import { INumber } from '../../../../interfaces/dialog'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { Control, useController, UseFormRegisterReturn } from 'react-hook-form'; +import { FormValues } from '../../InputDialog'; interface Props { row: INumber; index: number; - handleChange: (value: number, index: number) => void; + control: Control; } const NumberField: React.FC = (props) => { - useEffect(() => { - if (props.row.default) props.handleChange(props.row.default, props.index); - }, []); + const controller = useController({ + name: `test.${props.index}.value`, + control: props.control, + defaultValue: props.row.default, + }); return ( props.handleChange(value as number, props.index)} icon={props.row.icon && } /> ); diff --git a/web/src/features/dialog/components/fields/select.tsx b/web/src/features/dialog/components/fields/select.tsx index 7626667..ffdcc7c 100644 --- a/web/src/features/dialog/components/fields/select.tsx +++ b/web/src/features/dialog/components/fields/select.tsx @@ -1,31 +1,31 @@ import { Select } from '@mantine/core'; -import { useEffect } from 'react'; import { ISelect } from '../../../../interfaces/dialog'; +import { Control, FieldValues, useController, UseFormRegisterReturn, UseFormSetValue } from 'react-hook-form'; +import { FormValues } from '../../InputDialog'; interface Props { row: ISelect; index: number; - handleChange: (value: string, index: number) => void; + control: Control; } // TODO: set label to value of value when there is no label provided const SelectField: React.FC = (props) => { - useEffect(() => { - if (props.row.default) { - props.row.options?.map((option) => { - if (props.row.default === option.value) { - props.handleChange(option.value, props.index); - } - }); - } - }, []); + const controller = useController({ + name: `test.${props.index}.value`, + control: props.control, + defaultValue: props.row.default, + }); return (