Commit 5f45b97e053 for woocommerce
commit 5f45b97e0535459202596228e3352c52e20b7e63
Author: Raluca Stan <ralucastn@gmail.com>
Date: Wed Aug 19 18:02:08 2026 +0200
Update react-number-format to 5.4.5 (#67806)
* Update react-number-format to 5.4.5
v5 splits the component into NumericFormat and PatternFormat, drops the
default export, and renames isNumericString to valueIsNumericString. It
also types the second argument renderText has always been called with,
so the prop no longer needs a hand-written signature.
FormattedMonetaryAmount is the only component that renders it; the price
slider imports a type v5 still exports unchanged.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Only fire onValueChange for user input
* Add changelog entry for the react-number-format update
* Add onValueChange edge-case tests and empty separator fallback
* Simplify the onValueChange source guard comment
* Keep the v4 onValueChange behaviour for value prop changes
* Add test for empty decimal separator fallback in FormattedMonetaryAmount
Co-authored-by: ralucaStan <1628454+ralucaStan@users.noreply.github.com>
* Add test for both separators empty in FormattedMonetaryAmount
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ralucaStan <1628454+ralucaStan@users.noreply.github.com>
diff --git a/plugins/woocommerce/changelog/update-react-number-format-5 b/plugins/woocommerce/changelog/update-react-number-format-5
new file mode 100644
index 00000000000..21220332741
--- /dev/null
+++ b/plugins/woocommerce/changelog/update-react-number-format-5
@@ -0,0 +1,4 @@
+Significance: minor
+Type: update
+
+Update react-number-format from 4.9.3 to 5.4.5.
diff --git a/plugins/woocommerce/client/blocks/package.json b/plugins/woocommerce/client/blocks/package.json
index 8234d21f2dc..fd31f378729 100644
--- a/plugins/woocommerce/client/blocks/package.json
+++ b/plugins/woocommerce/client/blocks/package.json
@@ -271,7 +271,7 @@
"postcode-validator": "3.9.2",
"preact": "^10.24.2",
"prop-types": "^15.8.1",
- "react-number-format": "4.9.3",
+ "react-number-format": "5.4.5",
"react-transition-group": "^4.4.5",
"request": "2.88.2",
"trim-html": "0.1.9",
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/index.tsx
index 18026b63148..f936e574eec 100644
--- a/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/index.tsx
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/index.tsx
@@ -1,10 +1,10 @@
/**
* External dependencies
*/
-import NumberFormat from 'react-number-format';
+import { NumericFormat } from 'react-number-format';
import type {
NumberFormatValues,
- NumberFormatProps,
+ NumericFormatProps,
} from 'react-number-format';
import clsx from 'clsx';
import type { ReactElement } from 'react';
@@ -18,26 +18,32 @@ import { decodeHtmlEntities } from '@woocommerce/utils';
import './style.scss';
export interface FormattedMonetaryAmountProps
- extends Omit< NumberFormatProps, 'onValueChange' | 'displayType' > {
+ extends Omit< NumericFormatProps, 'onValueChange' | 'displayType' > {
className?: string;
- displayType?: NumberFormatProps[ 'displayType' ] | undefined;
+ displayType?: NumericFormatProps[ 'displayType' ] | undefined;
allowNegative?: boolean;
isAllowed?: ( formattedValue: NumberFormatValues ) => boolean;
value: number | string; // Value of money amount.
currency?: Currency | undefined; // Currency configuration object. Defaults to site currency.
onValueChange?: ( unit: number ) => void; // Function to call when value changes.
style?: React.CSSProperties | undefined;
- renderText?: ( value: string ) => JSX.Element;
+ // Render prop receiving the formatted price string; forwarded to
+ // NumericFormat.
+ renderText?: NonNullable< NumericFormatProps[ 'renderText' ] >;
}
/**
- * Formats currency data into the expected format for NumberFormat.
+ * Maps the currency configuration onto the props NumericFormat expects.
*/
-const currencyToNumberFormat = ( currency: Currency ) => {
+const currencyToNumericFormatProps = ( currency: Currency ) => {
const { prefix, suffix, thousandSeparator, decimalSeparator } = currency;
// Decode HTML entities in separators
const decodedThousandSeparator = decodeHtmlEntities( thousandSeparator );
- const decodedDecimalSeparator = decodeHtmlEntities( decimalSeparator );
+ // NumericFormat throws when both separators are identical; an empty
+ // decimal separator would collide with the thousand separator cleared
+ // below, so fall back to '.'.
+ const decodedDecimalSeparator =
+ decodeHtmlEntities( decimalSeparator ) || '.';
const hasDuplicateSeparator =
decodedThousandSeparator === decodedDecimalSeparator;
@@ -55,14 +61,14 @@ const currencyToNumberFormat = ( currency: Currency ) => {
fixedDecimalScale: true,
prefix: decodeHtmlEntities( prefix ),
suffix: decodeHtmlEntities( suffix ),
- isNumericString: true,
+ valueIsNumericString: true,
};
};
/**
* FormattedMonetaryAmount component.
*
- * Takes a price and returns a formatted price using the NumberFormat component.
+ * Takes a price and returns a formatted price using the NumericFormat component.
*
* More detailed docs on the additional props can be found here:https://s-yadav.github.io/react-number-format/docs/intro
*/
@@ -100,16 +106,18 @@ const FormattedMonetaryAmount = ( {
className
);
const decimalScale = props.decimalScale ?? currency?.minorUnit;
- const numberFormatProps = {
+ const numericFormatProps = {
...props,
- ...currencyToNumberFormat( currency ),
+ ...currencyToNumericFormatProps( currency ),
decimalScale,
value: undefined,
currency: undefined,
onValueChange: undefined,
};
- // Wrapper for NumberFormat onValueChange which handles subunit conversion.
+ // Wrapper for NumericFormat onValueChange which handles subunit conversion.
+ // Like v4, this also fires for `value` prop changes; kept deliberately so
+ // the major bump does not change the callback's behaviour.
const onValueChangeWrapper = onValueChange
? ( values: NumberFormatValues ) => {
const minorUnitValue = +values.value * 10 ** currency.minorUnit;
@@ -118,11 +126,11 @@ const FormattedMonetaryAmount = ( {
: () => void 0;
return (
- <NumberFormat
+ <NumericFormat
className={ classes }
displayType={ displayType }
translate="no"
- { ...numberFormatProps }
+ { ...numericFormatProps }
value={ priceValue }
onValueChange={ onValueChangeWrapper }
/>
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/test/index.js
index f6024aaae3c..a46afdf55e0 100644
--- a/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/test/index.js
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/test/index.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import { render, screen } from '@testing-library/react';
+import { fireEvent, render, screen } from '@testing-library/react';
/**
* Internal dependencies
@@ -84,6 +84,43 @@ describe( 'FormattedMonetaryAmount', () => {
expect( console ).toHaveWarned();
expect( screen.getByText( '1563,45 €' ) ).toBeInTheDocument();
} );
+
+ test( 'should fall back to a period for an empty decimal separator', () => {
+ render(
+ <FormattedMonetaryAmount
+ value="156345"
+ currency={ {
+ code: 'EUR',
+ symbol: '€',
+ thousandSeparator: '.',
+ decimalSeparator: '',
+ minorUnit: 2,
+ prefix: '',
+ suffix: ' €',
+ } }
+ />
+ );
+ expect( console ).toHaveWarned();
+ expect( screen.getByText( '1563.45 €' ) ).toBeInTheDocument();
+ } );
+
+ test( 'should render when both separators are empty', () => {
+ render(
+ <FormattedMonetaryAmount
+ value="156345"
+ currency={ {
+ code: 'EUR',
+ symbol: '€',
+ thousandSeparator: '',
+ decimalSeparator: '',
+ minorUnit: 2,
+ prefix: '',
+ suffix: ' €',
+ } }
+ />
+ );
+ expect( screen.getByText( '1563.45 €' ) ).toBeInTheDocument();
+ } );
} );
describe( 'suffix/prefix', () => {
test( 'should add the currency suffix', () => {
@@ -123,6 +160,65 @@ describe( 'FormattedMonetaryAmount', () => {
} );
} );
+ describe( 'onValueChange', () => {
+ /** @type {import('@woocommerce/types').Currency} */
+ const eurCurrency = {
+ code: 'EUR',
+ symbol: '€',
+ thousandSeparator: '.',
+ decimalSeparator: ',',
+ minorUnit: 2,
+ prefix: '€ ',
+ suffix: '',
+ };
+
+ test( 'fires for user input, converted to subunits', () => {
+ const onValueChange = jest.fn();
+ render(
+ <FormattedMonetaryAmount
+ value="156345"
+ currency={ eurCurrency }
+ displayType="input"
+ onValueChange={ onValueChange }
+ />
+ );
+
+ // Not on mount.
+ expect( onValueChange ).not.toHaveBeenCalled();
+
+ fireEvent.change( screen.getByRole( 'textbox' ), {
+ target: { value: '€ 12,00' },
+ } );
+ expect( onValueChange ).toHaveBeenCalledTimes( 1 );
+ expect( onValueChange ).toHaveBeenCalledWith( 1200 );
+ } );
+
+ test( 'also fires for value prop changes, matching v4', () => {
+ const onValueChange = jest.fn();
+ const { rerender } = render(
+ <FormattedMonetaryAmount
+ value="156345"
+ currency={ eurCurrency }
+ displayType="input"
+ onValueChange={ onValueChange }
+ />
+ );
+
+ // Kept deliberately so the major bump does not change the
+ // callback's behaviour; consumers that push values back must
+ // guard against the echo themselves.
+ rerender(
+ <FormattedMonetaryAmount
+ value="179900"
+ currency={ eurCurrency }
+ displayType="input"
+ onValueChange={ onValueChange }
+ />
+ );
+ expect( onValueChange ).toHaveBeenCalledWith( 179900 );
+ } );
+ } );
+
describe( 'supports different value types', () => {
test( 'should support numbers', () => {
render(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5f60949c6c0..93af282e77d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3514,8 +3514,8 @@ importers:
specifier: ^15.8.1
version: 15.8.1
react-number-format:
- specifier: 4.9.3
- version: 4.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 5.4.5
+ version: 5.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-transition-group:
specifier: ^4.4.5
version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -19497,11 +19497,11 @@ packages:
peerDependencies:
moment: '>=1.6.0'
- react-number-format@4.9.3:
- resolution: {integrity: sha512-am1A1xYAbENuKJ+zpM7V+B1oRTSeOHYltqVKExznIVFweBzhLmOBmyb1DfIKjHo90E0bo1p3nzVJ2NgS5xh+sQ==}
+ react-number-format@5.4.5:
+ resolution: {integrity: sha512-y8O2yHHj3w0aE9XO8d2BCcUOOdQTRSVq+WIuMlLVucAm5XNjJAy+BoOJiuQMldVYVOKTMyvVNfnbl2Oqp+YxGw==, tarball: https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.5.tgz}
peerDependencies:
- react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
- react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-outside-click-handler@1.3.0:
resolution: {integrity: sha512-Te/7zFU0oHpAnctl//pP3hEAeobfeHMyygHB8MnjP6sX5OR8KHT1G3jmLsV3U9RnIYo+Yn+peJYWu+D5tUS8qQ==}
@@ -25741,7 +25741,7 @@ snapshots:
'@octokit/core': 5.2.2
'@octokit/types': 13.10.0
- '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
+ '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0(encoding@0.1.13))':
dependencies:
'@octokit/core': 3.6.0(encoding@0.1.13)
'@octokit/types': 6.41.0
@@ -25775,7 +25775,7 @@ snapshots:
'@octokit/core': 5.2.2
'@octokit/types': 13.10.0
- '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
+ '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0(encoding@0.1.13))':
dependencies:
'@octokit/core': 3.6.0(encoding@0.1.13)
'@octokit/types': 6.41.0
@@ -25849,9 +25849,9 @@ snapshots:
'@octokit/rest@18.12.0(encoding@0.1.13)':
dependencies:
'@octokit/core': 3.6.0(encoding@0.1.13)
- '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
+ '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0(encoding@0.1.13))
'@octokit/plugin-request-log': 1.0.4(@octokit/core@3.6.0(encoding@0.1.13))
- '@octokit/plugin-rest-endpoint-methods': 5.16.2(@octokit/core@3.6.0)
+ '@octokit/plugin-rest-endpoint-methods': 5.16.2(@octokit/core@3.6.0(encoding@0.1.13))
transitivePeerDependencies:
- encoding
@@ -26424,23 +26424,6 @@ snapshots:
webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
webpack-hot-middleware: 2.26.1
- '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2(webpack@5.97.1(@swc/core@1.15.24)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(@swc/core@1.15.24))':
- dependencies:
- ansi-html: 0.0.9
- core-js-pure: 3.49.0
- error-stack-parser: 2.1.4
- html-entities: 2.6.0
- loader-utils: 2.0.4
- react-refresh: 0.14.2
- schema-utils: 4.3.3
- source-map: 0.7.6
- webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
- optionalDependencies:
- '@types/webpack': 4.41.40
- type-fest: 4.41.0
- webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
- webpack-hot-middleware: 2.26.1
-
'@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.97.1)':
dependencies:
ansi-html: 0.0.9
@@ -28812,7 +28795,7 @@ snapshots:
dependencies:
'@babel/preset-flow': 7.27.1(@babel/core@7.25.7)
'@babel/preset-react': 7.25.7(@babel/core@7.25.7)
- '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2(webpack@5.97.1(@swc/core@1.15.24)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(@swc/core@1.15.24))
+ '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.97.1)
'@storybook/core-webpack': 7.6.19(encoding@0.1.13)
'@storybook/docs-tools': 7.6.19(encoding@0.1.13)
'@storybook/node-logger': 7.6.19
@@ -33420,7 +33403,7 @@ snapshots:
'@wordpress/dependency-extraction-webpack-plugin@6.51.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.9
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
'@wordpress/deprecated@3.58.0':
dependencies:
@@ -33770,7 +33753,7 @@ snapshots:
'@wordpress/interface': 9.33.1(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/keyboard-shortcuts': 5.48.1(react@18.3.1)
'@wordpress/keycodes': 4.48.1
- '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/notices': 5.33.1(@types/react@18.3.28)(react@18.3.1)
'@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/plugins': 7.48.1(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
@@ -34126,7 +34109,7 @@ snapshots:
'@wordpress/html-entities': 4.48.1
'@wordpress/i18n': 6.23.0
'@wordpress/icons': 11.8.0(@types/react@18.3.28)(react@18.3.1)
- '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/notices': 5.33.1(@types/react@18.3.28)(react@18.3.1)
'@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/primitives': 4.50.0(@types/react@18.3.28)(react@18.3.1)
@@ -34791,6 +34774,35 @@ snapshots:
- stylelint
- supports-color
+ '@wordpress/media-utils@5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
+ dependencies:
+ '@wordpress/api-fetch': 7.48.1
+ '@wordpress/base-styles': 6.20.0
+ '@wordpress/blob': 4.48.1
+ '@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.48.1(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.50.0(@types/react@18.3.28)(react@18.3.1)
+ '@wordpress/dataviews': 14.2.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/element': 6.45.0
+ '@wordpress/i18n': 6.23.0
+ '@wordpress/icons': 12.2.0(@types/react@18.3.28)(react@18.3.1)
+ '@wordpress/media-fields': 0.9.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/notices': 5.48.1(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/private-apis': 1.48.1
+ '@wordpress/ui': 0.11.0(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/views': 1.11.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ clsx: 2.1.1
+ react: 18.3.1
+ transitivePeerDependencies:
+ - '@date-fns/tz'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - date-fns
+ - react-dom
+ - stylelint
+ - supports-color
+
'@wordpress/notices@4.26.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
@@ -35722,7 +35734,7 @@ snapshots:
webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
webpack-bundle-analyzer: 4.9.1
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.2)(webpack@5.97.1)
- webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.2(webpack@5.97.1)
optionalDependencies:
'@wordpress/env': 11.9.0(@types/node@24.12.2)
transitivePeerDependencies:
@@ -38874,7 +38886,7 @@ snapshots:
normalize-path: 3.0.0
schema-utils: 4.3.3
serialize-javascript: 6.0.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
copy-webpack-plugin@13.0.1(webpack@5.97.1(@swc/core@1.15.24)):
dependencies:
@@ -40830,7 +40842,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
optional: true
file-sync-cmp@0.1.1: {}
@@ -45980,7 +45992,7 @@ snapshots:
klona: 2.0.6
postcss: 8.4.49
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
postcss-media-query-parser@0.2.3: {}
@@ -46904,9 +46916,8 @@ snapshots:
dependencies:
moment: 2.30.1
- react-number-format@4.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ react-number-format@5.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- prop-types: 15.8.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -47821,7 +47832,7 @@ snapshots:
optionalDependencies:
sass: 1.69.5
sass-embedded: 1.100.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
sass@1.69.5:
dependencies:
@@ -48258,7 +48269,7 @@ snapshots:
abab: 2.0.6
iconv-lite: 0.6.3
source-map-js: 1.2.1
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
source-map-resolve@0.5.3:
dependencies:
@@ -49818,7 +49829,7 @@ snapshots:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
optionalDependencies:
file-loader: 6.2.0(webpack@5.97.1)
@@ -50287,8 +50298,48 @@ snapshots:
webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.15.24))
ws: 8.20.0
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-dev-server@4.15.2)(webpack@5.97.1)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.2)(webpack@5.97.1)
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - supports-color
+ - utf-8-validate
+
+ webpack-dev-server@4.15.2(webpack@5.97.1):
+ dependencies:
+ '@types/bonjour': 3.5.13
+ '@types/connect-history-api-fallback': 1.5.4
+ '@types/express': 4.17.25
+ '@types/serve-index': 1.9.4
+ '@types/serve-static': 1.15.10
+ '@types/sockjs': 0.3.36
+ '@types/ws': 8.18.1
+ ansi-html-community: 0.0.8
+ bonjour-service: 1.3.0
+ chokidar: 3.6.0
+ colorette: 2.0.20
+ compression: 1.8.1
+ connect-history-api-fallback: 2.0.0
+ default-gateway: 6.0.3
+ express: 4.22.1
+ graceful-fs: 4.2.11
+ html-entities: 2.6.0
+ http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3)
+ ipaddr.js: 2.3.0
+ launch-editor: 2.13.2
+ open: 8.4.2
+ p-retry: 4.6.2
+ rimraf: 3.0.2
+ schema-utils: 4.3.3
+ selfsigned: 2.4.1
+ serve-index: 1.9.2
+ sockjs: 0.3.24
+ spdy: 4.0.2
+ webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.15.24))
+ ws: 8.20.0
+ optionalDependencies:
+ webpack: 5.97.1(@swc/core@1.15.24)(uglify-js@3.19.3)(webpack-cli@5.1.4)
transitivePeerDependencies:
- bufferutil
- debug