diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-filters/save.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-filters/save.tsx
index 90b28869662..5dd50a222cb 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-filters/save.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-filters/save.tsx
@@ -2,7 +2,7 @@
* External dependencies
*/
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
-import classnames from 'classnames';
+import clsx from 'clsx';
/**
* Internal dependencies
@@ -10,7 +10,7 @@ import classnames from 'classnames';
export const Save = (): JSX.Element => {
const blockProps = useBlockProps.save( {
- className: classnames( 'wc-block-product-filters' ),
+ className: clsx( 'wc-block-product-filters' ),
} );
const innerBlocksProps = useInnerBlocksProps.save( blockProps );
return
;
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-large-image-next-previous/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-large-image-next-previous/edit.tsx
index 17b4f9a2e36..e9e730d4394 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-large-image-next-previous/edit.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-large-image-next-previous/edit.tsx
@@ -5,7 +5,7 @@ import { InspectorControls, useBlockProps } from '@wordpress/block-editor';
import { useMemo } from '@wordpress/element';
import { BlockAttributes } from '@wordpress/blocks';
import { PanelBody } from '@wordpress/components';
-import classNames from 'classnames';
+import clsx from 'clsx';
/**
* Internal dependencies
@@ -43,7 +43,7 @@ export const Edit = ( {
attributes.layout?.verticalAlignment
),
},
- className: classNames(
+ className: clsx(
'wc-block-editor-product-gallery-large-image-next-previous',
'wc-block-product-gallery-large-image-next-previous'
),
@@ -65,7 +65,7 @@ export const Edit = ( {
{
const { context } = props;
const blockProps = useBlockProps( {
- className: classNames(
+ className: clsx(
'wc-block-editor-product-gallery-pager',
'wc-block-product-gallery-pager'
),
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-thumbnails/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-thumbnails/edit.tsx
index b925d005f05..dfc5af77ebe 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-thumbnails/edit.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/inner-blocks/product-gallery-thumbnails/edit.tsx
@@ -5,7 +5,7 @@ import { InspectorControls, useBlockProps } from '@wordpress/block-editor';
import { Disabled, PanelBody } from '@wordpress/components';
import type { BlockEditProps } from '@wordpress/blocks';
import { WC_BLOCKS_IMAGE_URL } from '@woocommerce/block-settings';
-import classNames from 'classnames';
+import clsx from 'clsx';
/**
* Internal dependencies
@@ -25,7 +25,7 @@ interface EditProps
export const Edit = ( { attributes, setAttributes, context }: EditProps ) => {
const blockProps = useBlockProps( {
- className: classNames(
+ className: clsx(
'wc-block-product-gallery-thumbnails',
`wc-block-product-gallery-thumbnails--number-of-thumbnails-${ context.thumbnailsNumberOfThumbnails }`,
`wc-block-product-gallery-thumbnails--position-${ context.thumbnailsPosition }`
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/save.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/save.tsx
index 31d5960ec92..12bf2b7ab60 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/save.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-gallery/save.tsx
@@ -2,7 +2,7 @@
* External dependencies
*/
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
-import classnames from 'classnames';
+import clsx from 'clsx';
/**
* Internal dependencies
@@ -16,7 +16,7 @@ export const Save = ( {
attributes: ProductGalleryAttributes;
} ): JSX.Element => {
const blockProps = useBlockProps.save( {
- className: classnames(
+ className: clsx(
'wc-block-product-gallery',
getClassNameByNextPreviousButtonsPosition(
attributes.nextPreviousButtonsPosition
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-search/block.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-search/block.tsx
index 18dc3c01c36..bdc40c3fa6a 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-search/block.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-search/block.tsx
@@ -2,7 +2,7 @@
* External dependencies
*/
import { __ } from '@wordpress/i18n';
-import classnames from 'classnames';
+import clsx from 'clsx';
import { HOME_URL } from '@woocommerce/settings';
/**
@@ -37,7 +37,7 @@ interface ProductSearchBlockProps {
const ProductSearchBlock = ( {
attributes: { label, placeholder, formId, className, hasLabel, align },
}: ProductSearchBlockProps ) => {
- const classes = classnames(
+ const classes = clsx(
'wc-block-product-search',
align ? 'align' + align : '',
className
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-search/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-search/edit.tsx
index 87e6c2fd8f5..62da19adb1e 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-search/edit.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-search/edit.tsx
@@ -2,7 +2,7 @@
* External dependencies
*/
import { __ } from '@wordpress/i18n';
-import classnames from 'classnames';
+import clsx from 'clsx';
import { InspectorControls, PlainText } from '@wordpress/block-editor';
import { PanelBody, ToggleControl, TextControl } from '@wordpress/components';
import { withInstanceId } from '@wordpress/compose';
@@ -52,7 +52,7 @@ const Edit = ( {
instanceId,
setAttributes,
}: EditProps ) => {
- const classes = classnames(
+ const classes = clsx(
'wc-block-product-search',
align ? 'align' + align : '',
className
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/product-template/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/product-template/edit.tsx
index b92ee0cb185..807779be351 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/product-template/edit.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/product-template/edit.tsx
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-import classnames from 'classnames';
+import clsx from 'clsx';
import { memo, useMemo, useState } from '@wordpress/element';
import { useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
@@ -303,7 +303,7 @@ const ProductTemplateEdit = (
}
const blockProps = useBlockProps( {
- className: classnames(
+ className: clsx(
__unstableLayoutClassNames,
'wc-block-product-template',
customClassName
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/products/base-utils.js b/plugins/woocommerce-blocks/assets/js/blocks/products/base-utils.js
index 236ae3e838f..137e70e4f26 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/products/base-utils.js
+++ b/plugins/woocommerce-blocks/assets/js/blocks/products/base-utils.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import classnames from 'classnames';
+import clsx from 'clsx';
/**
* Internal dependencies
@@ -46,7 +46,7 @@ export const getProductLayoutConfig = ( innerBlocks ) => {
* "woocommerce/product-button" block.
*/
...( block.name === addToCartButtonMetadata.name && {
- className: classnames( block.attributes.className, {
+ className: clsx( block.attributes.className, {
[ `has-custom-width wp-block-button__width-${ block.attributes?.width }` ]:
block.attributes?.width,
} ),
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/products/utils.js b/plugins/woocommerce-blocks/assets/js/blocks/products/utils.js
index f4b6e99c993..30f0ad8524e 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/products/utils.js
+++ b/plugins/woocommerce-blocks/assets/js/blocks/products/utils.js
@@ -1,12 +1,12 @@
/**
* External dependencies
*/
-import classNames from 'classnames';
+import clsx from 'clsx';
export const getBlockClassName = ( blockClassName, attributes ) => {
const { className, contentVisibility } = attributes;
- return classNames( blockClassName, className, {
+ return clsx( blockClassName, className, {
'has-image': contentVisibility && contentVisibility.image,
'has-title': contentVisibility && contentVisibility.title,
'has-rating': contentVisibility && contentVisibility.rating,
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/block-wrapper.tsx b/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/block-wrapper.tsx
index 75a47987890..1878dc39829 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/block-wrapper.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/block-wrapper.tsx
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import classnames from 'classnames';
+import clsx from 'clsx';
import { useStyleProps } from '@woocommerce/base-hooks';
import { isString } from '@woocommerce/types';
@@ -17,7 +17,7 @@ const BlockWrapper = ( props: Record< string, unknown > ) => {
return (
{ displayNoProductRatingsNotice && noRatingsNotice }
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/edit.tsx
index 0c1acda4b2f..ab8867371e7 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/edit.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/edit.tsx
@@ -2,7 +2,7 @@
* External dependencies
*/
import { __, _x } from '@wordpress/i18n';
-import classnames from 'classnames';
+import clsx from 'clsx';
import { useBlockProps, InspectorControls } from '@wordpress/block-editor';
import type { BlockEditProps } from '@wordpress/blocks';
import {
@@ -48,7 +48,7 @@ const Edit = ( {
} = attributes;
const blockProps = useBlockProps( {
- className: classnames( 'wc-block-rating-filter', className ),
+ className: clsx( 'wc-block-rating-filter', className ),
} );
const getInspectorControls = () => {
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/index.tsx b/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/index.tsx
index 35319dea5ef..236d4fbe245 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/index.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/rating-filter/index.tsx
@@ -3,7 +3,7 @@
*/
import { registerBlockType } from '@wordpress/blocks';
import { Icon, starEmpty } from '@wordpress/icons';
-import classNames from 'classnames';
+import clsx from 'clsx';
import { useBlockProps } from '@wordpress/block-editor';
/**
@@ -34,7 +34,7 @@ registerBlockType( metadata, {
return (
);
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/reviews/utils.js b/plugins/woocommerce-blocks/assets/js/blocks/reviews/utils.js
index 83c900d4463..f20df688d12 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/reviews/utils.js
+++ b/plugins/woocommerce-blocks/assets/js/blocks/reviews/utils.js
@@ -2,7 +2,7 @@
* External dependencies
*/
import apiFetch from '@wordpress/api-fetch';
-import classNames from 'classnames';
+import clsx from 'clsx';
import { getSetting } from '@woocommerce/settings';
export const getSortArgs = ( sortValue ) => {
@@ -71,7 +71,7 @@ export const getBlockClassName = ( attributes ) => {
blockClassName = 'wc-block-reviews-by-category';
}
- return classNames( blockClassName, className, {
+ return clsx( blockClassName, className, {
'has-image': showReviewImage,
'has-name': showReviewerName,
'has-date': showReviewDate,
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/block-wrapper.tsx b/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/block-wrapper.tsx
index 75a47987890..1878dc39829 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/block-wrapper.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/block-wrapper.tsx
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import classnames from 'classnames';
+import clsx from 'clsx';
import { useStyleProps } from '@woocommerce/base-hooks';
import { isString } from '@woocommerce/types';
@@ -17,7 +17,7 @@ const BlockWrapper = ( props: Record< string, unknown > ) => {
return (
{ ! isEditor && blockAttributes.heading && filterHeading }
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/edit.tsx
index bee06839472..50c4f8e3662 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/edit.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/edit.tsx
@@ -2,7 +2,7 @@
* External dependencies
*/
import { __, _x } from '@wordpress/i18n';
-import classnames from 'classnames';
+import clsx from 'clsx';
import { useBlockProps, InspectorControls } from '@wordpress/block-editor';
import BlockTitle from '@woocommerce/editor-components/block-title';
import type { BlockEditProps } from '@wordpress/blocks';
@@ -41,7 +41,7 @@ const Edit = ( {
} = attributes;
const blockProps = useBlockProps( {
- className: classnames( 'wc-block-stock-filter', className ),
+ className: clsx( 'wc-block-stock-filter', className ),
} );
const getInspectorControls = () => {
diff --git a/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/index.tsx b/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/index.tsx
index 3c610e511e5..96dc7268713 100644
--- a/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/index.tsx
+++ b/plugins/woocommerce-blocks/assets/js/blocks/stock-filter/index.tsx
@@ -3,7 +3,7 @@
*/
import { registerBlockType } from '@wordpress/blocks';
import { Icon, box } from '@wordpress/icons';
-import classNames from 'classnames';
+import clsx from 'clsx';
import { useBlockProps } from '@wordpress/block-editor';
/**
@@ -36,7 +36,7 @@ registerBlockType( metadata, {
return (
);
diff --git a/plugins/woocommerce-blocks/assets/js/editor-components/error-placeholder/index.tsx b/plugins/woocommerce-blocks/assets/js/editor-components/error-placeholder/index.tsx
index e266a71d9ab..dfde9dd296a 100644
--- a/plugins/woocommerce-blocks/assets/js/editor-components/error-placeholder/index.tsx
+++ b/plugins/woocommerce-blocks/assets/js/editor-components/error-placeholder/index.tsx
@@ -3,7 +3,7 @@
*/
import { __ } from '@wordpress/i18n';
import { Icon, warning } from '@wordpress/icons';
-import classNames from 'classnames';
+import clsx from 'clsx';
import { Button, Placeholder, Spinner } from '@wordpress/components';
/**
@@ -52,7 +52,7 @@ const ErrorPlaceholder = ( {
}
label={ __( 'Sorry, an error occurred', 'woocommerce' ) }
- className={ classNames( 'wc-block-api-error', className ) }
+ className={ clsx( 'wc-block-api-error', className ) }
>
{ onRetry && (
diff --git a/plugins/woocommerce-blocks/assets/js/editor-components/expandable-search-list-item/expandable-search-list-item.tsx b/plugins/woocommerce-blocks/assets/js/editor-components/expandable-search-list-item/expandable-search-list-item.tsx
index 8a44c671f45..2ab5498159a 100644
--- a/plugins/woocommerce-blocks/assets/js/editor-components/expandable-search-list-item/expandable-search-list-item.tsx
+++ b/plugins/woocommerce-blocks/assets/js/editor-components/expandable-search-list-item/expandable-search-list-item.tsx
@@ -4,7 +4,7 @@
import { Spinner } from '@wordpress/components';
import { SearchListItem } from '@woocommerce/editor-components/search-list-control';
import { RenderItemArgs } from '@woocommerce/editor-components/search-list-control/types';
-import classNames from 'classnames';
+import clsx from 'clsx';
interface ExpandableSearchListItemProps extends RenderItemArgs {
isLoading: boolean;
@@ -33,7 +33,7 @@ const ExpandableSearchListItem = ( {
{ isSelected && isLoading && (
0,
- 'is-skip-level': depth === 0 && item.parent !== 0,
- }
- ) }
+ className={ clsx( 'woocommerce-product-tags__item', 'has-count', {
+ 'is-searching': search.length > 0,
+ 'is-skip-level': depth === 0 && item.parent !== 0,
+ } ) }
item={ item }
search={ search }
depth={ depth }
diff --git a/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/item.tsx b/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/item.tsx
index bcd0654eb8c..73913fa80a9 100644
--- a/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/item.tsx
+++ b/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/item.tsx
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import classNames from 'classnames';
+import clsx from 'clsx';
import { CheckboxControl } from '@wordpress/components';
import { useCallback } from '@wordpress/element';
import { arrayDifferenceBy, arrayUnionBy } from '@woocommerce/utils';
@@ -63,7 +63,7 @@ export const SearchListItem = < T extends object = object >( {
const hasBreadcrumbs = !! item.breadcrumbs?.length;
const hasChildren = !! item.children?.length;
const isExpanded = expandedPanelId === item.id;
- const classes = classNames(
+ const classes = clsx(
[ 'woocommerce-search-list__item', `depth-${ depth }`, className ],
{
'has-breadcrumbs': hasBreadcrumbs,
diff --git a/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/search-list-control.tsx b/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/search-list-control.tsx
index 9f21d7b7425..ee26e735da9 100644
--- a/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/search-list-control.tsx
+++ b/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control/search-list-control.tsx
@@ -17,7 +17,7 @@ import {
Fragment,
} from '@wordpress/element';
import { Icon, info } from '@wordpress/icons';
-import classnames from 'classnames';
+import clsx from 'clsx';
import { useInstanceId } from '@wordpress/compose';
/**
@@ -287,7 +287,7 @@ export const SearchListControl = < T extends object = object >(
return (
;
}
diff --git a/plugins/woocommerce-blocks/assets/js/icons/library/woo.tsx b/plugins/woocommerce-blocks/assets/js/icons/library/woo.tsx
index c4dca2a6c4f..a1402ab6e4e 100644
--- a/plugins/woocommerce-blocks/assets/js/icons/library/woo.tsx
+++ b/plugins/woocommerce-blocks/assets/js/icons/library/woo.tsx
@@ -2,13 +2,13 @@
* External dependencies
*/
import { SVG } from '@wordpress/primitives';
-import classnames from 'classnames';
+import clsx from 'clsx';
const Component = ( { className, height, width, ...props } ) => {
return (