diff --git a/package.json b/package.json index 21529f75c..beb610b26 100644 --- a/package.json +++ b/package.json @@ -70,8 +70,8 @@ "@testing-library/jest-dom": "^6.2.0", "@testing-library/react": "^14.1.2", "@types/node": "^20.11.5", - "@types/react": "^17.0.75", - "@types/react-dom": "^17.0.25", + "@types/react": "^18.2.48", + "@types/react-dom": "^18.2.18", "@typescript-eslint/eslint-plugin": "^6.19.0", "@typescript-eslint/parser": "^6.19.0", "@vitejs/plugin-react": "^4.2.1", diff --git a/packages/textfield/src/component.tsx b/packages/textfield/src/component.tsx index 7f0076bb2..aedf59216 100644 --- a/packages/textfield/src/component.tsx +++ b/packages/textfield/src/component.tsx @@ -28,9 +28,8 @@ export const TextField = forwardRef( } = props; activateI18n(enMessages, nbMessages, fiMessages); - + const id = useId(providedId); - const helpId = helpText ? `${id}__hint` : undefined; const isInvalid = invalid || error; diff --git a/packages/textfield/stories/Textfield.stories.tsx b/packages/textfield/stories/Textfield.stories.tsx index 46341ccd0..c3d96b455 100644 --- a/packages/textfield/stories/Textfield.stories.tsx +++ b/packages/textfield/stories/Textfield.stories.tsx @@ -1,13 +1,21 @@ import React from 'react'; import { action } from '@storybook/addon-actions'; -import { TextField as TroikaTextField } from '../src'; +import { TextField as WarpTextField } from '../src'; import { Affix } from '../../_helpers'; -const metadata = { title: 'Forms/TextField' }; -export default metadata; +export default { title: 'Forms/TextField', component: WarpTextField }; + +const Template = (args) => ; +export const Default = Template.bind({}); +Default.args = { + value: 'test', +}; const TextField = (args) => ( - ( -); + ); export const clearSuffix = () => ( diff --git a/packages/utils/src/useId.ts b/packages/utils/src/useId.ts index 7e56441f6..03d86159f 100644 --- a/packages/utils/src/useId.ts +++ b/packages/utils/src/useId.ts @@ -1,97 +1,9 @@ -/* - * Let's see if we can make sense of why this hook exists and its - * implementation. - * - * Some background: - * 1. Accessibiliy APIs rely heavily on element IDs - * 2. Requiring developers to put IDs on every element in Reach UI is both - * cumbersome and error-prone - * 3. With a component model, we can generate IDs for them! - * - * Solution 1: Generate random IDs. - * - * This works great as long as you don't server render your app. When React (in - * the client) tries to reuse the markup from the server, the IDs won't match - * and React will then recreate the entire DOM tree. - * - * Solution 2: Increment an integer - * - * This sounds great. Since we're rendering the exact same tree on the server - * and client, we can increment a counter and get a deterministic result between - * client and server. Also, JS integers can go up to nine-quadrillion. I'm - * pretty sure the tab will be closed before an app never needs - * 10 quadrillion IDs! - * - * Problem solved, right? - * - * Ah, but there's a catch! React's concurrent rendering makes this approach - * non-deterministic. While the client and server will end up with the same - * elements in the end, depending on suspense boundaries (and possibly some user - * input during the initial render) the incrementing integers won't always match - * up. - * - * Solution 3: Don't use IDs at all on the server; patch after first render. - * - * What we've done here is solution 2 with some tricks. With this approach, the - * ID returned is an empty string on the first render. This way the server and - * client have the same markup no matter how wild the concurrent rendering may - * have gotten. - * - * After the render, we patch up the components with an incremented ID. It - * doesn't have to be incremented, though; we could do something random, but - * incrementing a number is probably the cheapest thing we can do. - * - * @TODO Note that this should be axed if useOpaqueIdentifier becomes stable - * https://github.com/facebook/react/pull/17322 - */ - -import { useState, useEffect } from 'react'; -import { useLayoutEffect } from './useIsomorphicLayoutEffect.js'; - -let serverHandoffComplete = false; -// Generate a pseudorandom seed to prefix to each generated id instead of solely relying on the counter. -// We don't want id collisions across React roots/podlets. -const prefix = generateId(); - -let id = 0; -const genId = () => { - id = id + 1; - return prefix + id; -}; +import { useId as reactUseId } from 'react'; export const useId = (hasFallback?): string => { - /* - * If this instance isn't part of the initial render, we don't have to do the - * double render/patch-up dance. We can just generate the ID and return it. - */ - const initialId = hasFallback || (serverHandoffComplete ? genId() : null); - - const [id, setId] = useState(initialId); - - useLayoutEffect(() => { - if (id === null) { - /* - * Patch the ID after render. We do this in `useLayoutEffect` to avoid any - * rendering flicker, though it'll make the first render slower (unlikely - * to matter, but you're welcome to measure your app and let us know if - * it's a problem). - */ - setId(genId()); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - useEffect(() => { - if (serverHandoffComplete === false) { - /* - * Flag all future uses of `useId` to skip the update dance. This is in - * `useEffect` because it goes after `useLayoutEffect`, ensuring we don't - * accidentally bail out of the patch-up dance prematurely. - */ - serverHandoffComplete = true; - } - }, []); - return id; + // reactUseId returns a string that includes colons (:), e.g., :r0:, :r1:, etc. + // This string is NOT supported in CSS selectors. Hence the replace. + return hasFallback ?? reactUseId().replace(/:/g, ''); }; /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3403ab84c..6f9148c00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,7 @@ dependencies: version: 1.6.0 react-focus-lock: specifier: ^2.5.2 - version: 2.9.6(@types/react@17.0.75)(react@18.2.0) + version: 2.9.6(@types/react@18.2.48)(react@18.2.0) resize-observer-polyfill: specifier: ^1.5.1 version: 1.5.1 @@ -69,7 +69,7 @@ devDependencies: version: 7.6.9 '@storybook/addon-essentials': specifier: ^7.6.10 - version: 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + version: 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-interactions': specifier: ^7.6.9 version: 7.6.9 @@ -98,11 +98,11 @@ devDependencies: specifier: ^20.11.5 version: 20.11.5 '@types/react': - specifier: ^17.0.75 - version: 17.0.75 + specifier: ^18.2.48 + version: 18.2.48 '@types/react-dom': - specifier: ^17.0.25 - version: 17.0.25 + specifier: ^18.2.18 + version: 18.2.18 '@typescript-eslint/eslint-plugin': specifier: ^6.19.0 version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) @@ -1811,8 +1811,8 @@ packages: dev: true optional: true - /@commitlint/config-validator@18.4.4: - resolution: {integrity: sha512-/QI8KIg/h7O0Eus36fPcEcO3QPBcdXuGfZeCF5m15k0EB2bcU8s6pHNTNEa6xz9PrAefHCL+yzRJj7w20T6Mow==} + /@commitlint/config-validator@18.5.0: + resolution: {integrity: sha512-mDAA6WQPjh9Ida8ACdInDylBQcqeUD2gBHE+dQu+B3OIHiWiSSrq4F2+wg3nDU9EzfcQSwPwYL+QbMmiW5SmLA==} engines: {node: '>=v18'} requiresBuild: true dependencies: @@ -1828,14 +1828,14 @@ packages: dev: true optional: true - /@commitlint/load@18.4.4(@types/node@20.11.5)(typescript@5.3.3): - resolution: {integrity: sha512-RaDIa9qwOw2xRJ3Jr2DBXd14rmnHJIX2XdZF4kmoF1rgsg/+7cvrExLSUNAkQUNimyjCn1b/bKX2Omm+GdY0XQ==} + /@commitlint/load@18.5.0(@types/node@20.11.5)(typescript@5.3.3): + resolution: {integrity: sha512-vpyGgk7rzbFsU01NVwPNC/WetHFP0EwSYnQ1R833SJFHkEo+cWvqoVlw/VoZwBMoI6sF5/lwEdKzFDr1DHJ6+A==} engines: {node: '>=v18'} requiresBuild: true dependencies: - '@commitlint/config-validator': 18.4.4 + '@commitlint/config-validator': 18.5.0 '@commitlint/execute-rule': 18.4.4 - '@commitlint/resolve-extends': 18.4.4 + '@commitlint/resolve-extends': 18.5.0 '@commitlint/types': 18.4.4 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.3.3) @@ -1850,12 +1850,12 @@ packages: dev: true optional: true - /@commitlint/resolve-extends@18.4.4: - resolution: {integrity: sha512-RRpIHSbRnFvmGifVk21Gqazf1QF/yeP+Kkg/e3PlkegcOKd/FGOXp/Kx9cvSO2K7ucSn4GD/oBvgasFoy+NCAw==} + /@commitlint/resolve-extends@18.5.0: + resolution: {integrity: sha512-OxCYOMnlkOEEIkwTaRiFjHyuWBq962WBZQVHfMHej8tr3d+SfjznvqZhPmW8/SuqtfmGEiJPGWUNOxgwH+O0MA==} engines: {node: '>=v18'} requiresBuild: true dependencies: - '@commitlint/config-validator': 18.4.4 + '@commitlint/config-validator': 18.5.0 '@commitlint/types': 18.4.4 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 @@ -3122,7 +3122,7 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true @@ -3312,7 +3312,7 @@ packages: '@babel/runtime': 7.23.7 dev: true - /@radix-ui/react-arrow@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -3326,14 +3326,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-collection@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -3347,17 +3347,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-compose-refs@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -3367,11 +3367,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-context@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -3381,11 +3381,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-direction@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -3395,11 +3395,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -3414,17 +3414,17 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-focus-guards@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -3434,11 +3434,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -3452,16 +3452,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-id@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -3471,12 +3471,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-popper@1.1.2(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -3491,22 +3491,22 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@floating-ui/react-dom': 2.0.6(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@17.0.75)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.48)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-portal@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -3520,14 +3520,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-primitive@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -3541,14 +3541,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-slot': 1.0.2(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -3563,21 +3563,21 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-select@1.2.2(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -3593,32 +3593,32 @@ packages: '@babel/runtime': 7.23.7 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@17.0.75)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.48)(react@18.2.0) dev: true - /@radix-ui/react-separator@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -3632,14 +3632,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-slot@1.0.2(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -3649,12 +3649,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -3669,19 +3669,19 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -3696,15 +3696,15 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toolbar@1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -3719,19 +3719,19 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -3741,11 +3741,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -3755,12 +3755,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -3770,12 +3770,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -3785,11 +3785,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-previous@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -3799,11 +3799,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-rect@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -3814,11 +3814,11 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/rect': 1.0.1 - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-size@1.0.1(@types/react@17.0.75)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -3828,12 +3828,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.75)(react@18.2.0) - '@types/react': 17.0.75 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -3847,9 +3847,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 17.0.75 - '@types/react-dom': 17.0.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -4186,10 +4186,10 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-controls@7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@storybook/addon-controls@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-LjwCQRMWq1apLtFwDi6U8MI6ITUr+KhxJucZ60tfc58RgB2v8ayozyDAonFEONsx9YSR1dNIJ2Z/e2rWTBJeYA==} dependencies: - '@storybook/blocks': 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -4201,7 +4201,7 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@storybook/addon-docs@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GtyQ9bMx1AOOtl6ZS9vwK104HFRK+tqzxddRRxhXkpyeKu3olm9aMgXp35atE/3fJSqyyDm2vFtxxH8mzBA20A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4209,9 +4209,9 @@ packages: dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.10 - '@storybook/components': 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/csf-plugin': 7.6.10 '@storybook/csf-tools': 7.6.10 '@storybook/global': 5.0.0 @@ -4235,7 +4235,7 @@ packages: - supports-color dev: true - /@storybook/addon-essentials@7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@storybook/addon-essentials@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cjbuCCK/3dtUity0Uqi5LwbkgfxqCCE5x5mXZIk9lTMeDz5vB9q6M5nzncVDy8F8przF3NbDLLgxKlt8wjiICg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4243,8 +4243,8 @@ packages: dependencies: '@storybook/addon-actions': 7.6.10 '@storybook/addon-backgrounds': 7.6.10 - '@storybook/addon-controls': 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-controls': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-highlight': 7.6.10 '@storybook/addon-measure': 7.6.10 '@storybook/addon-outline': 7.6.10 @@ -4304,7 +4304,7 @@ packages: memoizerific: 1.11.3 dev: true - /@storybook/blocks@7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@storybook/blocks@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-oSIukGC3yuF8pojABC/HLu5tv2axZvf60TaUs8eDg7+NiiKhzYSPoMQxs5uMrKngl+EJDB92ESgWT9vvsfvIPg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4312,7 +4312,7 @@ packages: dependencies: '@storybook/channels': 7.6.10 '@storybook/client-logger': 7.6.10 - '@storybook/components': 7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/core-events': 7.6.10 '@storybook/csf': 0.1.2 '@storybook/docs-tools': 7.6.10 @@ -4510,14 +4510,14 @@ packages: - supports-color dev: true - /@storybook/components@7.6.10(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0): + /@storybook/components@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-H5hF8pxwtbt0LxV24KMMsPlbYG9Oiui3ObvAQkvGu6q62EYxRPeNSrq3GBI5XEbI33OJY9bT24cVaZx18dXqwQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.10 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 @@ -5497,8 +5497,8 @@ packages: resolution: {integrity: sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==} dev: true - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} /@types/qs@6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} @@ -5508,31 +5508,25 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/react-dom@17.0.25: - resolution: {integrity: sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==} - dependencies: - '@types/react': 17.0.75 - dev: true - /@types/react-dom@18.2.18: resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 17.0.75 + '@types/react': 18.2.48 dev: true - /@types/react@17.0.75: - resolution: {integrity: sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw==} + /@types/react@18.2.48: + resolution: {integrity: sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==} dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.1 + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 /@types/resolve@1.20.6: resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} dev: true - /@types/scheduler@0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} @@ -7824,8 +7818,8 @@ packages: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} /cwd@0.10.0: resolution: {integrity: sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==} @@ -7846,7 +7840,7 @@ packages: longest: 2.0.1 word-wrap: 1.2.3 optionalDependencies: - '@commitlint/load': 18.4.4(@types/node@20.11.5)(typescript@5.3.3) + '@commitlint/load': 18.5.0(@types/node@20.11.5)(typescript@5.3.3) transitivePeerDependencies: - '@types/node' - typescript @@ -13384,7 +13378,7 @@ packages: react-is: 18.1.0 dev: true - /react-focus-lock@2.9.6(@types/react@17.0.75)(react@18.2.0): + /react-focus-lock@2.9.6(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-B7gYnCjHNrNYwY2juS71dHbf0+UpXXojt02svxybj8N5bxceAkzPChKEncHuratjUHkIFNCn06k2qj1DRlzTug==} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -13394,13 +13388,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 17.0.75 + '@types/react': 18.2.48 focus-lock: 1.0.0 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(@types/react@17.0.75)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@17.0.75)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.48)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.48)(react@18.2.0) dev: false /react-is@16.13.1: @@ -13419,7 +13413,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@17.0.75)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -13429,13 +13423,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@17.0.75)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0) tslib: 2.5.0 dev: true - /react-remove-scroll@2.5.5(@types/react@17.0.75)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -13445,16 +13439,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@17.0.75)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@17.0.75)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.48)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0) tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@17.0.75)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@17.0.75)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.48)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.48)(react@18.2.0) dev: true - /react-style-singleton@2.2.1(@types/react@17.0.75)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -13464,7 +13458,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 17.0.75 + '@types/react': 18.2.48 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -15234,7 +15228,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /use-callback-ref@1.3.0(@types/react@17.0.75)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -15244,7 +15238,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 17.0.75 + '@types/react': 18.2.48 react: 18.2.0 tslib: 2.5.0 @@ -15259,7 +15253,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /use-sidecar@1.1.2(@types/react@17.0.75)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -15269,7 +15263,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 17.0.75 + '@types/react': 18.2.48 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.5.0