diff --git a/.eslintrc.js b/.eslintrc.js index de7fc1a07ebc..7b15a5f9a750 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,6 +3,7 @@ const loadIgnorePatterns = require( './tools/js-tools/load-eslint-ignore.js' ); /** * @type {import("eslint").Linter.Config} */ + module.exports = { root: true, extends: [ './tools/js-tools/eslintrc/base.js' ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec95446d6914..9e0e0dc41fa5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -139,9 +139,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 debug: specifier: 4.3.4 version: 4.3.4 @@ -308,9 +308,9 @@ importers: '@wordpress/notices': specifier: 5.0.0 version: 5.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 prop-types: specifier: ^15.7.2 version: 15.8.1 @@ -459,9 +459,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 debug: specifier: 4.3.4 version: 4.3.4 @@ -768,9 +768,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 prop-types: specifier: 15.7.2 version: 15.7.2 @@ -832,9 +832,9 @@ importers: '@wordpress/i18n': specifier: 5.0.0 version: 5.0.0 - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 prop-types: specifier: 15.7.2 version: 15.7.2 @@ -950,9 +950,9 @@ importers: '@wordpress/notices': specifier: 5.0.0 version: 5.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 prop-types: specifier: 15.8.1 version: 15.8.1 @@ -1924,9 +1924,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 copy-webpack-plugin: specifier: 11.0.0 version: 11.0.0(webpack@5.76.0(webpack-cli@4.9.1)) @@ -2295,9 +2295,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 debug: specifier: 4.3.4 version: 4.3.4 @@ -2461,9 +2461,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 fast-json-stable-stringify: specifier: 2.1.0 version: 2.1.0 @@ -2673,9 +2673,9 @@ importers: '@wordpress/url': specifier: 4.0.0 version: 4.0.0 - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 debug: specifier: 4.3.4 version: 4.3.4 @@ -2824,9 +2824,9 @@ importers: chart.js: specifier: 3.7.1 version: 3.7.1 - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 fast-json-stable-stringify: specifier: 2.1.0 version: 2.1.0 @@ -3035,9 +3035,9 @@ importers: '@wordpress/i18n': specifier: 5.0.0 version: 5.0.0 - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 react: specifier: 18.3.1 version: 18.3.1 @@ -3135,9 +3135,9 @@ importers: '@wordpress/element': specifier: 6.0.0 version: 6.0.0 - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 copy-webpack-plugin: specifier: 11.0.0 version: 11.0.0(webpack@5.76.0(webpack-cli@4.9.1)) @@ -3380,9 +3380,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 prop-types: specifier: 15.8.1 version: 15.8.1 @@ -3628,12 +3628,12 @@ importers: bounding-client-rect: specifier: 1.0.5 version: 1.0.5 - classnames: - specifier: 2.3.2 - version: 2.3.2 clipboard: specifier: 2.0.6 version: 2.0.6 + clsx: + specifier: 2.1.1 + version: 2.1.1 component-uid: specifier: 0.0.2 version: 0.0.2 @@ -4017,9 +4017,9 @@ importers: camelize: specifier: 1.0.1 version: 1.0.1 - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 diff: specifier: ^4.0.2 version: 4.0.2 @@ -4125,9 +4125,9 @@ importers: '@wordpress/icons': specifier: 10.0.0 version: 10.0.0(react@18.3.1) - classnames: - specifier: 2.3.2 - version: 2.3.2 + clsx: + specifier: 2.1.1 + version: 2.1.1 react: specifier: 18.3.1 version: 18.3.1 diff --git a/projects/js-packages/ai-client/changelog/fix-37695-classnames_to_clsx b/projects/js-packages/ai-client/changelog/fix-37695-classnames_to_clsx new file mode 100644 index 000000000000..b5611999cbae --- /dev/null +++ b/projects/js-packages/ai-client/changelog/fix-37695-classnames_to_clsx @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Change codebase to use clsx instead of classnames. diff --git a/projects/js-packages/ai-client/package.json b/projects/js-packages/ai-client/package.json index 04238f8cea60..defbbded2e08 100644 --- a/projects/js-packages/ai-client/package.json +++ b/projects/js-packages/ai-client/package.json @@ -56,7 +56,7 @@ "@wordpress/element": "6.0.0", "@wordpress/i18n": "5.0.0", "@wordpress/icons": "10.0.0", - "classnames": "2.3.2", + "clsx": "2.1.1", "debug": "4.3.4", "markdown-it": "14.0.0", "react": "18.3.1", diff --git a/projects/js-packages/ai-client/src/components/ai-control/ai-control.tsx b/projects/js-packages/ai-client/src/components/ai-control/ai-control.tsx index c1fe931fc7cc..60f4155245ef 100644 --- a/projects/js-packages/ai-client/src/components/ai-control/ai-control.tsx +++ b/projects/js-packages/ai-client/src/components/ai-control/ai-control.tsx @@ -2,7 +2,7 @@ * External dependencies */ import { PlainText } from '@wordpress/block-editor'; -import classNames from 'classnames'; +import clsx from 'clsx'; import React from 'react'; /** * Internal dependencies @@ -54,14 +54,14 @@ export default function AIControl( { }: AIControlProps ): ReactElement { return (
{ error }
{ banner }
diff --git a/projects/js-packages/ai-client/src/components/ai-status-indicator/index.tsx b/projects/js-packages/ai-client/src/components/ai-status-indicator/index.tsx index 2cac9d3898a8..613f3e7a3f53 100644 --- a/projects/js-packages/ai-client/src/components/ai-status-indicator/index.tsx +++ b/projects/js-packages/ai-client/src/components/ai-status-indicator/index.tsx @@ -2,7 +2,7 @@ * External dependencies */ import { Spinner } from '@wordpress/components'; -import classNames from 'classnames'; +import clsx from 'clsx'; /* * Types */ @@ -26,7 +26,7 @@ export type AiStatusIndicatorProps = { export default function AiStatusIndicator( { state }: AiStatusIndicatorProps ): React.ReactElement { return (
diff --git a/projects/js-packages/ai-client/src/components/message/index.tsx b/projects/js-packages/ai-client/src/components/message/index.tsx index 6f25078cb8d4..aa57982800c3 100644 --- a/projects/js-packages/ai-client/src/components/message/index.tsx +++ b/projects/js-packages/ai-client/src/components/message/index.tsx @@ -4,7 +4,7 @@ import { ExternalLink, Button } from '@wordpress/components'; import { __, sprintf } from '@wordpress/i18n'; import { Icon, check, arrowRight } from '@wordpress/icons'; -import classNames from 'classnames'; +import clsx from 'clsx'; /** * Internal dependencies */ @@ -78,7 +78,7 @@ export default function Message( { }: MessageProps ): React.ReactElement { return (
{ <> { ) }
{ ( isForcedToShow || isVisible ) && ( diff --git a/projects/js-packages/components/components/icons/index.tsx b/projects/js-packages/components/components/icons/index.tsx index bed624ca12b1..1e77dd87e880 100644 --- a/projects/js-packages/components/components/icons/index.tsx +++ b/projects/js-packages/components/components/icons/index.tsx @@ -1,5 +1,5 @@ import { Path, SVG, G, Polygon } from '@wordpress/components'; -import classNames from 'classnames'; +import clsx from 'clsx'; import SocialLogo from 'social-logos'; import styles from './style.module.scss'; import { BaseIconProps } from './types'; @@ -20,7 +20,7 @@ const IconWrapper: React.FC< BaseIconProps > = ( { children, } ) => { const iconProps = { - className: classNames( styles.iconWrapper, className ), + className: clsx( styles.iconWrapper, className ), width: size, height: size, viewBox, @@ -282,7 +282,7 @@ export const SocialServiceIcon: React.FC< { } > = ( { serviceName, className, iconSize } ) => { return ( diff --git a/projects/js-packages/components/components/indeterminate-progress-bar/index.tsx b/projects/js-packages/components/components/indeterminate-progress-bar/index.tsx index d94d85f7125e..ea3a182cee50 100644 --- a/projects/js-packages/components/components/indeterminate-progress-bar/index.tsx +++ b/projects/js-packages/components/components/indeterminate-progress-bar/index.tsx @@ -2,7 +2,7 @@ * External dependencies */ import { __ } from '@wordpress/i18n'; -import classnames from 'classnames'; +import clsx from 'clsx'; /** * Internal dependencies */ @@ -19,7 +19,7 @@ import type React from 'react'; const IndeterminateProgressBar: React.FC< IndeterminateProgressBarProps > = ( { className } ) => { return (
); diff --git a/projects/js-packages/components/components/jetpack-footer/index.tsx b/projects/js-packages/components/components/jetpack-footer/index.tsx index dcb32b896caf..3a4c2572fefc 100644 --- a/projects/js-packages/components/components/jetpack-footer/index.tsx +++ b/projects/js-packages/components/components/jetpack-footer/index.tsx @@ -1,7 +1,7 @@ import { useSelect } from '@wordpress/data'; import { __, _x } from '@wordpress/i18n'; import { Icon, external } from '@wordpress/icons'; -import classnames from 'classnames'; +import clsx from 'clsx'; import React from 'react'; import { getRedirectUrl } from '../..'; import { STORE_ID as CONNECTION_STORE_ID } from '../../../../js-packages/connection/state/store'; @@ -111,7 +111,7 @@ const JetpackFooter: React.FC< JetpackFooterProps > = ( { return (