Compare commits

...

2 Commits

Author SHA1 Message Date
6eff3103c0 [FIX] chakra ui component is not full 2025-01-13 23:49:04 +01:00
f721d8c1a5 [FIX] locator.js error 2025-01-13 22:14:28 +01:00
9 changed files with 321 additions and 205 deletions

View File

@ -38,9 +38,9 @@
"css-mediaquery": "0.1.2",
"dayjs": "1.11.13",
"history": "5.3.0",
"react": "18.3.1",
"react": "19.0.0",
"react-error-boundary": "5.0.0",
"react-dom": "18.3.1",
"react-dom": "19.0.0",
"react-icons": "5.4.0",
"react-router-dom": "7.1.1",
"react-select": "5.9.0",
@ -64,8 +64,8 @@
"@trivago/prettier-plugin-sort-imports": "5.2.1",
"@types/jest": "29.5.14",
"@types/node": "22.10.6",
"@types/react": "18.3.8",
"@types/react-dom": "18.3.0",
"@types/react": "19.0.6",
"@types/react-dom": "19.0.3",
"@typescript-eslint/eslint-plugin": "8.20.0",
"@typescript-eslint/parser": "8.20.0",
"@vitejs/plugin-react": "4.3.4",

295
front/pnpm-lock.yaml generated
View File

@ -13,19 +13,19 @@ importers:
version: 2.3.4
'@chakra-ui/cli':
specifier: 3.3.1
version: 3.3.1(@chakra-ui/react@3.3.1(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
version: 3.3.1(@chakra-ui/react@3.3.1(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))
'@chakra-ui/react':
specifier: 3.3.1
version: 3.3.1(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 3.3.1(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@emotion/react':
specifier: 11.14.0
version: 11.14.0(@types/react@18.3.8)(react@18.3.1)
version: 11.14.0(@types/react@19.0.6)(react@19.0.0)
'@emotion/styled':
specifier: 11.14.0
version: 11.14.0(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(@types/react@18.3.8)(react@18.3.1)
version: 11.14.0(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(@types/react@19.0.6)(react@19.0.0)
allotment:
specifier: 1.20.2
version: 1.20.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 1.20.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
css-mediaquery:
specifier: 0.1.2
version: 0.1.2
@ -36,36 +36,36 @@ importers:
specifier: 5.3.0
version: 5.3.0
react:
specifier: 18.3.1
version: 18.3.1
specifier: 19.0.0
version: 19.0.0
react-dom:
specifier: 18.3.1
version: 18.3.1(react@18.3.1)
specifier: 19.0.0
version: 19.0.0(react@19.0.0)
react-error-boundary:
specifier: 5.0.0
version: 5.0.0(react@18.3.1)
version: 5.0.0(react@19.0.0)
react-icons:
specifier: 5.4.0
version: 5.4.0(react@18.3.1)
version: 5.4.0(react@19.0.0)
react-router-dom:
specifier: 7.1.1
version: 7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-select:
specifier: 5.9.0
version: 5.9.0(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 5.9.0(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-use:
specifier: 17.6.0
version: 17.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 17.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
zod:
specifier: 3.24.1
version: 3.24.1
zustand:
specifier: 5.0.3
version: 5.0.3(@types/react@18.3.8)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1))
version: 5.0.3(@types/react@19.0.6)(react@19.0.0)(use-sync-external-store@1.2.2(react@19.0.0))
devDependencies:
'@chakra-ui/styled-system':
specifier: ^2.12.0
version: 2.12.0(react@18.3.1)
version: 2.12.0(react@19.0.0)
'@playwright/test':
specifier: 1.49.1
version: 1.49.1
@ -74,19 +74,19 @@ importers:
version: 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-essentials':
specifier: 8.4.7
version: 8.4.7(@types/react@18.3.8)(storybook@8.4.7(prettier@3.4.2))
version: 8.4.7(@types/react@19.0.6)(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-links':
specifier: 8.4.7
version: 8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))
version: 8.4.7(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-mdx-gfm':
specifier: 8.4.7
version: 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/react':
specifier: 8.4.7
version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)
version: 8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)
'@storybook/react-vite':
specifier: 8.4.7
version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.29.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.31.1)(yaml@2.6.1))
version: 8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.29.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.31.1)(yaml@2.6.1))
'@storybook/theming':
specifier: 8.4.7
version: 8.4.7(storybook@8.4.7(prettier@3.4.2))
@ -95,7 +95,7 @@ importers:
version: 6.6.3
'@testing-library/react':
specifier: 16.1.0
version: 16.1.0(@testing-library/dom@10.2.0)(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 16.1.0(@testing-library/dom@10.2.0)(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@testing-library/user-event':
specifier: 14.5.2
version: 14.5.2(@testing-library/dom@10.2.0)
@ -109,11 +109,11 @@ importers:
specifier: 22.10.6
version: 22.10.6
'@types/react':
specifier: 18.3.8
version: 18.3.8
specifier: 19.0.6
version: 19.0.6
'@types/react-dom':
specifier: 18.3.0
version: 18.3.0
specifier: 19.0.3
version: 19.0.3(@types/react@19.0.6)
'@typescript-eslint/eslint-plugin':
specifier: 8.20.0
version: 8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
@ -1553,17 +1553,16 @@ packages:
'@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
'@types/prop-types@15.7.14':
resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
'@types/react-dom@18.3.0':
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
'@types/react-dom@19.0.3':
resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==}
peerDependencies:
'@types/react': ^19.0.0
'@types/react-transition-group@4.4.10':
resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==}
'@types/react@18.3.8':
resolution: {integrity: sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==}
'@types/react@19.0.6':
resolution: {integrity: sha512-gIlMztcTeDgXCUj0vCBOqEuSEhX//63fW9SZtCJ+agxoQTOklwDfiEMlTWn4mR/C/UK5VHlpwsCsOyf7/hc4lw==}
'@types/resolve@1.20.6':
resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==}
@ -4159,6 +4158,11 @@ packages:
peerDependencies:
react: ^18.3.1
react-dom@19.0.0:
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
peerDependencies:
react: ^19.0.0
react-error-boundary@5.0.0:
resolution: {integrity: sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==}
peerDependencies:
@ -4230,6 +4234,10 @@ packages:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
react@19.0.0:
resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
engines: {node: '>=0.10.0'}
readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
@ -4344,6 +4352,9 @@ packages:
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
scheduler@0.25.0:
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
screenfull@5.2.0:
resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
engines: {node: '>=0.10.0'}
@ -5180,7 +5191,7 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
'@ark-ui/react@4.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@ark-ui/react@4.8.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@internationalized/date': 3.6.0
'@zag-js/accordion': 0.81.1
@ -5217,7 +5228,7 @@ snapshots:
'@zag-js/qr-code': 0.81.1
'@zag-js/radio-group': 0.81.1
'@zag-js/rating-group': 0.81.1
'@zag-js/react': 0.81.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@zag-js/react': 0.81.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@zag-js/select': 0.81.1
'@zag-js/signature-pad': 0.81.1
'@zag-js/slider': 0.81.1
@ -5234,8 +5245,8 @@ snapshots:
'@zag-js/tour': 0.81.1
'@zag-js/tree-view': 0.81.1
'@zag-js/types': 0.81.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
'@babel/code-frame@7.24.7':
dependencies:
@ -5462,9 +5473,9 @@ snapshots:
'@chakra-ui/anatomy@2.3.4': {}
'@chakra-ui/cli@3.3.1(@chakra-ui/react@3.3.1(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))':
'@chakra-ui/cli@3.3.1(@chakra-ui/react@3.3.1(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))':
dependencies:
'@chakra-ui/react': 3.3.1(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@chakra-ui/react': 3.3.1(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@clack/prompts': 0.7.0
'@pandacss/is-valid-prop': 0.41.0
'@types/cli-table': 0.3.4
@ -5487,31 +5498,31 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@chakra-ui/react@3.3.1(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@chakra-ui/react@3.3.1(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@ark-ui/react': 4.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ark-ui/react': 4.8.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@emotion/is-prop-valid': 1.3.1
'@emotion/react': 11.14.0(@types/react@18.3.8)(react@18.3.1)
'@emotion/react': 11.14.0(@types/react@19.0.6)(react@19.0.0)
'@emotion/serialize': 1.3.3
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1)
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0)
'@emotion/utils': 1.4.2
'@pandacss/is-valid-prop': 0.41.0
csstype: 3.1.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
'@chakra-ui/styled-system@2.12.0(react@18.3.1)':
'@chakra-ui/styled-system@2.12.0(react@19.0.0)':
dependencies:
'@chakra-ui/utils': 2.2.2(react@18.3.1)
'@chakra-ui/utils': 2.2.2(react@19.0.0)
csstype: 3.1.3
transitivePeerDependencies:
- react
'@chakra-ui/utils@2.2.2(react@18.3.1)':
'@chakra-ui/utils@2.2.2(react@19.0.0)':
dependencies:
'@types/lodash.mergewith': 4.6.9
lodash.mergewith: 4.6.2
react: 18.3.1
react: 19.0.0
'@clack/core@0.3.5':
dependencies:
@ -5560,19 +5571,19 @@ snapshots:
'@emotion/memoize@0.9.0': {}
'@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1)':
'@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0)':
dependencies:
'@babel/runtime': 7.24.7
'@emotion/babel-plugin': 11.13.5
'@emotion/cache': 11.14.0
'@emotion/serialize': 1.3.3
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1)
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0)
'@emotion/utils': 1.4.2
'@emotion/weak-memoize': 0.4.0
hoist-non-react-statics: 3.3.2
react: 18.3.1
react: 19.0.0
optionalDependencies:
'@types/react': 18.3.8
'@types/react': 19.0.6
transitivePeerDependencies:
- supports-color
@ -5586,26 +5597,26 @@ snapshots:
'@emotion/sheet@1.4.0': {}
'@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(@types/react@18.3.8)(react@18.3.1)':
'@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(@types/react@19.0.6)(react@19.0.0)':
dependencies:
'@babel/runtime': 7.24.7
'@emotion/babel-plugin': 11.13.5
'@emotion/is-prop-valid': 1.3.1
'@emotion/react': 11.14.0(@types/react@18.3.8)(react@18.3.1)
'@emotion/react': 11.14.0(@types/react@19.0.6)(react@19.0.0)
'@emotion/serialize': 1.3.3
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1)
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0)
'@emotion/utils': 1.4.2
react: 18.3.1
react: 19.0.0
optionalDependencies:
'@types/react': 18.3.8
'@types/react': 19.0.6
transitivePeerDependencies:
- supports-color
'@emotion/unitless@0.10.0': {}
'@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)':
'@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)':
dependencies:
react: 18.3.1
react: 19.0.0
'@emotion/utils@1.4.2': {}
@ -6119,10 +6130,10 @@ snapshots:
'@juggle/resize-observer@3.4.0': {}
'@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1)':
'@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1)':
dependencies:
'@types/mdx': 2.0.13
'@types/react': 18.3.8
'@types/react': 19.0.6
react: 18.3.1
'@nodelib/fs.scandir@2.1.5':
@ -6279,9 +6290,9 @@ snapshots:
storybook: 8.4.7(prettier@3.4.2)
ts-dedent: 2.2.0
'@storybook/addon-docs@8.4.7(@types/react@18.3.8)(storybook@8.4.7(prettier@3.4.2))':
'@storybook/addon-docs@8.4.7(@types/react@19.0.6)(storybook@8.4.7(prettier@3.4.2))':
dependencies:
'@mdx-js/react': 3.0.1(@types/react@18.3.8)(react@18.3.1)
'@mdx-js/react': 3.0.1(@types/react@19.0.6)(react@18.3.1)
'@storybook/blocks': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))
'@storybook/csf-plugin': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))
@ -6292,12 +6303,12 @@ snapshots:
transitivePeerDependencies:
- '@types/react'
'@storybook/addon-essentials@8.4.7(@types/react@18.3.8)(storybook@8.4.7(prettier@3.4.2))':
'@storybook/addon-essentials@8.4.7(@types/react@19.0.6)(storybook@8.4.7(prettier@3.4.2))':
dependencies:
'@storybook/addon-actions': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-backgrounds': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-controls': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-docs': 8.4.7(@types/react@18.3.8)(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-docs': 8.4.7(@types/react@19.0.6)(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-highlight': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-measure': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/addon-outline': 8.4.7(storybook@8.4.7(prettier@3.4.2))
@ -6313,14 +6324,14 @@ snapshots:
'@storybook/global': 5.0.0
storybook: 8.4.7(prettier@3.4.2)
'@storybook/addon-links@8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))':
'@storybook/addon-links@8.4.7(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/global': 5.0.0
storybook: 8.4.7(prettier@3.4.2)
ts-dedent: 2.2.0
optionalDependencies:
react: 18.3.1
react: 19.0.0
'@storybook/addon-mdx-gfm@8.4.7(storybook@8.4.7(prettier@3.4.2))':
dependencies:
@ -6423,17 +6434,23 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
storybook: 8.4.7(prettier@3.4.2)
'@storybook/react-vite@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.29.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.31.1)(yaml@2.6.1))':
'@storybook/react-dom-shim@8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))':
dependencies:
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
storybook: 8.4.7(prettier@3.4.2)
'@storybook/react-vite@8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.29.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.31.1)(yaml@2.6.1))':
dependencies:
'@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.31.1)(yaml@2.6.1))
'@rollup/pluginutils': 5.1.0(rollup@4.29.2)
'@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.31.1)(yaml@2.6.1))
'@storybook/react': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)
'@storybook/react': 8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)
find-up: 5.0.0
magic-string: 0.30.17
react: 18.3.1
react: 19.0.0
react-docgen: 7.0.3
react-dom: 18.3.1(react@18.3.1)
react-dom: 19.0.0(react@19.0.0)
resolve: 1.22.8
storybook: 8.4.7(prettier@3.4.2)
tsconfig-paths: 4.2.0
@ -6444,16 +6461,16 @@ snapshots:
- supports-color
- typescript
'@storybook/react@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)':
'@storybook/react@8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.7.3)':
dependencies:
'@storybook/components': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/global': 5.0.0
'@storybook/manager-api': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/preview-api': 8.4.7(storybook@8.4.7(prettier@3.4.2))
'@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))
'@storybook/react-dom-shim': 8.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.4.7(prettier@3.4.2))
'@storybook/theming': 8.4.7(storybook@8.4.7(prettier@3.4.2))
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
storybook: 8.4.7(prettier@3.4.2)
optionalDependencies:
typescript: 5.7.3
@ -6487,15 +6504,15 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
'@testing-library/react@16.1.0(@testing-library/dom@10.2.0)(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@testing-library/react@16.1.0(@testing-library/dom@10.2.0)(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@babel/runtime': 7.24.7
'@testing-library/dom': 10.2.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
optionalDependencies:
'@types/react': 18.3.8
'@types/react-dom': 18.3.0
'@types/react': 19.0.6
'@types/react-dom': 19.0.3(@types/react@19.0.6)
'@testing-library/user-event@14.5.2(@testing-library/dom@10.2.0)':
dependencies:
@ -6611,19 +6628,16 @@ snapshots:
'@types/parse-json@4.0.2': {}
'@types/prop-types@15.7.14': {}
'@types/react-dom@18.3.0':
'@types/react-dom@19.0.3(@types/react@19.0.6)':
dependencies:
'@types/react': 18.3.8
'@types/react': 19.0.6
'@types/react-transition-group@4.4.10':
dependencies:
'@types/react': 18.3.8
'@types/react': 19.0.6
'@types/react@18.3.8':
'@types/react@19.0.6':
dependencies:
'@types/prop-types': 15.7.14
csstype: 3.1.3
'@types/resolve@1.20.6': {}
@ -7113,14 +7127,14 @@ snapshots:
'@zag-js/types': 0.81.1
'@zag-js/utils': 0.81.1
'@zag-js/react@0.81.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@zag-js/react@0.81.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@zag-js/core': 0.81.1
'@zag-js/store': 0.81.1
'@zag-js/types': 0.81.1
proxy-compare: 3.0.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
'@zag-js/rect-utils@0.81.1': {}
@ -7326,16 +7340,16 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
allotment@1.20.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
allotment@1.20.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
classnames: 2.5.1
eventemitter3: 5.0.1
lodash.clamp: 4.0.3
lodash.debounce: 4.0.8
lodash.isequal: 4.5.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
use-resize-observer: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
ansi-escapes@4.3.2:
dependencies:
@ -9819,15 +9833,15 @@ snapshots:
object-assign: 4.1.1
thenify-all: 1.6.0
nano-css@5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
nano-css@5.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
css-tree: 1.1.3
csstype: 3.1.3
fastest-stable-stringify: 2.0.2
inline-style-prefixer: 7.0.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
rtl-css-js: 1.16.1
stacktrace-js: 2.0.2
stylis: 4.3.2
@ -10195,14 +10209,19 @@ snapshots:
react: 18.3.1
scheduler: 0.23.2
react-error-boundary@5.0.0(react@18.3.1):
react-dom@19.0.0(react@19.0.0):
dependencies:
react: 19.0.0
scheduler: 0.25.0
react-error-boundary@5.0.0(react@19.0.0):
dependencies:
'@babel/runtime': 7.24.7
react: 18.3.1
react: 19.0.0
react-icons@5.4.0(react@18.3.1):
react-icons@5.4.0(react@19.0.0):
dependencies:
react: 18.3.1
react: 19.0.0
react-is@16.13.1: {}
@ -10214,54 +10233,54 @@ snapshots:
react-refresh@0.14.2: {}
react-router-dom@7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-router-dom@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-router: 7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-router@7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@types/cookie': 0.6.0
cookie: 1.0.2
react: 18.3.1
react: 19.0.0
set-cookie-parser: 2.7.1
turbo-stream: 2.4.0
optionalDependencies:
react-dom: 18.3.1(react@18.3.1)
react-dom: 19.0.0(react@19.0.0)
react-select@5.9.0(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-select@5.9.0(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@babel/runtime': 7.24.7
'@emotion/cache': 11.14.0
'@emotion/react': 11.14.0(@types/react@18.3.8)(react@18.3.1)
'@emotion/react': 11.14.0(@types/react@19.0.6)(react@19.0.0)
'@floating-ui/dom': 1.6.12
'@types/react-transition-group': 4.4.10
memoize-one: 6.0.0
prop-types: 15.8.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.8)(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
react-transition-group: 4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
use-isomorphic-layout-effect: 1.2.0(@types/react@19.0.6)(react@19.0.0)
transitivePeerDependencies:
- '@types/react'
- supports-color
react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-transition-group@4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@babel/runtime': 7.24.7
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
react-universal-interface@0.6.2(react@18.3.1)(tslib@2.8.1):
react-universal-interface@0.6.2(react@19.0.0)(tslib@2.8.1):
dependencies:
react: 18.3.1
react: 19.0.0
tslib: 2.8.1
react-use@17.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-use@17.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@types/js-cookie': 2.2.7
'@xobotyi/scrollbar-width': 1.9.5
@ -10269,10 +10288,10 @@ snapshots:
fast-deep-equal: 3.1.3
fast-shallow-equal: 1.0.0
js-cookie: 2.2.1
nano-css: 5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-universal-interface: 0.6.2(react@18.3.1)(tslib@2.8.1)
nano-css: 5.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
react-universal-interface: 0.6.2(react@19.0.0)(tslib@2.8.1)
resize-observer-polyfill: 1.5.1
screenfull: 5.2.0
set-harmonic-interval: 1.0.1
@ -10284,6 +10303,8 @@ snapshots:
dependencies:
loose-envify: 1.4.0
react@19.0.0: {}
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
@ -10450,6 +10471,8 @@ snapshots:
dependencies:
loose-envify: 1.4.0
scheduler@0.25.0: {}
screenfull@5.2.0: {}
scule@1.3.0: {}
@ -11000,21 +11023,21 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
use-isomorphic-layout-effect@1.2.0(@types/react@18.3.8)(react@18.3.1):
use-isomorphic-layout-effect@1.2.0(@types/react@19.0.6)(react@19.0.0):
dependencies:
react: 18.3.1
react: 19.0.0
optionalDependencies:
'@types/react': 18.3.8
'@types/react': 19.0.6
use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@juggle/resize-observer': 3.4.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
use-sync-external-store@1.2.2(react@18.3.1):
use-sync-external-store@1.2.2(react@19.0.0):
dependencies:
react: 18.3.1
react: 19.0.0
optional: true
util@0.12.5:
@ -11275,10 +11298,10 @@ snapshots:
zod@3.24.1: {}
zustand@5.0.3(@types/react@18.3.8)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)):
zustand@5.0.3(@types/react@19.0.6)(react@19.0.0)(use-sync-external-store@1.2.2(react@19.0.0)):
optionalDependencies:
'@types/react': 18.3.8
react: 18.3.1
use-sync-external-store: 1.2.2(react@18.3.1)
'@types/react': 19.0.6
react: 19.0.0
use-sync-external-store: 1.2.2(react@19.0.0)
zwitch@2.0.4: {}

View File

@ -25,7 +25,7 @@ import { environment } from '@/environment';
import { App as SpaApp } from '@/scene/App';
import { USERS, USERS_COLLECTION } from '@/service/session';
import { hashLocalData } from '@/utils/sso';
import { Toaster } from './components/toaster';
import { Toaster } from './components/ui/toaster';
const AppEnvHint = () => {
const dialog = useDisclosure();

View File

@ -11,7 +11,6 @@ import {
Flex,
HStack,
IconButton,
Menu,
Text,
useDisclosure,
} from '@chakra-ui/react';
@ -33,6 +32,7 @@ import { requestSignIn, requestSignOut, requestSignUp } from '@/utils/sso';
import { useThemeMode } from '@/utils/theme-tools';
import { useSessionService } from '@/service/session';
import { MdHelp, MdHome, MdMore, MdOutlinePlaylistPlay, MdOutlineUploadFile, MdSupervisedUserCircle } from 'react-icons/md';
import { MenuContent, MenuItem, MenuRoot, MenuTrigger } from '../ui/menu';
export const TOP_BAR_HEIGHT = '50px';
@ -139,38 +139,36 @@ export const TopBar = ({ title, children }: TopBarProps) => {
</>
)}
{session?.state === SessionState.CONNECTED && (
<Menu.Root>
<Menu.Trigger asChild>
<MenuRoot>
<MenuTrigger asChild>
<IconButton
as={IconButton}
aria-label="Options"
{...BUTTON_TOP_BAR_PROPERTY}
width={TOP_BAR_HEIGHT}
><MdSupervisedUserCircle /></IconButton>
</Menu.Trigger>
<Menu.Positioner>
<Menu.Content>
<Menu.Item value="user" valueText="user" _hover={{}} color={mode('brand.800', 'brand.200')}>
<MdSupervisedUserCircle />
<Box flex="1">Sign in as {session?.login ?? 'Fail'}</Box>
</Menu.Item>
<Menu.Item value="Settings" valueText="Settings" onClick={onSettings}><LuSettings />Settings</Menu.Item>
<Menu.Item value="Help" valueText="Help" onClick={onHelp}><MdHelp /> Help</Menu.Item>
<Menu.Item value="Sign-out" valueText="Sign-out" onClick={onSignOut}>
<LuLogOut /> Sign-out
</Menu.Item>
{colorMode === 'light' ? (
<Menu.Item value="set-dark" valueText="set-dark" onClick={toggleColorMode}>
<LuMoon /> Set dark mode
</Menu.Item>
) : (
<Menu.Item value="set-light" valueText="set-light" onClick={toggleColorMode}>
<LuSun /> Set light mode
</Menu.Item>
)}
</Menu.Content>
</Menu.Positioner>
</Menu.Root>
</MenuTrigger>
<MenuContent>
<MenuItem value="user" valueText="user" _hover={{}} color={mode('brand.800', 'brand.200')}>
<MdSupervisedUserCircle />
<Box flex="1">Sign in as {session?.login ?? 'Fail'}</Box>
</MenuItem>
<MenuItem value="Settings" valueText="Settings" onClick={onSettings}><LuSettings />Settings</MenuItem>
<MenuItem value="Help" valueText="Help" onClick={onHelp}><MdHelp /> Help</MenuItem>
<MenuItem value="Sign-out" valueText="Sign-out" onClick={onSignOut}>
<LuLogOut /> Sign-out
</MenuItem>
{colorMode === 'light' ? (
<MenuItem value="set-dark" valueText="set-dark" onClick={toggleColorMode}>
<LuMoon /> Set dark mode
</MenuItem>
) : (
<MenuItem value="set-light" valueText="set-light" onClick={toggleColorMode}>
<LuSun /> Set light mode
</MenuItem>
)}
</MenuContent>
</MenuRoot>
)}
</Flex>
<Drawer.Root

View File

@ -2,9 +2,9 @@ import { useState } from 'react';
import {
IconButton,
Menu,
} from '@chakra-ui/react';
import { LuMenu } from 'react-icons/lu';
import { MenuContent, MenuItem, MenuRoot, MenuTrigger } from '../ui/menu';
export type MenuElement = {
name: string;
@ -20,26 +20,24 @@ export const ContextMenu = ({ elements }: ContextMenuProps) => {
return <></>;
}
return (
<Menu.Root
<MenuRoot
data-testid="context-menu">
<Menu.Trigger asChild
<MenuTrigger asChild
data-testid="context-menu_trigger">
{/* This is very stupid, we need to set as span to prevent a button in button... WTF */}
<IconButton as='span'>
<LuMenu />
</IconButton>
</Menu.Trigger>
<Menu.Positioner>
<Menu.Content
data-testid="context-menu_content">
{elements?.map((data) => (
<Menu.Item key={data.name} value={data.name} onClick={data.onClick}
data-testid="context-menu_item">
{data.name}
</Menu.Item>
))}
</Menu.Content>
</Menu.Positioner>
</Menu.Root>
</MenuTrigger>
<MenuContent
data-testid="context-menu_content">
{elements?.map((data) => (
<MenuItem key={data.name} value={data.name} onClick={data.onClick}
data-testid="context-menu_item">
{data.name}
</MenuItem>
))}
</MenuContent>
</MenuRoot>
);
};

View File

@ -0,0 +1,110 @@
"use client"
import { AbsoluteCenter, Menu as ChakraMenu, Portal } from "@chakra-ui/react"
import * as React from "react"
import { LuCheck, LuChevronRight } from "react-icons/lu"
interface MenuContentProps extends ChakraMenu.ContentProps {
portalled?: boolean
portalRef?: React.RefObject<HTMLElement>
}
export const MenuContent = React.forwardRef<HTMLDivElement, MenuContentProps>(
function MenuContent(props, ref) {
const { portalled = true, portalRef, ...rest } = props
return (
<Portal disabled={!portalled} container={portalRef}>
<ChakraMenu.Positioner>
<ChakraMenu.Content ref={ref} {...rest} />
</ChakraMenu.Positioner>
</Portal>
)
},
)
export const MenuArrow = React.forwardRef<
HTMLDivElement,
ChakraMenu.ArrowProps
>(function MenuArrow(props, ref) {
return (
<ChakraMenu.Arrow ref={ref} {...props}>
<ChakraMenu.ArrowTip />
</ChakraMenu.Arrow>
)
})
export const MenuCheckboxItem = React.forwardRef<
HTMLDivElement,
ChakraMenu.CheckboxItemProps
>(function MenuCheckboxItem(props, ref) {
return (
<ChakraMenu.CheckboxItem ref={ref} {...props}>
<ChakraMenu.ItemIndicator hidden={false}>
<LuCheck />
</ChakraMenu.ItemIndicator>
{props.children}
</ChakraMenu.CheckboxItem>
)
})
export const MenuRadioItem = React.forwardRef<
HTMLDivElement,
ChakraMenu.RadioItemProps
>(function MenuRadioItem(props, ref) {
const { children, ...rest } = props
return (
<ChakraMenu.RadioItem ps="8" ref={ref} {...rest}>
<AbsoluteCenter axis="horizontal" left="4" asChild>
<ChakraMenu.ItemIndicator>
<LuCheck />
</ChakraMenu.ItemIndicator>
</AbsoluteCenter>
<ChakraMenu.ItemText>{children}</ChakraMenu.ItemText>
</ChakraMenu.RadioItem>
)
})
export const MenuItemGroup = React.forwardRef<
HTMLDivElement,
ChakraMenu.ItemGroupProps
>(function MenuItemGroup(props, ref) {
const { title, children, ...rest } = props
return (
<ChakraMenu.ItemGroup ref={ref} {...rest}>
{title && (
<ChakraMenu.ItemGroupLabel userSelect="none">
{title}
</ChakraMenu.ItemGroupLabel>
)}
{children}
</ChakraMenu.ItemGroup>
)
})
export interface MenuTriggerItemProps extends ChakraMenu.ItemProps {
startIcon?: React.ReactNode
}
export const MenuTriggerItem = React.forwardRef<
HTMLDivElement,
MenuTriggerItemProps
>(function MenuTriggerItem(props, ref) {
const { startIcon, children, ...rest } = props
return (
<ChakraMenu.TriggerItem ref={ref} {...rest}>
{startIcon}
{children}
<LuChevronRight />
</ChakraMenu.TriggerItem>
)
})
export const MenuRadioItemGroup = ChakraMenu.RadioItemGroup
export const MenuContextTrigger = ChakraMenu.ContextTrigger
export const MenuRoot = ChakraMenu.Root
export const MenuSeparator = ChakraMenu.Separator
export const MenuItem = ChakraMenu.Item
export const MenuItemText = ChakraMenu.ItemText
export const MenuItemCommand = ChakraMenu.ItemCommand
export const MenuTrigger = ChakraMenu.Trigger

View File

@ -9,13 +9,10 @@ import {
Toast,
createToaster,
} from "@chakra-ui/react"
import { useCallback } from "react";
export const toaster = createToaster({
duration: 3000,
placement: 'top-end',
// offset: { top: '50px' },
// variant: 'solid',
placement: "bottom-end",
pauseOnPageIdle: true,
})
export const toasterAPIError = (error: RestErrorResponse) => {
@ -28,13 +25,9 @@ export const toasterAPIError = (error: RestErrorResponse) => {
export const Toaster = () => {
return (
<Portal>
<ChakraToaster
toaster={toaster}
insetInline={{ mdDown: "1rem" }}
width={{ md: "356px" }}
>
<ChakraToaster toaster={toaster} insetInline={{ mdDown: "4" }}>
{(toast) => (
<Toast.Root>
<Toast.Root width={{ md: "sm" }}>
{toast.type === "loading" ? (
<Spinner size="sm" color="blue.solid" />
) : (

View File

@ -1,16 +1,10 @@
import { StrictMode } from 'react';
import ReactDOM from 'react-dom/client';
import App from '@/App';
// Render the app
import { hydrateRoot } from 'react-dom/client';
const rootElement = document.getElementById('root');
if (rootElement && !rootElement.innerHTML) {
const root = ReactDOM.createRoot(rootElement);
root.render(
<StrictMode>
<App />
</StrictMode>
);
hydrateRoot(rootElement, <StrictMode><App /></StrictMode>);
}

View File

@ -7,7 +7,7 @@ import { DependencyList, useCallback, useEffect, useState } from 'react';
import { RestErrorResponse } from '@/back-api';
import { isNullOrUndefined } from '@/utils/validator';
import { toasterAPIError } from '@/components/toaster';
import { toasterAPIError } from '@/components/ui/toaster';
export type DataStoreType<TYPE> = {
isLoading: boolean;