diff --git a/docs/pages/components/button.mdx b/docs/pages/components/button.mdx index a74852df24..734f8c1485 100644 --- a/docs/pages/components/button.mdx +++ b/docs/pages/components/button.mdx @@ -145,15 +145,6 @@ You can add `w` property from [xstyled](https://xstyled.dev/docs/width/). ``` -## Radius - -You can add `borderRadius` property from [xstyled](https://xstyled.dev/docs/border-radius/). - -```jsx row - - -``` - ## ButtonGroup See documentation from [ButtonGroup](/components/button-group) component. diff --git a/docs/pages/theming/customize.mdx b/docs/pages/theming/customize.mdx index b5ecd33e0b..9d8331812a 100644 --- a/docs/pages/theming/customize.mdx +++ b/docs/pages/theming/customize.mdx @@ -44,12 +44,6 @@ const theme = createTheme({ 3xl: 50, 4xl: 70 }, - // example if you need to remove border radius - radii: { - sm: 0, - md: 0, - lg: 0 - }, space: { lg: 24 }, diff --git a/package.json b/package.json index bbfd474ee1..0d48a5d464 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,6 @@ "esbuild": "^0.17.11", "esbuild-plugin-replace": "^1.4.0", "esm": "^3.2.25", - "glob": "^10.3.10", "husky": "8.0.3", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", diff --git a/packages/Core/src/theme/alerts.ts b/packages/Core/src/theme/alerts.ts index b2f093b550..20291265c4 100644 --- a/packages/Core/src/theme/alerts.ts +++ b/packages/Core/src/theme/alerts.ts @@ -15,14 +15,13 @@ export type ThemeAlerts = { } & Record export const getAlerts = (theme: WuiTheme): ThemeAlerts => { - const { borderWidths, colors, fontSizes, radii, space } = theme + const { borderWidths, colors, fontSizes, space } = theme return { default: { fontSize: fontSizes.sm, borderWidth: borderWidths.sm, borderStyle: 'solid', - borderRadius: radii.md, color: colors['dark-700'], backgroundColor: colors['light-900'], borderColor: colors['dark-100'], diff --git a/packages/Core/src/theme/buttons.ts b/packages/Core/src/theme/buttons.ts index bfe594350e..f44c310ed7 100644 --- a/packages/Core/src/theme/buttons.ts +++ b/packages/Core/src/theme/buttons.ts @@ -34,13 +34,12 @@ export type ThemeButtons = Record & Record<'icon', Record>> export const getButtons = (theme: WuiTheme): ThemeButtons => { - const { colors, focus, fontWeights, radii, space, texts, toRem } = theme + const { colors, focus, fontWeights, space, texts, toRem } = theme const defaults = { ...texts.xs, color: colors['light-900'], fontWeight: fontWeights.bold, letterSpacing: 0, - borderRadius: radii.md, } return { diff --git a/packages/Core/src/theme/cards.ts b/packages/Core/src/theme/cards.ts index fff0089786..5a71544e15 100644 --- a/packages/Core/src/theme/cards.ts +++ b/packages/Core/src/theme/cards.ts @@ -1,21 +1,13 @@ import { CSSObject } from '@xstyled/styled-components' -import { WuiTheme } from './types' - export type ThemeCards = { default: CSSObject - cover: CSSObject } -export const getCards = (theme: WuiTheme): ThemeCards => { - const { radii } = theme +export const getCards = (): ThemeCards => { return { default: { overflow: 'hidden', }, - cover: { - borderTopLeftRadius: radii.sm, - borderTopRightRadius: radii.sm, - }, } } diff --git a/packages/Core/src/theme/core.ts b/packages/Core/src/theme/core.ts index 3d0d7bcd8d..76ab33622c 100644 --- a/packages/Core/src/theme/core.ts +++ b/packages/Core/src/theme/core.ts @@ -20,7 +20,7 @@ import { timingFunction, transitions } from './transitions' import { getUnderline } from './underline' import { getDefaultFields } from './defaultFields' import { getDefaultCards } from './defaultCards' -import { radii } from './radii' +import { getRadii } from './radii' import { borderWidths } from './borders' import { screens } from './screens' import { shadows } from './shadows' @@ -125,7 +125,7 @@ export const createTheme = (options: Options = {}): WuiTheme => { theme.icons = getIcons(theme) - theme.radii = radii + theme.radii = getRadii(theme) theme.transitions = transitions theme.timingFunction = timingFunction @@ -157,7 +157,7 @@ export const createTheme = (options: Options = {}): WuiTheme => { theme.links = getLinks(theme) theme.dropdownMenu = getDropdownMenu(theme) theme.tables = getTables(theme) - theme.cards = getCards(theme) + theme.cards = getCards() theme.modals = getModals(theme) theme.drawers = getDrawers(theme) theme.loaders = getLoaders(theme) diff --git a/packages/Core/src/theme/defaultCards.ts b/packages/Core/src/theme/defaultCards.ts index 6da7b2a305..2f073c27a6 100644 --- a/packages/Core/src/theme/defaultCards.ts +++ b/packages/Core/src/theme/defaultCards.ts @@ -2,21 +2,17 @@ import { CSSObject } from '@xstyled/styled-components' import { ThemeBorderWidths } from './borders' import { ThemeColors } from './colors' -import { ThemeRadii } from './radii' export type ThemeDefaultCards = CSSObject export const getDefaultCards = ({ borderWidths, colors, - radii, }: { borderWidths: ThemeBorderWidths colors: ThemeColors - radii: ThemeRadii }): ThemeDefaultCards => ({ backgroundColor: colors['light-900'], - borderRadius: radii.md, borderStyle: 'solid', borderWidth: borderWidths.sm, borderColor: colors.border, diff --git a/packages/Core/src/theme/defaultFields.ts b/packages/Core/src/theme/defaultFields.ts index 31d82c6005..022780b826 100644 --- a/packages/Core/src/theme/defaultFields.ts +++ b/packages/Core/src/theme/defaultFields.ts @@ -37,7 +37,7 @@ export type ThemeDefaultFields = { } export const getDefaultFields = (theme: WuiTheme): ThemeDefaultFields => { - const { borderWidths, colors, focus, fontSizes, fontWeights, radii, space, toRem } = theme + const { borderWidths, colors, focus, fontSizes, fontWeights, space, toRem } = theme return { default: { @@ -51,7 +51,6 @@ export const getDefaultFields = (theme: WuiTheme): ThemeDefaultFields => { borderWidth: borderWidths.sm, borderStyle: 'solid', outline: 'none', - borderRadius: radii.md, }, sizes: { xs: { diff --git a/packages/Core/src/theme/radii.ts b/packages/Core/src/theme/radii.ts index 25a82c6cc7..661ce33f99 100644 --- a/packages/Core/src/theme/radii.ts +++ b/packages/Core/src/theme/radii.ts @@ -1,8 +1,20 @@ +import { WuiTheme } from './types' + export type ThemeRadii = { + none: string sm: string md: string lg: string + xl: string [key: number]: string } -export const radii: ThemeRadii = { sm: '4px', md: '6px', lg: '10px' } +export const getRadii = (theme: WuiTheme): ThemeRadii => { + return { + none: '0', + sm: theme.toRem(2), + md: theme.toRem(4), + lg: theme.toRem(8), + xl: theme.toRem(16), + } +} diff --git a/packages/Core/src/theme/toasts.ts b/packages/Core/src/theme/toasts.ts index fce71672f3..d1c3fb272d 100644 --- a/packages/Core/src/theme/toasts.ts +++ b/packages/Core/src/theme/toasts.ts @@ -14,7 +14,7 @@ export type ThemeToasts = { } export const getToasts = (theme: WuiTheme): ThemeToasts => { - const { borderWidths, colors, fontWeights, radii, space } = theme + const { borderWidths, colors, fontWeights, space } = theme return { default: { @@ -32,7 +32,6 @@ export const getToasts = (theme: WuiTheme): ThemeToasts => { ...getTexts(theme).sm, borderWidth: borderWidths.sm, borderStyle: 'solid', - borderRadius: radii.md, }, title: { fontWeight: fontWeights.bold, diff --git a/packages/Core/src/theme/tooltips.ts b/packages/Core/src/theme/tooltips.ts index e4995c5fde..b8cbcb6b1a 100644 --- a/packages/Core/src/theme/tooltips.ts +++ b/packages/Core/src/theme/tooltips.ts @@ -3,7 +3,7 @@ import { CSSObject } from '@xstyled/styled-components' import { WuiTheme } from './types' export const getTooltips = (theme: WuiTheme): CSSObject => { - const { borderWidths, colors, fontSizes, lineHeights, radii, space, toRem } = theme + const { borderWidths, colors, fontSizes, lineHeights, space, toRem } = theme return { maxWidth: toRem(200), @@ -13,7 +13,6 @@ export const getTooltips = (theme: WuiTheme): CSSObject => { fontSize: fontSizes.xs, lineHeight: lineHeights.xs, border: `${borderWidths.sm} solid ${colors['light-400']}`, - borderRadius: radii.sm, boxSizing: 'border-box', } } diff --git a/packages/MarkdownEditor/src/styles.ts b/packages/MarkdownEditor/src/styles.ts index 9ef7df7c27..965236c1f3 100644 --- a/packages/MarkdownEditor/src/styles.ts +++ b/packages/MarkdownEditor/src/styles.ts @@ -23,7 +23,6 @@ export const Wrapper = styled('div').withConfig({ shouldForwardProp })< ${disabled && th('defaultFields.disabled')}; height: auto; padding: 0; - border-radius: sm; .editor-statusbar { display: none; diff --git a/packages/RadioTab/src/styles.ts b/packages/RadioTab/src/styles.ts index f807811e21..b5e785f2f8 100644 --- a/packages/RadioTab/src/styles.ts +++ b/packages/RadioTab/src/styles.ts @@ -13,16 +13,13 @@ export const Radio = styled(Ariakit.Radio).withConfig({ shouldForwardProp })` const columnStyles = css` margin-top: -${th.borderWidth('sm')}; - border-radius: 0; &:first-of-type { - border-radius: md; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } &:last-of-type { - border-radius: md; border-top-right-radius: 0; border-top-left-radius: 0; } @@ -30,16 +27,13 @@ const columnStyles = css` const rowStyles = css` margin-left: -${th.borderWidth('sm')}; - border-radius: 0; &:first-of-type { - border-radius: md; border-top-right-radius: 0; border-bottom-right-radius: 0; } &:last-of-type { - border-radius: md; border-top-left-radius: 0; border-bottom-left-radius: 0; } diff --git a/packages/Shape/tests/index.test.tsx b/packages/Shape/tests/index.test.tsx index 1ec54d0ec4..01489b5d28 100644 --- a/packages/Shape/tests/index.test.tsx +++ b/packages/Shape/tests/index.test.tsx @@ -24,7 +24,7 @@ describe('', () => { ) const shape = getByTestId('shape') - expect(shape).toHaveStyleRule('border-radius', '10px') + expect(shape).toHaveStyleRule('border-radius', '0.5rem') }) it('using shape with unequal width / height props should use biggest value', () => { diff --git a/packages/Tag/src/styles.ts b/packages/Tag/src/styles.ts index ce475e5fb8..5a11655a03 100644 --- a/packages/Tag/src/styles.ts +++ b/packages/Tag/src/styles.ts @@ -35,7 +35,6 @@ export const Tag = styled.div.withConfig({ display: inline-flex; align-items: center; justify-content: center; - border-radius: md; line-height: initial; /* avoid cropped font */ transition: medium; max-width: 100%; diff --git a/packages/Themes/Welcome/src/theme.ts b/packages/Themes/Welcome/src/theme.ts index 175b5c1bc7..427f5c2bdd 100644 --- a/packages/Themes/Welcome/src/theme.ts +++ b/packages/Themes/Welcome/src/theme.ts @@ -42,11 +42,6 @@ const colors: Partial = { export const welcomeTheme: RecursivePartial = { colors, - radii: { - sm: '0px', - md: '0px', - lg: '0px', - }, shadows: { sm: 'none', md: 'none', diff --git a/scripts/upgrade-radii.js b/scripts/upgrade-radii.js new file mode 100644 index 0000000000..9dd4613a0a --- /dev/null +++ b/scripts/upgrade-radii.js @@ -0,0 +1,77 @@ +/* eslint-disable no-console */ +/* eslint-disable @typescript-eslint/no-var-requires */ +// This script will help you to migrate to our new radii values +// node ./scripts/upgrade-radii.js "../YOUR_PROJECT/src/**/**.{ts,tsx}" +const fs = require('fs/promises') + +const glob = require('glob') + +// const pattern = 'src/**/**.*(ts|tsx)' +const [pattern = ''] = process.argv.slice(2) + +const newRadiiValues = { + 2: 'sm', + '2px': 'sm', + 4: 'md', + '4px': 'md', + 8: 'lg', + '8px': 'lg', + 16: 'xl', + '16px': 'xl', +} + +const getNewRadiiValue = value => newRadiiValues[value] || value +const removeQuotes = value => value.replaceAll('{', '').replaceAll('}', '').replaceAll('"', '') +const removeSemicolon = value => value.replace(';', '') + +const cleanJsxRadiiValue = prop => { + const [key, value] = prop.split('=') + const newValue = getNewRadiiValue(removeQuotes(value)) + + return `${key}="${newValue}"` +} + +const cleanStyledRadiiValue = prop => { + const [key, value] = prop.split(':') + const newValue = getNewRadiiValue(removeSemicolon(value).trim()) + + return `${key}: ${newValue};` +} + +const upgradeJsxRadii = content => { + const regex = /borderRadius=(\{(2|4|8|16)}|"(2px|4px|8px|16px)")/gm + + if (regex.test(content)) { + const newContent = content.replaceAll(regex, cleanJsxRadiiValue) + return newContent + } + + return content +} + +const upgradeStyledRadii = content => { + const regex = /(border-radius):( )(2|4|8|16);/gm + + if (regex.test(content)) { + const newContent = content.replaceAll(regex, cleanStyledRadiiValue) + return newContent + } + + return content +} + +glob(pattern, (error, matches) => { + if (error) console.log('error', error) + + matches.forEach(async match => { + const file = await fs.readFile(match) + let content = file.toString() + + content = upgradeStyledRadii(content) + content = upgradeJsxRadii(content) + + await fs.writeFile(match, content) + }) + + console.log('done') +}) diff --git a/yarn.lock b/yarn.lock index f1092c74e6..1a82a02f4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2173,18 +2173,6 @@ resolved "https://registry.yarnpkg.com/@import-maps/resolve/-/resolve-1.0.1.tgz#1e9fcadcf23aa0822256a329aabca241879d37c9" integrity sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA== -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" @@ -3957,11 +3945,6 @@ dependencies: esquery "^1.0.1" -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@pnpm/network.ca-file@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz#16f88d057c68cd5419c1ef3dfa281296ea80b047" @@ -9496,14 +9479,6 @@ foreground-child@^2.0.0: cross-spawn "^7.0.0" signal-exit "^3.0.2" -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - form-data-encoder@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.3.tgz#682cd821a8423605093992ff895e6b2ed5a9d429" @@ -9945,17 +9920,6 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^10.3.10: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -11498,15 +11462,6 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jaeger-client@^3.15.0: version "3.19.0" resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" @@ -12828,11 +12783,6 @@ lru-cache@^7.14.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - luxon@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" @@ -13320,13 +13270,6 @@ minimatch@^9.0.0: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -13436,11 +13379,6 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== - minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -14993,14 +14931,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.6.1.tgz#dab45f7bb1d3f45a0e271ab258999f4ab7e23132" @@ -17056,15 +16986,6 @@ string-template@~0.2.1: resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -17074,6 +16995,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -17165,13 +17095,6 @@ stringify-package@^1.0.1: resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi-control-characters@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz#8875b5ba3a859a0a44f94e1cf7d3eda8980997b9" @@ -17198,6 +17121,13 @@ strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.0, strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -18841,15 +18771,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" @@ -18858,6 +18779,15 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3"