From 2a31c2c198158163f34960f68ed6fc4beeb6a1b8 Mon Sep 17 00:00:00 2001 From: SUPINKIM Date: Sat, 1 Jun 2024 10:51:13 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20ui-card=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/trip-diary/package.json | 2 +- my-blog.code-workspace | 2 +- package.json | 8 +- packages/eslint-config-custom/index.cjs | 3 +- packages/ui/package.json | 2 +- packages/ui/src/App.tsx | 27 +- packages/ui/src/components/button/index.tsx | 16 +- packages/ui/src/components/button/styles.ts | 35 +-- packages/ui/src/components/button/types.ts | 4 +- packages/ui/src/components/button/types.tsx | 17 -- packages/ui/src/components/card/container.tsx | 27 ++ .../ui/src/components/card/content/index.tsx | 1 + .../src/components/card/content/thumbnail.tsx | 22 ++ .../ui/src/components/card/content/types.ts | 5 + packages/ui/src/components/card/footer.tsx | 20 ++ packages/ui/src/components/card/header.tsx | 24 ++ packages/ui/src/components/card/index.tsx | 30 +- packages/ui/src/components/card/styles.tsx | 11 + packages/ui/src/components/card/types.ts | 11 +- packages/ui/src/main.tsx | 2 + pnpm-lock.yaml | 266 ++++++++++++------ 21 files changed, 367 insertions(+), 168 deletions(-) delete mode 100644 packages/ui/src/components/button/types.tsx create mode 100644 packages/ui/src/components/card/container.tsx create mode 100644 packages/ui/src/components/card/content/index.tsx create mode 100644 packages/ui/src/components/card/content/thumbnail.tsx create mode 100644 packages/ui/src/components/card/content/types.ts create mode 100644 packages/ui/src/components/card/footer.tsx create mode 100644 packages/ui/src/components/card/header.tsx create mode 100644 packages/ui/src/components/card/styles.tsx diff --git a/apps/trip-diary/package.json b/apps/trip-diary/package.json index 83ab676..4a409ca 100644 --- a/apps/trip-diary/package.json +++ b/apps/trip-diary/package.json @@ -34,7 +34,7 @@ "eslint-plugin-react-refresh": "^0.4.3", "react": "^18.2.0", "react-dom": "^18.2.0", - "typescript": "^5.0.2", + "typescript": "*", "vite": "^4.4.5", "vite-tsconfig-paths": "^4.2.1" } diff --git a/my-blog.code-workspace b/my-blog.code-workspace index d5154a7..cfa916f 100644 --- a/my-blog.code-workspace +++ b/my-blog.code-workspace @@ -22,6 +22,6 @@ } ], "settings": { - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "๐Ÿš€ @my-blog/trip-diary/node_modules/typescript/lib" } } diff --git a/package.json b/package.json index 2375eb9..919fbdc 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,12 @@ "packages/*" ], "devDependencies": { + "prettier": "^3.0.3", "turbo": "^1.10.14", - "prettier": "^3.0.3" + "typescript": "^5.4.5" }, - "packageManager": "pnpm@8.14.1" + "packageManager": "pnpm@8.14.1", + "resolutions": { + "typescript": "^5.4.5" + } } diff --git a/packages/eslint-config-custom/index.cjs b/packages/eslint-config-custom/index.cjs index 20c805a..ea486b7 100644 --- a/packages/eslint-config-custom/index.cjs +++ b/packages/eslint-config-custom/index.cjs @@ -88,7 +88,8 @@ module.exports = { 'react/self-closing-comp': 'error', 'react/no-unknown-property': ['error', { ignore: ['css'] }], 'react/prop-types': 'off', - 'quote-props': 'off' + 'quote-props': 'off', + 'react-refresh/only-export-components': 'off' }, settings: { 'import/resolver': { diff --git a/packages/ui/package.json b/packages/ui/package.json index 36ba3f2..c44aff1 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -36,7 +36,7 @@ "@vitejs/plugin-react-swc": "^3.3.2", "eslint-plugin-storybook": "^0.6.14", "storybook": "^7.4.6", - "typescript": "^5.0.2", + "typescript": "*", "vite": "^4.4.5", "vite-plugin-dts": "^3.5.4", "vite-tsconfig-paths": "^4.2.1", diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index 4ce1ca3..c743344 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -4,6 +4,7 @@ import { ButtonShape, ButtonSize } from '@components/button/types'; import { ColorPalette } from '@components/color'; import Button from '@components/button'; +import { CardContainer, CardFooter, CardHeader } from './components/card'; function App() { return ( @@ -14,14 +15,18 @@ function App() { column-gap: 10px; padding-top: 12px; padding-left: 10px; + margin-bottom: 20px; `}> button1 @@ -29,12 +34,28 @@ function App() { + size={ButtonSize.LARGE}> button3 - {/* */} + + + + + ํ™•์ธ + + + ); } diff --git a/packages/ui/src/components/button/index.tsx b/packages/ui/src/components/button/index.tsx index 451f344..ca84b86 100644 --- a/packages/ui/src/components/button/index.tsx +++ b/packages/ui/src/components/button/index.tsx @@ -1,9 +1,19 @@ -import { TReactElementsWithChildren } from '@/types'; -import { ButtonVariant, IButtonProps } from './types'; +import { PropsWithChildren } from 'react'; +import { ButtonVariant, ButtonProps } from './types'; import { FilledButton, OutlinedButton, TextButton } from './styles'; -const Button: TReactElementsWithChildren = { +type ButtonPropsType = { + [key in ButtonVariant.FILLED | ButtonVariant.OUTLINED]: ( + props: PropsWithChildren + ) => JSX.Element; +} & { + [key in ButtonVariant.TEXT]: ( + props: PropsWithChildren> + ) => JSX.Element; +}; + +const Button: ButtonPropsType = { [ButtonVariant.FILLED]: ({ children, ...props }) => ( {children} ), diff --git a/packages/ui/src/components/button/styles.ts b/packages/ui/src/components/button/styles.ts index 873ac20..6faac64 100644 --- a/packages/ui/src/components/button/styles.ts +++ b/packages/ui/src/components/button/styles.ts @@ -1,26 +1,20 @@ import { css } from '@emotion/react'; import styled from '@emotion/styled'; import { ColorPalette, ColorPaletteMapper } from '../color'; -import { ButtonShape, ButtonSize, IButtonProps } from './types'; +import { ButtonShape, ButtonSize, ButtonProps } from './types'; const ButtonSizeMapper = { [ButtonSize.SMALL]: css({ padding: '8px 6px', - height: '24px', - width: '60px', - fontSize: '12px' + fontSize: '14px' }), [ButtonSize.MEDIUM]: css({ padding: '10px 12px', - height: '32px', - width: '80px', - fontSize: '14px' + fontSize: '16px' }), [ButtonSize.LARGE]: css({ padding: '16px 12px', - height: '36px', - width: '160px', - fontSize: '16px' + fontSize: '18px' }) }; @@ -37,7 +31,7 @@ const ButtonShapeMapper = { }) }; -export const FilledButton = styled.button( +export const FilledButton = styled.button( props => ({ all: 'unset', fontWeight: 600, @@ -46,7 +40,9 @@ export const FilledButton = styled.button( alignItems: 'center', color: ColorPaletteMapper[ColorPalette.WHITE][100], backgroundColor: ColorPaletteMapper[props.color][60], - cursor: 'pointer' + cursor: 'pointer', + width: props.width || '200px', + height: props.height || '46px' }), props => ({ ...ButtonSizeMapper[props.size] }), props => ({ ...ButtonShapeMapper[props.shape] }), @@ -58,7 +54,7 @@ export const FilledButton = styled.button( }) ); -export const OutlinedButton = styled.button( +export const OutlinedButton = styled.button( props => ({ all: 'unset', fontWeight: 600, @@ -67,7 +63,9 @@ export const OutlinedButton = styled.button( alignItems: 'center', cursor: 'pointer', backgroundColor: ColorPaletteMapper[ColorPalette.WHITE][100], - color: ColorPaletteMapper[props.color][60] + color: ColorPaletteMapper[props.color][60], + width: props.width || '200px', + height: props.height || '46px' }), props => ({ ...ButtonSizeMapper[props.size] }), props => ({ ...ButtonShapeMapper[props.shape] }), @@ -79,18 +77,13 @@ export const OutlinedButton = styled.button( } ); -export const TextButton = styled.button( +export const TextButton = styled.button>( { all: 'unset', cursor: 'pointer', fontWeight: 600 }, props => ButtonSizeMapper[props.size], - props => ({ - color: ColorPaletteMapper[props.color][60], - padding: 0, - width: 0 - // height: 0 - }), + props => ({ color: ColorPaletteMapper[props.color][60] }), { '&:hover': css({ textDecoration: 'underline' }) } ); diff --git a/packages/ui/src/components/button/types.ts b/packages/ui/src/components/button/types.ts index e0fcb6f..43f4b82 100644 --- a/packages/ui/src/components/button/types.ts +++ b/packages/ui/src/components/button/types.ts @@ -17,9 +17,11 @@ export enum ButtonShape { ROUND = 'round' } -export interface IButtonProps { +export interface ButtonProps { color: ColorPalette; size: ButtonSize; shape: ButtonShape; + width?: string; + height?: string; onClick?: () => void; } diff --git a/packages/ui/src/components/button/types.tsx b/packages/ui/src/components/button/types.tsx deleted file mode 100644 index 5befc70..0000000 --- a/packages/ui/src/components/button/types.tsx +++ /dev/null @@ -1,17 +0,0 @@ -export enum ButtonType { - primary = 'primary', - secondary = 'secondary', - text = 'text' -} - -export interface IButtonStyle { - width: string; - height: string; - borderRadius: string; -} - -export interface IButtonProps { - colors?: string; // hex - type: ButtonType; - style?: Partial; -} diff --git a/packages/ui/src/components/card/container.tsx b/packages/ui/src/components/card/container.tsx new file mode 100644 index 0000000..3d095da --- /dev/null +++ b/packages/ui/src/components/card/container.tsx @@ -0,0 +1,27 @@ +import { css } from '@emotion/react'; +import { TPropsWithChildren } from '@/types'; +import { ColorPalette, ColorPaletteMapper } from '../color'; +import { CardContainerProps } from './types'; + +const CardContainer: TPropsWithChildren = ({ + children, + ...args +}) => { + return ( +
+ {children} +
+ ); +}; + +export default CardContainer; diff --git a/packages/ui/src/components/card/content/index.tsx b/packages/ui/src/components/card/content/index.tsx new file mode 100644 index 0000000..88a7b79 --- /dev/null +++ b/packages/ui/src/components/card/content/index.tsx @@ -0,0 +1 @@ +export { default as CardThumbnail } from './thumbnail'; diff --git a/packages/ui/src/components/card/content/thumbnail.tsx b/packages/ui/src/components/card/content/thumbnail.tsx new file mode 100644 index 0000000..935e6f2 --- /dev/null +++ b/packages/ui/src/components/card/content/thumbnail.tsx @@ -0,0 +1,22 @@ +import { FC } from 'react'; +import { CardThumbnailProps } from './types'; + +const CardThumbnail: FC = ({ + title, + imageUrl, + description +}) => { + // image + title + description + return ( +
+ {imageUrl} +

{title}

+ {description && {description}} +
+ ); +}; + +export default CardThumbnail; diff --git a/packages/ui/src/components/card/content/types.ts b/packages/ui/src/components/card/content/types.ts new file mode 100644 index 0000000..909e0aa --- /dev/null +++ b/packages/ui/src/components/card/content/types.ts @@ -0,0 +1,5 @@ +export interface CardThumbnailProps { + imageUrl: string; + title: string; + description?: string; +} diff --git a/packages/ui/src/components/card/footer.tsx b/packages/ui/src/components/card/footer.tsx new file mode 100644 index 0000000..b869a15 --- /dev/null +++ b/packages/ui/src/components/card/footer.tsx @@ -0,0 +1,20 @@ +import { css } from '@emotion/react'; +import { TPropsWithChildren } from '@/types'; + +const CardFooter: TPropsWithChildren = ({ children }) => { + return ( +
+ {children} +
+ ); +}; + +export default CardFooter; diff --git a/packages/ui/src/components/card/header.tsx b/packages/ui/src/components/card/header.tsx new file mode 100644 index 0000000..9c6c138 --- /dev/null +++ b/packages/ui/src/components/card/header.tsx @@ -0,0 +1,24 @@ +import { FC } from 'react'; +import { css } from '@emotion/react'; +import { CardHeaderDescription, CardHeaderTitle } from './styles'; +import { CardHeaderProps } from './types'; + +const CardHeader: FC = ({ title, description }) => { + return ( +
+ {/* title */} + {title} + {/* description */} + {description && ( + {description} + )} +
+ ); +}; + +export default CardHeader; diff --git a/packages/ui/src/components/card/index.tsx b/packages/ui/src/components/card/index.tsx index 6725dfd..7b608f8 100644 --- a/packages/ui/src/components/card/index.tsx +++ b/packages/ui/src/components/card/index.tsx @@ -1,27 +1,5 @@ -import { TPropsWithChildren } from '@/types'; -import { ICardProps } from './types'; +export { default as CardHeader } from './header'; +export { default as CardFooter } from './footer'; +export { default as CardContainer } from './container'; -const Card: TPropsWithChildren = ({ - imageUrl, // - title, - explain -}) => { - return ( -
- {/*์ธ๋„ค์ผ ์ž๋ฆฌ */} - thumbnail - {/* hover์‹œ ํƒ€์ดํ‹€ + ์„ค๋ช… ํ…์ŠคํŠธ */} - {title && explain && ( -
-
{title}
-
{explain}
-
- )} -
- ); -}; - -export default Card; +export * from './content'; diff --git a/packages/ui/src/components/card/styles.tsx b/packages/ui/src/components/card/styles.tsx new file mode 100644 index 0000000..b4684fb --- /dev/null +++ b/packages/ui/src/components/card/styles.tsx @@ -0,0 +1,11 @@ +import styled from '@emotion/styled'; + +export const CardHeaderTitle = styled.p` + font-size: 20px; + font-weight: 600; +`; + +export const CardHeaderDescription = styled.span` + font-size: 14px; + font-weight: 400; +`; diff --git a/packages/ui/src/components/card/types.ts b/packages/ui/src/components/card/types.ts index d6b4e6b..ba55ce7 100644 --- a/packages/ui/src/components/card/types.ts +++ b/packages/ui/src/components/card/types.ts @@ -1,5 +1,10 @@ -export interface ICardProps { - imageUrl: string; +export interface CardContainerProps { + width?: string; + height?: string; + padding?: string; +} + +export interface CardHeaderProps { title: string; - explain: string; + description?: string; } diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx index c3b4642..1188e8c 100644 --- a/packages/ui/src/main.tsx +++ b/packages/ui/src/main.tsx @@ -18,6 +18,8 @@ const ButtonTypes = { const ColorTypes = ColorPalette; +export * from './components/card'; + export { // FloatingButtonSet, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df76a08..9a828ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + typescript: ^5.4.5 + importers: .: @@ -14,6 +17,9 @@ importers: turbo: specifier: ^1.10.14 version: 1.11.3 + typescript: + specifier: ^5.4.5 + version: 5.4.5 apps/trip-diary: dependencies: @@ -59,10 +65,10 @@ importers: version: 18.2.18 '@typescript-eslint/eslint-plugin': specifier: ^6.0.0 - version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^6.0.0 - version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) + version: 6.18.1(eslint@8.56.0)(typescript@5.4.5) '@vitejs/plugin-react-swc': specifier: ^3.3.2 version: 3.5.0(vite@4.5.1) @@ -85,14 +91,14 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) typescript: - specifier: ^5.0.2 - version: 5.3.3 + specifier: ^5.4.5 + version: 5.4.5 vite: specifier: ^4.4.5 version: 4.5.1(@types/node@20.11.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.2.3(typescript@5.3.3)(vite@4.5.1) + version: 4.2.3(typescript@5.4.5)(vite@4.5.1) packages/eslint-config-custom: devDependencies: @@ -101,10 +107,10 @@ importers: version: 11.11.0(eslint@8.56.0) '@typescript-eslint/eslint-plugin': specifier: ^6.0.0 - version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^6.0.0 - version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) + version: 6.18.1(eslint@8.56.0)(typescript@5.4.5) eslint: specifier: ^8.45.0 version: 8.56.0 @@ -164,10 +170,10 @@ importers: version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/react': specifier: ^7.4.6 - version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5) '@storybook/react-vite': specifier: ^7.4.6 - version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@4.5.1) + version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5)(vite@4.5.1) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -188,7 +194,7 @@ importers: version: 3.5.0(vite@4.5.1) eslint-plugin-storybook: specifier: ^0.6.14 - version: 0.6.15(eslint@8.56.0)(typescript@5.3.3) + version: 0.6.15(eslint@8.57.0)(typescript@5.4.5) react: specifier: ^18.2.0 version: 18.2.0 @@ -199,17 +205,17 @@ importers: specifier: ^7.4.6 version: 7.6.7 typescript: - specifier: ^5.0.2 - version: 5.3.3 + specifier: ^5.4.5 + version: 5.4.5 vite: specifier: ^4.4.5 version: 4.5.1(@types/node@20.11.0) vite-plugin-dts: specifier: ^3.5.4 - version: 3.7.0(@types/node@20.11.0)(typescript@5.3.3)(vite@4.5.1) + version: 3.7.0(@types/node@20.11.0)(typescript@5.4.5)(vite@4.5.1) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.2.3(typescript@5.3.3)(vite@4.5.1) + version: 4.2.3(typescript@5.4.5)(vite@4.5.1) packages: @@ -2342,6 +2348,16 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@eslint-community/regexpp@4.10.0: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2369,6 +2385,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@fal-works/esbuild-plugin-global-externals@2.1.2: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true @@ -2502,10 +2523,10 @@ packages: chalk: 4.1.2 dev: true - /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.3)(vite@4.5.1): + /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.4.5)(vite@4.5.1): resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} peerDependencies: - typescript: '>= 4.3.x' + typescript: ^5.4.5 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: typescript: @@ -2514,8 +2535,8 @@ packages: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.3.3) - typescript: 5.3.3 + react-docgen-typescript: 2.2.2(typescript@5.4.5) + typescript: 5.4.5 vite: 4.5.1(@types/node@20.11.0) dev: true @@ -2588,7 +2609,7 @@ packages: resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 - typescript: 5.3.3 + typescript: 5.4.5 transitivePeerDependencies: - '@types/node' dev: true @@ -3494,11 +3515,11 @@ packages: - supports-color dev: true - /@storybook/builder-vite@7.6.7(typescript@5.3.3)(vite@4.5.1): + /@storybook/builder-vite@7.6.7(typescript@5.4.5)(vite@4.5.1): resolution: {integrity: sha512-Sv+0ROFU9k+mkvIPsPHC0lkKDzBeMpvfO9uFRl1RDSsXBfcPPZKNo5YK7U7fOhesH0BILzurGA+U/aaITMSZ9g==} peerDependencies: '@preact/preset-vite': '*' - typescript: '>= 4.3.x' + typescript: ^5.4.5 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 vite-plugin-glimmerx: '*' peerDependenciesMeta: @@ -3525,7 +3546,7 @@ packages: fs-extra: 11.2.0 magic-string: 0.30.5 rollup: 3.29.4 - typescript: 5.3.3 + typescript: 5.4.5 vite: 4.5.1(@types/node@20.11.0) transitivePeerDependencies: - encoding @@ -3871,7 +3892,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/react-vite@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@4.5.1): + /@storybook/react-vite@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5)(vite@4.5.1): resolution: {integrity: sha512-1cBpxVZ4vLO5rGbhTBNR2SjL+ZePCUAEY+I31tbORYFAoOKmlsNef4fRLnXJ9NYUAyjwZpUmbW0cIxxOFk7nGA==} engines: {node: '>=16'} peerDependencies: @@ -3879,10 +3900,10 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.3)(vite@4.5.1) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.4.5)(vite@4.5.1) '@rollup/pluginutils': 5.1.0 - '@storybook/builder-vite': 7.6.7(typescript@5.3.3)(vite@4.5.1) - '@storybook/react': 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + '@storybook/builder-vite': 7.6.7(typescript@5.4.5)(vite@4.5.1) + '@storybook/react': 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5) '@vitejs/plugin-react': 3.1.0(vite@4.5.1) magic-string: 0.30.5 react: 18.2.0 @@ -3898,13 +3919,13 @@ packages: - vite-plugin-glimmerx dev: true - /@storybook/react@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + /@storybook/react@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5): resolution: {integrity: sha512-uT9IBPDM1SQg6FglWqb7IemOJ1Z8kYB5rehIDEDToi0u5INihSY8rHd003TxG4Wx4REp6J+rfbDJO2aVui/gxA==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' + typescript: ^5.4.5 peerDependenciesMeta: typescript: optional: true @@ -3931,7 +3952,7 @@ packages: react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@18.2.0) ts-dedent: 2.2.0 type-fest: 2.19.0 - typescript: 5.3.3 + typescript: 5.4.5 util-deprecate: 1.0.2 transitivePeerDependencies: - encoding @@ -4422,7 +4443,7 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.4.5): resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4434,10 +4455,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.4.5) '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.4.5) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.4.5) '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 @@ -4445,13 +4466,13 @@ packages: ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.4.5): resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4463,11 +4484,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.18.1 '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.4.5) '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 - typescript: 5.3.3 + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -4488,7 +4509,7 @@ packages: '@typescript-eslint/visitor-keys': 6.18.1 dev: true - /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.4.5): resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4498,12 +4519,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.4.5) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.4.5) debug: 4.3.4 eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -4518,7 +4539,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4533,13 +4554,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 + tsutils: 3.21.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.18.1(typescript@5.4.5): resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4555,25 +4576,25 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) + eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -4581,7 +4602,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.4.5): resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4592,7 +4613,7 @@ packages: '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.18.1 '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.4.5) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -4683,10 +4704,10 @@ packages: '@vue/shared': 3.4.8 dev: true - /@vue/language-core@1.8.27(typescript@5.3.3): + /@vue/language-core@1.8.27(typescript@5.4.5): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: - typescript: '*' + typescript: ^5.4.5 peerDependenciesMeta: typescript: optional: true @@ -4699,7 +4720,7 @@ packages: minimatch: 9.0.3 muggle-string: 0.3.1 path-browserify: 1.0.1 - typescript: 5.3.3 + typescript: 5.4.5 vue-template-compiler: 2.7.16 dev: true @@ -6022,7 +6043,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.4.5) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -6041,7 +6062,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.4.5) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -6108,15 +6129,15 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-storybook@0.6.15(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-storybook@0.6.15(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==} engines: {node: 12.x || 14.x || >= 16} peerDependencies: eslint: '>=6' dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 requireindex: 1.2.0 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -6192,6 +6213,53 @@ packages: - supports-color dev: true + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6892,6 +6960,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -8001,6 +8074,18 @@ packages: type-check: 0.4.0 dev: true + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + dev: true + /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -8384,12 +8469,12 @@ packages: tween-functions: 1.2.0 dev: true - /react-docgen-typescript@2.2.2(typescript@5.3.3): + /react-docgen-typescript@2.2.2(typescript@5.4.5): resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: - typescript: '>= 4.3.x' + typescript: ^5.4.5 dependencies: - typescript: 5.3.3 + typescript: 5.4.5 dev: true /react-docgen@7.0.2: @@ -9285,13 +9370,13 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /ts-api-utils@1.0.3(typescript@5.3.3): + /ts-api-utils@1.0.3(typescript@5.4.5): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: - typescript: '>=4.2.0' + typescript: ^5.4.5 dependencies: - typescript: 5.3.3 + typescript: 5.4.5 dev: true /ts-dedent@2.2.0: @@ -9299,17 +9384,17 @@ packages: engines: {node: '>=6.10'} dev: true - /tsconfck@2.1.2(typescript@5.3.3): + /tsconfck@2.1.2(typescript@5.4.5): resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==} engines: {node: ^14.13.1 || ^16 || >=18} hasBin: true peerDependencies: - typescript: ^4.3.5 || ^5.0.0 + typescript: ^5.4.5 peerDependenciesMeta: typescript: optional: true dependencies: - typescript: 5.3.3 + typescript: 5.4.5 dev: true /tsconfig-paths@3.15.0: @@ -9329,14 +9414,14 @@ packages: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true - /tsutils@3.21.0(typescript@5.3.3): + /tsutils@3.21.0(typescript@5.4.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + typescript: ^5.4.5 dependencies: tslib: 1.14.1 - typescript: 5.3.3 + typescript: 5.4.5 dev: true /turbo-darwin-64@1.11.3: @@ -9485,8 +9570,8 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -9694,11 +9779,11 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-plugin-dts@3.7.0(@types/node@20.11.0)(typescript@5.3.3)(vite@4.5.1): + /vite-plugin-dts@3.7.0(@types/node@20.11.0)(typescript@5.4.5)(vite@4.5.1): resolution: {integrity: sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - typescript: '*' + typescript: ^5.4.5 vite: '*' peerDependenciesMeta: vite: @@ -9706,19 +9791,19 @@ packages: dependencies: '@microsoft/api-extractor': 7.39.0(@types/node@20.11.0) '@rollup/pluginutils': 5.1.0 - '@vue/language-core': 1.8.27(typescript@5.3.3) + '@vue/language-core': 1.8.27(typescript@5.4.5) debug: 4.3.4 kolorist: 1.8.0 - typescript: 5.3.3 + typescript: 5.4.5 vite: 4.5.1(@types/node@20.11.0) - vue-tsc: 1.8.27(typescript@5.3.3) + vue-tsc: 1.8.27(typescript@5.4.5) transitivePeerDependencies: - '@types/node' - rollup - supports-color dev: true - /vite-tsconfig-paths@4.2.3(typescript@5.3.3)(vite@4.5.1): + /vite-tsconfig-paths@4.2.3(typescript@5.4.5)(vite@4.5.1): resolution: {integrity: sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==} peerDependencies: vite: '*' @@ -9728,7 +9813,7 @@ packages: dependencies: debug: 4.3.4 globrex: 0.1.2 - tsconfck: 2.1.2(typescript@5.3.3) + tsconfck: 2.1.2(typescript@5.4.5) vite: 4.5.1(@types/node@20.11.0) transitivePeerDependencies: - supports-color @@ -9778,16 +9863,16 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.27(typescript@5.3.3): + /vue-tsc@1.8.27(typescript@5.4.5): resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} hasBin: true peerDependencies: - typescript: '*' + typescript: ^5.4.5 dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.3.3) + '@vue/language-core': 1.8.27(typescript@5.4.5) semver: 7.5.4 - typescript: 5.3.3 + typescript: 5.4.5 dev: true /walker@1.0.8: @@ -9886,6 +9971,11 @@ packages: isexe: 2.0.0 dev: true + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true