diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/attributes.js b/assets/js/atomic/blocks/product-elements/add-to-cart/attributes.ts similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/attributes.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/attributes.ts diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/block.js b/assets/js/atomic/blocks/product-elements/add-to-cart/block.tsx similarity index 85% rename from assets/js/atomic/blocks/product-elements/add-to-cart/block.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/block.tsx index 7baba132098..50190e77eb9 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/block.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/block.tsx @@ -23,36 +23,16 @@ import { GroupedProductForm, } from './product-types'; -/** - * Product Add to Form Block Component. - * - * @param {Object} props Incoming props. - * @param {string} [props.className] CSS Class name for the component. - * @param {boolean} [props.showFormElements] Should form elements be shown? - * @return {*} The component. - */ -const Block = ( { className, showFormElements } ) => { - const { product } = useProductDataContext(); - const componentClass = classnames( - className, - 'wc-block-components-product-add-to-cart', - { - 'wc-block-components-product-add-to-cart--placeholder': - isEmpty( product ), - } - ); - - return ( - -
- -
-
- ); -}; +interface Props { + /** + * CSS Class name for the component. + */ + className?: string; + /** + * Whether or not to show form elements. + */ + showFormElements?: boolean; +} /** * Renders the add to cart form using useAddToCartFormContext. @@ -79,6 +59,32 @@ const AddToCartForm = () => { return ; }; +/** + * Product Add to Form Block Component. + */ +const Block = ( { className, showFormElements }: Props ) => { + const { product } = useProductDataContext(); + const componentClass = classnames( + className, + 'wc-block-components-product-add-to-cart', + { + 'wc-block-components-product-add-to-cart--placeholder': + isEmpty( product ), + } + ); + + return ( + +
+ +
+
+ ); +}; + Block.propTypes = { className: PropTypes.string, }; diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/constants.js b/assets/js/atomic/blocks/product-elements/add-to-cart/constants.tsx similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/constants.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/constants.tsx diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/frontend.js b/assets/js/atomic/blocks/product-elements/add-to-cart/frontend.ts similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/frontend.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/frontend.ts diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/index.ts similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/index.ts diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/external.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/external.tsx similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/external.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/external.tsx diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/group-list/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/group-list/index.tsx similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/group-list/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/group-list/index.tsx diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/index.tsx similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/grouped/index.tsx diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/index.ts similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/index.ts diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/simple.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/simple.tsx similarity index 95% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/simple.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/simple.tsx index ce3670bcd36..8dc707ef27d 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/simple.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/simple.tsx @@ -13,6 +13,7 @@ import { AddToCartButton, QuantityInput, ProductUnavailable } from '../shared'; * Simple Product Add To Cart Form */ const Simple = () => { + // @todo Add types for `useAddToCartFormContext` const { product, quantity, diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/index.tsx similarity index 96% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/index.tsx index 4cc5e9e16fd..8aeb00f67ac 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/index.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/index.tsx @@ -18,6 +18,7 @@ import VariationAttributes from './variation-attributes'; * Variable Product Add To Cart Form */ const Variable = () => { + // @todo Add types for `useAddToCartFormContext` const { product, quantity, diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/types.ts b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/types.ts new file mode 100644 index 00000000000..0704b3ca06d --- /dev/null +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/types.ts @@ -0,0 +1,17 @@ +/** + * External dependencies + */ +import { Dictionary } from '@woocommerce/types'; + +export type AttributesMap = Record< + string, + { id: number; attributes: Dictionary } +>; + +export interface VariationParam { + id: number; + variation: { + attribute: string; + value: string; + }[]; +} diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-picker.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-picker.tsx similarity index 83% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-picker.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-picker.tsx index 6482dde7e43..0a0a48a629e 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-picker.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-picker.tsx @@ -3,6 +3,8 @@ */ import { useState, useEffect, useMemo } from '@wordpress/element'; import { useShallowEqual } from '@woocommerce/base-hooks'; +import type { SelectControl } from '@wordpress/components'; +import { Dictionary, ProductResponseAttributeItem } from '@woocommerce/types'; /** * Internal dependencies @@ -13,21 +15,27 @@ import { getActiveSelectControlOptions, getDefaultAttributes, } from './utils'; +import { AttributesMap, VariationParam } from '../types'; + +interface Props { + attributes: Record< string, ProductResponseAttributeItem >; + setRequestParams: ( param: VariationParam ) => void; + variationAttributes: AttributesMap; +} /** * AttributePicker component. - * - * @param {*} props Component props. */ const AttributePicker = ( { attributes, variationAttributes, setRequestParams, -} ) => { +}: Props ) => { const currentAttributes = useShallowEqual( attributes ); const currentVariationAttributes = useShallowEqual( variationAttributes ); const [ variationId, setVariationId ] = useState( 0 ); - const [ selectedAttributes, setSelectedAttributes ] = useState( {} ); + const [ selectedAttributes, setSelectedAttributes ] = + useState< Dictionary >( {} ); const [ hasSetDefaults, setHasSetDefaults ] = useState( false ); // Get options for each attribute picker. @@ -99,7 +107,11 @@ const AttributePicker = ( { { setSelectedAttributes( { diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.tsx similarity index 90% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.tsx index 5bbf0fb89e7..52d419bae36 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.tsx @@ -4,12 +4,18 @@ import { __ } from '@wordpress/i18n'; import { decodeEntities } from '@wordpress/html-entities'; import { SelectControl } from 'wordpress-components'; +import type { SelectControl as SelectControlType } from '@wordpress/components'; import { useEffect } from 'react'; import classnames from 'classnames'; import { ValidationInputError } from '@woocommerce/blocks-checkout'; import { VALIDATION_STORE_KEY } from '@woocommerce/block-data'; import { useDispatch, useSelect } from '@wordpress/data'; +interface Props extends SelectControlType.Props< string > { + attributeName: string; + errorMessage?: string; +} + // Default option for select boxes. const selectAnOption = { value: '', @@ -18,19 +24,17 @@ const selectAnOption = { /** * VariationAttributeSelect component. - * - * @param {*} props Component props. */ const AttributeSelectControl = ( { attributeName, options = [], value = '', - onChange = () => {}, + onChange = () => void 0, errorMessage = __( 'Please select a value.', 'woo-gutenberg-products-block' ), -} ) => { +}: Props ) => { const errorId = attributeName; const { setValidationErrors, clearValidationError } = diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/index.tsx similarity index 66% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/index.tsx index 18e0b5eb4df..a83497dacc2 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/index.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/index.tsx @@ -1,3 +1,8 @@ +/** + * External dependencies + */ +import { ProductResponseItem } from '@woocommerce/types'; + /** * Internal dependencies */ @@ -5,19 +10,20 @@ import './style.scss'; import AttributePicker from './attribute-picker'; import { getAttributes, getVariationAttributes } from './utils'; +interface Props { + dispatchers: { setRequestParams: () => void }; + product: ProductResponseItem; +} + /** * VariationAttributes component. - * - * @param {Object} props Incoming props - * @param {Object} props.product Product - * @param {Object} props.dispatchers An object where values are dispatching functions. */ -const VariationAttributes = ( { product, dispatchers } ) => { +const VariationAttributes = ( { dispatchers, product }: Props ) => { const attributes = getAttributes( product.attributes ); const variationAttributes = getVariationAttributes( product.variations ); if ( Object.keys( attributes ).length === 0 || - variationAttributes.length === 0 + Object.keys( variationAttributes ).length === 0 ) { return null; } diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/test/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/test/index.ts similarity index 95% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/test/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/test/index.ts index cfc4490dbc8..d859338da97 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/test/index.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/test/index.ts @@ -1,3 +1,8 @@ +/** + * External dependencies + */ +import { ProductResponseAttributeItem } from '@woocommerce/types'; + /** * Internal dependencies */ @@ -10,7 +15,7 @@ import { getDefaultAttributes, } from '../utils'; -const rawAttributeData = [ +const rawAttributeData: ProductResponseAttributeItem[] = [ { id: 1, name: 'Color', @@ -40,7 +45,7 @@ const rawAttributeData = [ { id: 0, name: 'Logo', - taxonomy: null, + taxonomy: 'pa_logo', has_variations: true, terms: [ { @@ -60,7 +65,7 @@ const rawAttributeData = [ { id: 0, name: 'Non-variable attribute', - taxonomy: null, + taxonomy: 'pa_non-variable-attribute', has_variations: false, terms: [ { @@ -227,7 +232,7 @@ describe( 'Testing utils', () => { Logo: { id: 0, name: 'Logo', - taxonomy: null, + taxonomy: 'pa_logo', has_variations: true, terms: [ { @@ -471,8 +476,11 @@ describe( 'Testing utils', () => { } ); it( 'should return an empty object if given unexpected values', () => { + // @ts-expect-error Expected TS Error as we are checking how the function does with *unexpected values*. expect( getDefaultAttributes( [] ) ).toStrictEqual( {} ); + // @ts-expect-error Ditto above. expect( getDefaultAttributes( null ) ).toStrictEqual( {} ); + // @ts-expect-error Ditto above. expect( getDefaultAttributes( undefined ) ).toStrictEqual( {} ); } ); } ); diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/utils.js b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/utils.ts similarity index 62% rename from assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/utils.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/utils.ts index 6914d664612..15b452ff594 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/utils.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/utils.ts @@ -3,14 +3,25 @@ */ import { keyBy } from 'lodash'; import { decodeEntities } from '@wordpress/html-entities'; -import { isObject } from '@woocommerce/types'; +import { + Dictionary, + isObject, + ProductResponseAttributeItem, + ProductResponseTermItem, + ProductResponseVariationsItem, +} from '@woocommerce/types'; + +/** + * Internal dependencies + */ +import { AttributesMap } from '../types'; /** * Key an array of attributes by name, - * - * @param {Object} attributes Attributes array. */ -export const getAttributes = ( attributes ) => { +export const getAttributes = ( + attributes?: ProductResponseAttributeItem[] | null +) => { return attributes ? keyBy( Object.values( attributes ).filter( @@ -26,15 +37,18 @@ export const getAttributes = ( attributes ) => { * * Note, each item is keyed by the variation ID with an id: prefix. This is to prevent the object * being reordered when iterated. - * - * @param {Object} variations List of Variation objects and attributes keyed by variation ID. */ -export const getVariationAttributes = ( variations ) => { +export const getVariationAttributes = ( + /** + * List of Variation objects and attributes keyed by variation ID. + */ + variations?: ProductResponseVariationsItem[] | null +) => { if ( ! variations ) { return {}; } - const attributesMap = {}; + const attributesMap: AttributesMap = {}; variations.forEach( ( { id, attributes } ) => { attributesMap[ `id:${ id }` ] = { @@ -42,7 +56,7 @@ export const getVariationAttributes = ( variations ) => { attributes: attributes.reduce( ( acc, { name, value } ) => { acc[ name ] = value; return acc; - }, {} ), + }, {} as Dictionary ), }; } ); @@ -55,20 +69,28 @@ export const getVariationAttributes = ( variations ) => { * Allows an attribute to be excluded by name. This is used to filter displayed options for * individual attribute selects. * - * @param {Object} attributes List of attribute names and terms. - * @param {Object} variationAttributes Attributes for each variation keyed by variation ID. - * @param {Object} selectedAttributes Attribute Name Value pairs of current selections by the user. - * @return {Array} List of matching variation IDs. + * @return List of matching variation IDs. */ export const getVariationsMatchingSelectedAttributes = ( - attributes, - variationAttributes, - selectedAttributes + /** + * List of attribute names and terms. + * + * As returned from {@link getAttributes()}. + */ + attributes: Record< string, ProductResponseAttributeItem >, + /** + * Attributes for each variation keyed by variation ID. + * + * As returned from {@link getVariationAttributes()}. + */ + variationAttributes: AttributesMap, + /** + * Attribute Name Value pairs of current selections by the user. + */ + selectedAttributes: Record< string, string | null > ) => { const variationIds = Object.values( variationAttributes ).map( - ( { id: variationId } ) => { - return variationId; - } + ( { id } ) => id ); // If nothing is selected yet, just return all variations. @@ -105,15 +127,25 @@ export const getVariationsMatchingSelectedAttributes = ( /** * Given a list of variations and a list of attribute values, returns the first matched variation ID. * - * @param {Object} attributes List of attribute names and terms. - * @param {Object} variationAttributes Attributes for each variation keyed by variation ID. - * @param {Object} selectedAttributes Attribute Name Value pairs of current selections by the user. - * @return {number} Variation ID. + * @return Variation ID. */ export const getVariationMatchingSelectedAttributes = ( - attributes, - variationAttributes, - selectedAttributes + /** + * List of attribute names and terms. + * + * As returned from {@link getAttributes()}. + */ + attributes: Record< string, ProductResponseAttributeItem >, + /** + * Attributes for each variation keyed by variation ID. + * + * As returned from {@link getVariationAttributes()}. + */ + variationAttributes: AttributesMap, + /** + * Attribute Name Value pairs of current selections by the user. + */ + selectedAttributes: Dictionary ) => { const matchingVariationIds = getVariationsMatchingSelectedAttributes( attributes, @@ -127,13 +159,18 @@ export const getVariationMatchingSelectedAttributes = ( * Given a list of terms, filter them and return valid options for the select boxes. * * @see getActiveSelectControlOptions - * @param {Object} attributeTerms List of attribute term objects. - * @param {?Array} validAttributeTerms Valid values if selections have been made already. - * @return {Array} Value/Label pairs of select box options. + * + * @return Value/Label pairs of select box options. */ const getValidSelectControlOptions = ( - attributeTerms, - validAttributeTerms = null + /** + * List of attribute term objects. + */ + attributeTerms: ProductResponseTermItem[], + /** + * Valid values if selections have been made already. + */ + validAttributeTerms: Array< string | null > | null = null ) => { return Object.values( attributeTerms ) .map( ( { name, slug } ) => { @@ -156,17 +193,30 @@ const getValidSelectControlOptions = ( * Given a list of terms, filter them and return active options for the select boxes. This factors in * which options should be hidden due to current selections. * - * @param {Object} attributes List of attribute names and terms. - * @param {Object} variationAttributes Attributes for each variation keyed by variation ID. - * @param {Object} selectedAttributes Attribute Name Value pairs of current selections by the user. - * @return {Object} Select box options. + * @return Select box options. */ export const getActiveSelectControlOptions = ( - attributes, - variationAttributes, - selectedAttributes + /** + * List of attribute names and terms. + * + * As returned from {@link getAttributes()}. + */ + attributes: Record< string, ProductResponseAttributeItem >, + /** + * Attributes for each variation keyed by variation ID. + * + * As returned from {@link getVariationAttributes()}. + */ + variationAttributes: AttributesMap, + /** + * Attribute Name Value pairs of current selections by the user. + */ + selectedAttributes: Dictionary ) => { - const options = {}; + const options: Record< + string, + Array< { label: string; value: string } | null > + > = {}; const attributeNames = Object.keys( attributes ); const hasSelectedAttributes = Object.values( selectedAttributes ).filter( Boolean ).length > 0; @@ -211,30 +261,35 @@ export const getActiveSelectControlOptions = ( /** * Return the default values of the given attributes in a format ready to be set in state. * - * @param {Object} attributes List of attribute names and terms. - * @return {Object} Default attributes. + * @return Default attributes. */ -export const getDefaultAttributes = ( attributes = {} ) => { +export const getDefaultAttributes = ( + /** + * List of attribute names and terms. + * + * As returned from {@link getAttributes()}. + */ + attributes: Record< string, ProductResponseAttributeItem > +) => { if ( ! isObject( attributes ) ) { return {}; } const attributeNames = Object.keys( attributes ); - const defaultsToSet = {}; if ( attributeNames.length === 0 ) { - return defaultsToSet; + return {}; } - attributeNames.forEach( ( attributeName ) => { - const currentAttribute = attributes[ attributeName ]; - const defaultValue = currentAttribute.terms.filter( - ( term ) => term.default - ); - if ( defaultValue.length > 0 ) { - defaultsToSet[ currentAttribute.name ] = defaultValue[ 0 ]?.slug; + const attributesEntries = Object.values( attributes ); + + return attributesEntries.reduce( ( acc, curr ) => { + const defaultValues = curr.terms.filter( ( term ) => term.default ); + + if ( defaultValues.length > 0 ) { + acc[ curr.name ] = defaultValues[ 0 ]?.slug; } - } ); - return defaultsToSet; + return acc; + }, {} as Dictionary ); }; diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/add-to-cart-button.js b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/add-to-cart-button.tsx similarity index 77% rename from assets/js/atomic/blocks/product-elements/add-to-cart/shared/add-to-cart-button.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/shared/add-to-cart-button.tsx index 27c4aa24aea..d36e7da5f2d 100644 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/add-to-cart-button.js +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/add-to-cart-button.tsx @@ -2,7 +2,7 @@ * External dependencies */ import { __, _n, sprintf } from '@wordpress/i18n'; -import Button from '@woocommerce/base-components/button'; +import Button, { ButtonProps } from '@woocommerce/base-components/button'; import { Icon, check } from '@wordpress/icons'; import { useState, useEffect } from '@wordpress/element'; import { useAddToCartFormContext } from '@woocommerce/base-context'; @@ -12,10 +12,84 @@ import { } from '@woocommerce/base-context/hooks'; import { useInnerBlockLayoutContext } from '@woocommerce/shared-context'; +type LinkProps = Pick< ButtonProps, 'className' | 'href' | 'onClick' | 'text' >; + +interface ButtonComponentProps + extends Pick< ButtonProps, 'className' | 'onClick' > { + /** + * Whether the button is disabled or not. + */ + isDisabled: boolean; + /** + * Whether processing is done. + */ + isDone: boolean; + /** + * Whether processing action is occurring. + */ + isProcessing: ButtonProps[ 'showSpinner' ]; + /** + * Quantity of said item currently in the cart. + */ + quantityInCart: number; +} + +/** + * Button component for non-purchasable products. + */ +const LinkComponent = ( { className, href, text, onClick }: LinkProps ) => { + return ( + + ); +}; + +/** + * Button for purchasable products. + */ +const ButtonComponent = ( { + className, + quantityInCart, + isProcessing, + isDisabled, + isDone, + onClick, +}: ButtonComponentProps ) => { + return ( + + ); +}; + /** * Add to Cart Form Button Component. */ const AddToCartButton = () => { + // @todo Add types for `useAddToCartFormContext` const { showFormElements, productIsPurchasable, @@ -104,69 +178,4 @@ const AddToCartButton = () => { ); }; -/** - * Button component for non-purchasable products. - * - * @param {Object} props Incoming props. - * @param {string} props.className Css classnames. - * @param {string} props.href Link for button. - * @param {string} props.text Text content for button. - * @param {function():any} props.onClick Callback to execute when button is clicked. - */ -const LinkComponent = ( { className, href, text, onClick } ) => { - return ( - - ); -}; - -/** - * Button for purchasable products. - * - * @param {Object} props Incoming props for component - * @param {string} props.className Incoming css class name. - * @param {number} props.quantityInCart Quantity of item in cart. - * @param {boolean} props.isProcessing Whether processing action is occurring. - * @param {boolean} props.isDisabled Whether the button is disabled or not. - * @param {boolean} props.isDone Whether processing is done. - * @param {function():any} props.onClick Callback to execute when button is clicked. - */ -const ButtonComponent = ( { - className, - quantityInCart, - isProcessing, - isDisabled, - isDone, - onClick, -} ) => { - return ( - - ); -}; - export default AddToCartButton; diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/index.js b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/index.ts similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/shared/index.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/shared/index.ts diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/product-unavailable.js b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/product-unavailable.tsx similarity index 100% rename from assets/js/atomic/blocks/product-elements/add-to-cart/shared/product-unavailable.js rename to assets/js/atomic/blocks/product-elements/add-to-cart/shared/product-unavailable.tsx diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/quantity-input.js b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/quantity-input.js deleted file mode 100644 index c846567ea54..00000000000 --- a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/quantity-input.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * External dependencies - */ -import { useDebouncedCallback } from 'use-debounce'; - -/** - * Quantity Input Component. - * - * @param {Object} props Incoming props for component - * @param {boolean} props.disabled Whether input is disabled or not. - * @param {number} props.min Minimum value for input. - * @param {number} props.max Maximum value for input. - * @param {number} props.step Step attribute for input. - * @param {number} props.value Value for input. - * @param {function():any} props.onChange Function to call on input change event. - */ -const QuantityInput = ( { disabled, min, max, step = 1, value, onChange } ) => { - const hasMaximum = typeof max !== 'undefined'; - - /** - * The goal of this function is to normalize what was inserted, - * but after the customer has stopped typing. - * - * It's important to wait before normalizing or we end up with - * a frustrating experience, for example, if the minimum is 2 and - * the customer is trying to type "10", premature normalizing would - * always kick in at "1" and turn that into 2. - * - * Copied from - */ - const normalizeQuantity = useDebouncedCallback( ( initialValue ) => { - // We copy the starting value. - let newValue = initialValue; - - // We check if we have a maximum value, and select the lowest between what was inserted and the maximum. - if ( hasMaximum ) { - newValue = Math.min( - newValue, - // the maximum possible value in step increments. - Math.floor( max / step ) * step - ); - } - - // Select the biggest between what's inserted, the the minimum value in steps. - newValue = Math.max( newValue, Math.ceil( min / step ) * step ); - - // We round off the value to our steps. - newValue = Math.floor( newValue / step ) * step; - - // Only commit if the value has changed - if ( newValue !== initialValue ) { - onChange( newValue ); - } - }, 300 ); - - return ( - { - onChange( e.target.value ); - normalizeQuantity( e.target.value ); - } } - /> - ); -}; - -export default QuantityInput; diff --git a/assets/js/atomic/blocks/product-elements/add-to-cart/shared/quantity-input.tsx b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/quantity-input.tsx new file mode 100644 index 00000000000..a9c1e257ec4 --- /dev/null +++ b/assets/js/atomic/blocks/product-elements/add-to-cart/shared/quantity-input.tsx @@ -0,0 +1,85 @@ +/** + * External dependencies + */ +import { useDebouncedCallback } from 'use-debounce'; + +type JSXInputProps = JSX.IntrinsicElements[ 'input' ]; + +interface QuantityInputProps extends Omit< JSXInputProps, 'onChange' > { + max: number; + min: number; + onChange: ( val: number | string ) => void; + step: number; +} + +/** + * Quantity Input Component. + */ +const QuantityInput = ( { + disabled, + min, + max, + step = 1, + value, + onChange, +}: QuantityInputProps ) => { + const hasMaximum = typeof max !== 'undefined'; + + /** + * The goal of this function is to normalize what was inserted, + * but after the customer has stopped typing. + * + * It's important to wait before normalizing or we end up with + * a frustrating experience, for example, if the minimum is 2 and + * the customer is trying to type "10", premature normalizing would + * always kick in at "1" and turn that into 2. + * + * Copied from + */ + const normalizeQuantity = useDebouncedCallback< ( val: number ) => void >( + ( initialValue ) => { + // We copy the starting value. + let newValue = initialValue; + + // We check if we have a maximum value, and select the lowest between what was inserted and the maximum. + if ( hasMaximum ) { + newValue = Math.min( + newValue, + // the maximum possible value in step increments. + Math.floor( max / step ) * step + ); + } + + // Select the biggest between what's inserted, the the minimum value in steps. + newValue = Math.max( newValue, Math.ceil( min / step ) * step ); + + // We round off the value to our steps. + newValue = Math.floor( newValue / step ) * step; + + // Only commit if the value has changed + if ( newValue !== initialValue ) { + onChange?.( newValue ); + } + }, + 300 + ); + + return ( + { + onChange?.( e.target.value ); + normalizeQuantity( Number( e.target.value ) ); + } } + /> + ); +}; + +export default QuantityInput; diff --git a/assets/js/atomic/blocks/product-elements/button/supports.ts b/assets/js/atomic/blocks/product-elements/button/supports.ts index df0be2fb742..00db65027b1 100644 --- a/assets/js/atomic/blocks/product-elements/button/supports.ts +++ b/assets/js/atomic/blocks/product-elements/button/supports.ts @@ -1,12 +1,9 @@ +/* eslint-disable @wordpress/no-unsafe-wp-apis */ /** * External dependencies */ import { isFeaturePluginBuild } from '@woocommerce/block-settings'; - -/** - * Internal dependencies - */ -import { hasSpacingStyleSupport } from '../../../../utils/global-style'; +import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; export const supports = { ...( isFeaturePluginBuild() && { @@ -20,7 +17,7 @@ export const supports = { radius: true, __experimentalSkipSerialization: true, }, - ...( hasSpacingStyleSupport() && { + ...( typeof __experimentalGetSpacingClassesAndStyles === 'function' && { spacing: { margin: true, padding: true, diff --git a/assets/js/atomic/blocks/product-elements/image/supports.ts b/assets/js/atomic/blocks/product-elements/image/supports.ts index 0a60da1c953..1180ce0da40 100644 --- a/assets/js/atomic/blocks/product-elements/image/supports.ts +++ b/assets/js/atomic/blocks/product-elements/image/supports.ts @@ -1,8 +1,9 @@ +/* eslint-disable @wordpress/no-unsafe-wp-apis */ /** * External dependencies */ import { isFeaturePluginBuild } from '@woocommerce/block-settings'; -import { hasSpacingStyleSupport } from '@woocommerce/utils'; +import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; /** * Internal dependencies @@ -19,7 +20,7 @@ export const supports = { fontSize: true, __experimentalSkipSerialization: true, }, - ...( hasSpacingStyleSupport() && { + ...( typeof __experimentalGetSpacingClassesAndStyles === 'function' && { spacing: { margin: true, __experimentalSkipSerialization: true, diff --git a/assets/js/atomic/blocks/product-elements/rating/style.scss b/assets/js/atomic/blocks/product-elements/rating/style.scss index a94e66f86a1..1181aafc0c8 100644 --- a/assets/js/atomic/blocks/product-elements/rating/style.scss +++ b/assets/js/atomic/blocks/product-elements/rating/style.scss @@ -4,7 +4,6 @@ margin-bottom: $gap-small; &__stars { - display: inline-block; overflow: hidden; position: relative; width: 5.3em; diff --git a/assets/js/atomic/blocks/product-elements/rating/support.ts b/assets/js/atomic/blocks/product-elements/rating/support.ts index 9bae7aa379f..f68350a0581 100644 --- a/assets/js/atomic/blocks/product-elements/rating/support.ts +++ b/assets/js/atomic/blocks/product-elements/rating/support.ts @@ -1,12 +1,9 @@ +/* eslint-disable @wordpress/no-unsafe-wp-apis */ /** * External dependencies */ import { isFeaturePluginBuild } from '@woocommerce/block-settings'; - -/** - * Internal dependencies - */ -import { hasSpacingStyleSupport } from '../../../../utils/global-style'; +import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; export const supports = { ...( isFeaturePluginBuild() && { @@ -20,7 +17,7 @@ export const supports = { fontSize: true, __experimentalSkipSerialization: true, }, - ...( hasSpacingStyleSupport() && { + ...( typeof __experimentalGetSpacingClassesAndStyles === 'function' && { spacing: { margin: true, __experimentalSkipSerialization: true, diff --git a/assets/js/atomic/blocks/product-elements/sale-badge/support.ts b/assets/js/atomic/blocks/product-elements/sale-badge/support.ts index 17dccf98b06..a8a45113b3a 100644 --- a/assets/js/atomic/blocks/product-elements/sale-badge/support.ts +++ b/assets/js/atomic/blocks/product-elements/sale-badge/support.ts @@ -1,12 +1,9 @@ +/* eslint-disable @wordpress/no-unsafe-wp-apis */ /** * External dependencies */ import { isFeaturePluginBuild } from '@woocommerce/block-settings'; - -/** - * Internal dependencies - */ -import { hasSpacingStyleSupport } from '../../../../utils/global-style'; +import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; export const supports = { html: false, @@ -27,7 +24,7 @@ export const supports = { width: true, __experimentalSkipSerialization: true, }, - ...( hasSpacingStyleSupport() && { + ...( typeof __experimentalGetSpacingClassesAndStyles === 'function' && { spacing: { padding: true, __experimentalSkipSerialization: true, diff --git a/assets/js/atomic/blocks/product-elements/title/index.ts b/assets/js/atomic/blocks/product-elements/title/index.ts index 6bb40a70f33..222cdf5ae17 100644 --- a/assets/js/atomic/blocks/product-elements/title/index.ts +++ b/assets/js/atomic/blocks/product-elements/title/index.ts @@ -1,9 +1,11 @@ +/* eslint-disable @wordpress/no-unsafe-wp-apis */ /** * External dependencies */ import { registerBlockType } from '@wordpress/blocks'; import type { BlockConfiguration } from '@wordpress/blocks'; import { isFeaturePluginBuild } from '@woocommerce/block-settings'; +import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; /** * Internal dependencies @@ -17,7 +19,6 @@ import { BLOCK_DESCRIPTION as description, } from './constants'; import { Save } from './save'; -import { hasSpacingStyleSupport } from '../../../../utils/global-style'; const blockConfig: BlockConfiguration = { ...sharedConfig, @@ -45,7 +46,8 @@ const blockConfig: BlockConfiguration = { gradients: true, __experimentalSkipSerialization: true, }, - ...( hasSpacingStyleSupport() && { + ...( typeof __experimentalGetSpacingClassesAndStyles === + 'function' && { spacing: { margin: true, __experimentalSkipSerialization: true, diff --git a/assets/js/base/README.MD b/assets/js/base/README.MD new file mode 100644 index 00000000000..64302efd50b --- /dev/null +++ b/assets/js/base/README.MD @@ -0,0 +1,11 @@ +# Base Components/Context/Hooks + +Base components are designed to be used on the frontend of a store. Due to this, we need to avoid using heavy WordPress externals as dependencies (wp-components, wp-block-editor, etc). To get around this, import from a local package instead. + +e.g. Instead of importing from `@wordpress/components`, use: + +```js +import { Component } from 'wordpress-components'; +``` + +Check the built `*.assets.php` files to ensure extra dependencies aren't being added to the build. diff --git a/assets/js/base/components/button/index.tsx b/assets/js/base/components/button/index.tsx index 223f44ae363..4caf1498e58 100644 --- a/assets/js/base/components/button/index.tsx +++ b/assets/js/base/components/button/index.tsx @@ -2,7 +2,7 @@ * External dependencies */ import { Button as WPButton } from 'wordpress-components'; -import type { ReactNode } from 'react'; +import type { Button as WPButtonType } from '@wordpress/components'; import classNames from 'classnames'; import Spinner from '@woocommerce/base-components/spinner'; @@ -11,39 +11,21 @@ import Spinner from '@woocommerce/base-components/spinner'; */ import './style.scss'; -export interface ButtonProps extends WPButton.ButtonProps { - /** - * Component wrapper classname - * - * @default 'wc-block-components-button' - */ - className?: string; +export interface ButtonProps + extends Omit< WPButtonType.ButtonProps, 'variant' > { /** * Show spinner * * @default false */ - showSpinner?: boolean; - /** - * Button content - */ - children?: ReactNode; - /** - * Button state - */ - disabled?: boolean; - /** - * Event handler triggered when the button is clicked - */ - onClick?: ( e: React.MouseEvent< HTMLButtonElement, MouseEvent > ) => void; - /** - * Button type - */ - type?: 'button' | 'input' | 'submit'; + showSpinner?: boolean | undefined; /** * Button variant */ variant?: 'text' | 'contained' | 'outlined'; +} + +export interface AnchorProps extends Omit< ButtonProps, 'href' > { /** * Button href */ diff --git a/assets/js/base/components/drawer/index.tsx b/assets/js/base/components/drawer/index.tsx index d0f5f034e39..5c27fbb5717 100644 --- a/assets/js/base/components/drawer/index.tsx +++ b/assets/js/base/components/drawer/index.tsx @@ -2,7 +2,7 @@ * External dependencies */ import { __ } from '@wordpress/i18n'; -import { Modal } from '@wordpress/components'; +import { Modal } from 'wordpress-components'; import { useDebounce } from 'use-debounce'; import classNames from 'classnames'; diff --git a/assets/js/base/components/tabs/index.js b/assets/js/base/components/tabs/index.tsx similarity index 67% rename from assets/js/base/components/tabs/index.js rename to assets/js/base/components/tabs/index.tsx index 61bfcf7eb73..e70e6e3e8a0 100644 --- a/assets/js/base/components/tabs/index.js +++ b/assets/js/base/components/tabs/index.tsx @@ -10,7 +10,50 @@ import { useTabState, Tab, TabList, TabPanel } from 'reakit/Tab'; */ import './style.scss'; -const Tabs = ( { +export interface TabsProps { + /** + * Component wrapper classname + */ + className?: string; + /** + * Event handler triggered when a tab is selected + */ + onSelect?: ( tabName: string ) => void; + /** + * Array of tab objects + */ + tabs: Array< { + name: string; + title: string; + content: JSX.Element; + ariaLabel?: string; + } >; + /** + * Classname to be applied to the active tab + */ + activeClass?: string; + /** + * Name of the tab to be selected by default + */ + initialTabName?: string | undefined; + /** + * Aria label for the tablist + */ + ariaLabel?: string; + /** + * Instance ID for the component + */ + instanceId: number; + /** + * ID for the component + */ + id?: string; +} + +/** + * Exporting the component for Storybook. Use the default export instead. + */ +export const __TabsWithoutInstanceId = ( { className, onSelect = () => null, tabs, @@ -19,7 +62,7 @@ const Tabs = ( { ariaLabel = __( 'Tabbed Content', 'woo-gutenberg-products-block' ), instanceId, id, -} ) => { +}: TabsProps ): JSX.Element | null => { const initialTab = initialTabName ? { selectedId: `${ instanceId }-${ initialTabName }` } : undefined; @@ -77,4 +120,4 @@ const Tabs = ( { ); }; -export default withInstanceId( Tabs ); +export default withInstanceId( __TabsWithoutInstanceId ); diff --git a/assets/js/base/components/tabs/stories/index.tsx b/assets/js/base/components/tabs/stories/index.tsx new file mode 100644 index 00000000000..880c2c54230 --- /dev/null +++ b/assets/js/base/components/tabs/stories/index.tsx @@ -0,0 +1,54 @@ +/** + * External dependencies + */ +import type { Story, Meta } from '@storybook/react'; +import { useState } from '@wordpress/element'; + +/** + * Internal dependencies + */ +import { __TabsWithoutInstanceId as Tabs, TabsProps } from '..'; + +export default { + title: 'WooCommerce Blocks/@base-components/Tabs', + component: Tabs, + args: { + tabs: [ + { + name: 'firstTab', + title: 'First Tab', + content:
Content of the first tab
, + }, + { + name: 'secondTab', + title: 'Second Tab', + content:
Content of the second tab
, + }, + ], + initialTabName: 'firstTab', + }, + argTypes: { + initialTabName: { + control: { + type: 'select', + options: [ 'firstTab', 'secondTab' ], + }, + }, + }, +} as Meta< TabsProps >; + +const Template: Story< TabsProps > = ( args ) => { + const [ initialTab, setInitialTab ] = useState( args.initialTabName ); + + return ( + { + setInitialTab( newTabName ); + } } + { ...args } + /> + ); +}; + +export const Default = Template.bind( {} ); diff --git a/assets/js/base/context/hooks/collections/use-collection-data.ts b/assets/js/base/context/hooks/collections/use-collection-data.ts index a6d9ddc8ff2..74ff53eebcc 100644 --- a/assets/js/base/context/hooks/collections/use-collection-data.ts +++ b/assets/js/base/context/hooks/collections/use-collection-data.ts @@ -171,6 +171,5 @@ export const useCollectionData = ( { ...collectionDataQueryVars, }, shouldSelect: debouncedShouldSelect, - isEditor, } ); }; diff --git a/assets/js/base/context/hooks/collections/use-collection.ts b/assets/js/base/context/hooks/collections/use-collection.ts index 172fd11963f..656de8a6a31 100644 --- a/assets/js/base/context/hooks/collections/use-collection.ts +++ b/assets/js/base/context/hooks/collections/use-collection.ts @@ -5,7 +5,7 @@ import { COLLECTIONS_STORE_KEY as storeKey } from '@woocommerce/block-data'; import { useSelect } from '@wordpress/data'; import { useRef } from '@wordpress/element'; import { useShallowEqual, useThrowError } from '@woocommerce/base-hooks'; -import { isError, isObject } from '@woocommerce/types'; +import { isError } from '@woocommerce/types'; /** * This is a custom hook that is wired up to the `wc/store/collections` data @@ -61,7 +61,6 @@ export const useCollection = ( resourceValues = [], query = {}, shouldSelect = true, - isEditor = false, } = options; if ( ! namespace || ! resourceName ) { throw new Error( @@ -79,17 +78,6 @@ export const useCollection = ( const throwError = useThrowError(); const results = useSelect( ( select ) => { - if ( - isEditor && - isObject( currentResults?.current?.results ) && - Object.keys( currentResults.current.results ).length > 0 - ) { - return { - results: currentResults.current.results, - isLoading: false, - }; - } - if ( ! shouldSelect ) { return null; } diff --git a/assets/js/base/hooks/use-border-props.ts b/assets/js/base/hooks/use-border-props.ts index a7a0a7decc7..efcf467eb32 100644 --- a/assets/js/base/hooks/use-border-props.ts +++ b/assets/js/base/hooks/use-border-props.ts @@ -15,6 +15,8 @@ type WithStyle = { style: Record< string, unknown >; }; +// @todo The @wordpress/block-editor dependency should never be used on the frontend of the store due to excessive side and its dependency on @wordpress/components +// @see https://github.com/woocommerce/woocommerce-blocks/issues/8071 export const useBorderProps = ( attributes: unknown ): WithStyle & WithClass => { diff --git a/assets/js/base/hooks/use-color-props.ts b/assets/js/base/hooks/use-color-props.ts index 8afacb64009..3254b7f2f01 100644 --- a/assets/js/base/hooks/use-color-props.ts +++ b/assets/js/base/hooks/use-color-props.ts @@ -15,6 +15,8 @@ type WithStyle = { style: Record< string, unknown >; }; +// @todo The @wordpress/block-editor dependency should never be used on the frontend of the store due to excessive side and its dependency on @wordpress/components +// @see https://github.com/woocommerce/woocommerce-blocks/issues/8071 export const useColorProps = ( attributes: unknown ): WithStyle & WithClass => { if ( ! isFeaturePluginBuild() ) { return { diff --git a/assets/js/base/hooks/use-spacing-props.ts b/assets/js/base/hooks/use-spacing-props.ts index a9d08ec4c5e..4bc7049467c 100644 --- a/assets/js/base/hooks/use-spacing-props.ts +++ b/assets/js/base/hooks/use-spacing-props.ts @@ -5,15 +5,16 @@ import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; import { isFeaturePluginBuild } from '@woocommerce/block-settings'; import { isObject } from '@woocommerce/types'; -import { hasSpacingStyleSupport } from '@woocommerce/utils'; import { parseStyle } from '@woocommerce/base-utils'; type WithStyle = { style: Record< string, unknown >; }; +// @todo The @wordpress/block-editor dependency should never be used on the frontend of the store due to excessive side and its dependency on @wordpress/components +// @see https://github.com/woocommerce/woocommerce-blocks/issues/8071 export const useSpacingProps = ( attributes: unknown ): WithStyle => { - if ( ! isFeaturePluginBuild() || ! hasSpacingStyleSupport() ) { + if ( ! isFeaturePluginBuild() ) { return { style: {}, }; diff --git a/assets/js/blocks/attribute-filter/block.tsx b/assets/js/blocks/attribute-filter/block.tsx index 2dcbd2db0d5..6c6ae94e74c 100644 --- a/assets/js/blocks/attribute-filter/block.tsx +++ b/assets/js/blocks/attribute-filter/block.tsx @@ -138,7 +138,6 @@ const AttributeFilterBlock = ( { resourceName: 'products/attributes/terms', resourceValues: [ attributeObject?.id || 0 ], shouldSelect: blockAttributes.attributeId > 0, - isEditor, } ); const filterAvailableTerms = diff --git a/assets/js/blocks/cart-checkout-shared/sidebar-notices/index.tsx b/assets/js/blocks/cart-checkout-shared/sidebar-notices/index.tsx index 391cb424b1f..1fb2e516e07 100644 --- a/assets/js/blocks/cart-checkout-shared/sidebar-notices/index.tsx +++ b/assets/js/blocks/cart-checkout-shared/sidebar-notices/index.tsx @@ -36,7 +36,7 @@ const withSidebarNotices = createHigherOrderComponent( // Show sidebar notices only when a WooCommerce block is selected. if ( ! blockName.startsWith( 'woocommerce/' ) || ! isBlockSelected ) { - return ; + return ; } const [ @@ -115,7 +115,7 @@ const withSidebarNotices = createHigherOrderComponent( ) } - + ); }, diff --git a/assets/js/blocks/cart/inner-blocks/filled-cart-block/frontend.tsx b/assets/js/blocks/cart/inner-blocks/filled-cart-block/frontend.tsx index 03ef72c9e34..4dcf59c6cad 100644 --- a/assets/js/blocks/cart/inner-blocks/filled-cart-block/frontend.tsx +++ b/assets/js/blocks/cart/inner-blocks/filled-cart-block/frontend.tsx @@ -6,7 +6,7 @@ import { SidebarLayout } from '@woocommerce/base-components/sidebar-layout'; import { useStoreCart } from '@woocommerce/base-context/hooks'; import { useEffect } from '@wordpress/element'; import { decodeEntities } from '@wordpress/html-entities'; -import { useDispatch } from '@wordpress/data'; +import { useDispatch, useSelect } from '@wordpress/data'; /** * Internal dependencies @@ -22,10 +22,29 @@ const FrontendBlock = ( { } ): JSX.Element | null => { const { cartItems, cartIsLoading, cartItemErrors } = useStoreCart(); const { hasDarkControls } = useCartBlockContext(); - const { createErrorNotice } = useDispatch( 'core/notices' ); + const { createErrorNotice, removeNotice } = useDispatch( 'core/notices' ); + + /* + * The code for removing old notices is also present in the filled-mini-cart-contents-block/frontend.tsx file and + * will take care of removing outdated errors in the Mini Cart block. + */ + const currentlyDisplayedErrorNoticeCodes = useSelect( ( select ) => { + return select( 'core/notices' ) + .getNotices( 'wc/cart' ) + .filter( + ( notice ) => + notice.status === 'error' && notice.type === 'default' + ) + .map( ( notice ) => notice.id ); + } ); - // Ensures any cart errors listed in the API response get shown. useEffect( () => { + // Clear errors out of the store before adding the new ones from the response. + currentlyDisplayedErrorNoticeCodes.forEach( ( id ) => { + removeNotice( id, 'wc/cart' ); + } ); + + // Ensures any cart errors listed in the API response get shown. cartItemErrors.forEach( ( error ) => { createErrorNotice( decodeEntities( error.message ), { isDismissible: true, @@ -33,7 +52,12 @@ const FrontendBlock = ( { context: 'wc/cart', } ); } ); - }, [ createErrorNotice, cartItemErrors ] ); + }, [ + createErrorNotice, + cartItemErrors, + currentlyDisplayedErrorNoticeCodes, + removeNotice, + ] ); if ( cartIsLoading || cartItems.length >= 1 ) { return ( diff --git a/assets/js/blocks/mini-cart/mini-cart-contents/inner-blocks/filled-mini-cart-contents-block/frontend.tsx b/assets/js/blocks/mini-cart/mini-cart-contents/inner-blocks/filled-mini-cart-contents-block/frontend.tsx index 2b9b52dc92f..2434856fd18 100644 --- a/assets/js/blocks/mini-cart/mini-cart-contents/inner-blocks/filled-mini-cart-contents-block/frontend.tsx +++ b/assets/js/blocks/mini-cart/mini-cart-contents/inner-blocks/filled-mini-cart-contents-block/frontend.tsx @@ -4,7 +4,7 @@ import { StoreNoticesContainer } from '@woocommerce/blocks-checkout'; import { useStoreCart } from '@woocommerce/base-context/hooks'; -import { useDispatch } from '@wordpress/data'; +import { useDispatch, useSelect } from '@wordpress/data'; import { useEffect } from '@wordpress/element'; import { decodeEntities } from '@wordpress/html-entities'; @@ -19,10 +19,29 @@ const FilledMiniCartContentsBlock = ( { }: FilledMiniCartContentsBlockProps ): JSX.Element | null => { const { cartItems, cartItemErrors } = useStoreCart(); - const { createErrorNotice } = useDispatch( 'core/notices' ); + const { createErrorNotice, removeNotice } = useDispatch( 'core/notices' ); + + /* + * The code for removing old notices is also present in the filled-cart-block/frontend.tsx file and will take care + * of removing outdated errors in the Cart block. + */ + const currentlyDisplayedErrorNoticeCodes = useSelect( ( select ) => { + return select( 'core/notices' ) + .getNotices( 'wc/cart' ) + .filter( + ( notice ) => + notice.status === 'error' && notice.type === 'default' + ) + .map( ( notice ) => notice.id ); + } ); // Ensures any cart errors listed in the API response get shown. useEffect( () => { + // Clear errors out of the store before adding the new ones from the response. + currentlyDisplayedErrorNoticeCodes.forEach( ( id ) => { + removeNotice( id, 'wc/cart' ); + } ); + cartItemErrors.forEach( ( error ) => { createErrorNotice( decodeEntities( error.message ), { isDismissible: false, @@ -30,7 +49,12 @@ const FilledMiniCartContentsBlock = ( { context: 'wc/cart', } ); } ); - }, [ createErrorNotice, cartItemErrors ] ); + }, [ + createErrorNotice, + cartItemErrors, + currentlyDisplayedErrorNoticeCodes, + removeNotice, + ] ); if ( cartItems.length === 0 ) { return null; diff --git a/assets/js/blocks/product-query/constants.ts b/assets/js/blocks/product-query/constants.ts index b78163cbb73..39c84b8539d 100644 --- a/assets/js/blocks/product-query/constants.ts +++ b/assets/js/blocks/product-query/constants.ts @@ -1,7 +1,7 @@ /** * External dependencies */ -import { getSetting, isWpVersion } from '@woocommerce/settings'; +import { getSetting } from '@woocommerce/settings'; import type { InnerBlockTemplate } from '@wordpress/blocks'; /** @@ -110,7 +110,5 @@ export const INNER_BLOCKS_TEMPLATE: InnerBlockTemplate[] = [ }, [], ], - ...( isWpVersion( '6.0', '>=' ) - ? [ [ 'core/query-no-results' ] as InnerBlockTemplate ] - : [] ), + [ 'core/query-no-results' ], ]; diff --git a/assets/js/blocks/product-query/index.tsx b/assets/js/blocks/product-query/index.tsx index 725a3067ccd..312ce2af40d 100644 --- a/assets/js/blocks/product-query/index.tsx +++ b/assets/js/blocks/product-query/index.tsx @@ -3,6 +3,7 @@ */ import type { Block } from '@wordpress/blocks'; import { addFilter } from '@wordpress/hooks'; +import { isWpVersion } from '@woocommerce/settings'; /** * Internal dependencies @@ -39,8 +40,10 @@ function registerProductQueryElementsNamespace( return props; } -addFilter( - 'blocks.registerBlockType', - 'core/custom-class-name/attribute', - registerProductQueryElementsNamespace -); +if ( isWpVersion( '6.1', '>=' ) ) { + addFilter( + 'blocks.registerBlockType', + 'core/custom-class-name/attribute', + registerProductQueryElementsNamespace + ); +} diff --git a/assets/js/blocks/product-query/variations/elements/product-summary.tsx b/assets/js/blocks/product-query/variations/elements/product-summary.tsx index b4b22d7c4da..69e0f33f775 100644 --- a/assets/js/blocks/product-query/variations/elements/product-summary.tsx +++ b/assets/js/blocks/product-query/variations/elements/product-summary.tsx @@ -2,11 +2,12 @@ * External dependencies */ import { isFeaturePluginBuild } from '@woocommerce/block-settings'; +import { Icon } from '@wordpress/components'; import { BLOCK_DESCRIPTION, - BLOCK_ICON, BLOCK_TITLE, } from '@woocommerce/atomic-blocks/product-elements/summary/constants'; +import { page } from '@wordpress/icons'; /** * Internal dependencies @@ -19,7 +20,7 @@ export const VARIATION_NAME = 'woocommerce/product-query/product-summary'; if ( isFeaturePluginBuild() ) { registerElementVariation( CORE_NAME, { blockDescription: BLOCK_DESCRIPTION, - blockIcon: BLOCK_ICON, + blockIcon: , blockTitle: BLOCK_TITLE, variationName: VARIATION_NAME, } ); diff --git a/assets/js/blocks/product-query/variations/elements/product-title.tsx b/assets/js/blocks/product-query/variations/elements/product-title.tsx index cbb6ebbc5c0..98e16e4e725 100644 --- a/assets/js/blocks/product-query/variations/elements/product-title.tsx +++ b/assets/js/blocks/product-query/variations/elements/product-title.tsx @@ -2,11 +2,12 @@ * External dependencies */ import { isFeaturePluginBuild } from '@woocommerce/block-settings'; +import { Icon } from '@wordpress/components'; import { BLOCK_DESCRIPTION, - BLOCK_ICON, BLOCK_TITLE, } from '@woocommerce/atomic-blocks/product-elements/title/constants'; +import { heading } from '@wordpress/icons'; /** * Internal dependencies @@ -19,7 +20,7 @@ export const VARIATION_NAME = 'woocommerce/product-query/product-title'; if ( isFeaturePluginBuild() ) { registerElementVariation( CORE_NAME, { blockDescription: BLOCK_DESCRIPTION, - blockIcon: BLOCK_ICON, + blockIcon: , blockTitle: BLOCK_TITLE, variationName: VARIATION_NAME, } ); diff --git a/assets/js/blocks/product-query/variations/product-query.tsx b/assets/js/blocks/product-query/variations/product-query.tsx index c993c6903ed..73362b8bf0d 100644 --- a/assets/js/blocks/product-query/variations/product-query.tsx +++ b/assets/js/blocks/product-query/variations/product-query.tsx @@ -5,6 +5,7 @@ import { registerBlockVariation } from '@wordpress/blocks'; import { Icon } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { stacks } from '@woocommerce/icons'; +import { isWpVersion } from '@woocommerce/settings'; /** * Internal dependencies @@ -18,31 +19,33 @@ import { const VARIATION_NAME = 'woocommerce/product-query'; -registerBlockVariation( QUERY_LOOP_ID, { - description: __( - 'A block that displays a selection of products in your store.', - 'woo-gutenberg-products-block' - ), - name: VARIATION_NAME, - /* translators: “Products“ is the name of the block. */ - title: __( 'Products (Beta)', 'woo-gutenberg-products-block' ), - isActive: ( blockAttributes ) => - blockAttributes.namespace === VARIATION_NAME, - icon: ( - - ), - attributes: { - ...QUERY_DEFAULT_ATTRIBUTES, - namespace: VARIATION_NAME, - }, - // Gutenberg doesn't support this type yet, discussion here: - // https://github.com/WordPress/gutenberg/pull/43632 - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - allowedControls: DEFAULT_ALLOWED_CONTROLS, - innerBlocks: INNER_BLOCKS_TEMPLATE, - scope: [ 'inserter' ], -} ); +if ( isWpVersion( '6.1', '>=' ) ) { + registerBlockVariation( QUERY_LOOP_ID, { + description: __( + 'A block that displays a selection of products in your store.', + 'woo-gutenberg-products-block' + ), + name: VARIATION_NAME, + /* translators: “Products“ is the name of the block. */ + title: __( 'Products (Beta)', 'woo-gutenberg-products-block' ), + isActive: ( blockAttributes ) => + blockAttributes.namespace === VARIATION_NAME, + icon: ( + + ), + attributes: { + ...QUERY_DEFAULT_ATTRIBUTES, + namespace: VARIATION_NAME, + }, + // Gutenberg doesn't support this type yet, discussion here: + // https://github.com/WordPress/gutenberg/pull/43632 + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + allowedControls: DEFAULT_ALLOWED_CONTROLS, + innerBlocks: INNER_BLOCKS_TEMPLATE, + scope: [ 'inserter' ], + } ); +} diff --git a/assets/js/data/cart/index.ts b/assets/js/data/cart/index.ts index 47ba38793ae..5ddd7de7793 100644 --- a/assets/js/data/cart/index.ts +++ b/assets/js/data/cart/index.ts @@ -29,6 +29,7 @@ const registeredStore = registerStore< State >( STORE_KEY, { controls: dataControls, selectors, resolvers, + __experimentalUseThunks: true, } ); registeredStore.subscribe( pushChanges ); diff --git a/assets/js/data/checkout/index.ts b/assets/js/data/checkout/index.ts index cd26412a047..267bcd78b94 100644 --- a/assets/js/data/checkout/index.ts +++ b/assets/js/data/checkout/index.ts @@ -16,6 +16,7 @@ export const config = { reducer, selectors, actions, + __experimentalUseThunks: true, }; const store = createReduxStore( STORE_KEY, config ); diff --git a/assets/js/data/payment/index.ts b/assets/js/data/payment/index.ts index 9d7820d15b4..2e3abf8d45a 100644 --- a/assets/js/data/payment/index.ts +++ b/assets/js/data/payment/index.ts @@ -20,6 +20,7 @@ export const config = { actions, // eslint-disable-next-line @typescript-eslint/no-explicit-any controls: { ...dataControls, ...sharedControls } as any, + __experimentalUseThunks: true, }; const store = createReduxStore( STORE_KEY, config ); diff --git a/assets/js/types/type-defs/blocks.ts b/assets/js/types/type-defs/blocks.ts index aa6e6c0d844..5451fbb50dc 100644 --- a/assets/js/types/type-defs/blocks.ts +++ b/assets/js/types/type-defs/blocks.ts @@ -2,7 +2,7 @@ * External dependencies */ import type { BlockEditProps, BlockInstance } from '@wordpress/blocks'; -import { LazyExoticComponent } from 'react'; +import type { LazyExoticComponent } from 'react'; export type EditorBlock< T > = BlockInstance< T > & BlockEditProps< T >; diff --git a/assets/js/types/type-defs/cart-response.ts b/assets/js/types/type-defs/cart-response.ts index 13e6f583f31..162ca604042 100644 --- a/assets/js/types/type-defs/cart-response.ts +++ b/assets/js/types/type-defs/cart-response.ts @@ -1,7 +1,7 @@ /** * Internal dependencies */ -import { CurrencyResponse } from './currency'; +import type { CurrencyResponse } from './currency'; import type { CartItem } from './cart'; import type { ProductResponseItem } from './product-response'; diff --git a/assets/js/types/type-defs/cart.ts b/assets/js/types/type-defs/cart.ts index 9582ca73ffb..e7b639d39aa 100644 --- a/assets/js/types/type-defs/cart.ts +++ b/assets/js/types/type-defs/cart.ts @@ -1,7 +1,7 @@ /** * External dependencies */ -import { CurrencyCode } from '@woocommerce/types'; +import type { CurrencyCode } from '@woocommerce/types'; /** * Internal dependencies diff --git a/assets/js/types/type-defs/checkout.ts b/assets/js/types/type-defs/checkout.ts index 41a49eef0c3..01437b484cd 100644 --- a/assets/js/types/type-defs/checkout.ts +++ b/assets/js/types/type-defs/checkout.ts @@ -1,7 +1,7 @@ /** * External dependencies */ -import { ShippingAddress, BillingAddress } from '@woocommerce/settings'; +import type { ShippingAddress, BillingAddress } from '@woocommerce/settings'; /** * Internal dependencies diff --git a/assets/js/types/type-defs/hooks.ts b/assets/js/types/type-defs/hooks.ts index 64f0949b937..d57ddff68b4 100644 --- a/assets/js/types/type-defs/hooks.ts +++ b/assets/js/types/type-defs/hooks.ts @@ -1,7 +1,7 @@ /** * External dependencies */ -import { ProductResponseItem } from '@woocommerce/types'; +import type { ProductResponseItem } from '@woocommerce/types'; /** * Internal dependencies diff --git a/assets/js/types/type-defs/payment-method-interface.ts b/assets/js/types/type-defs/payment-method-interface.ts index 84dd7ef4c49..b711c1552b0 100644 --- a/assets/js/types/type-defs/payment-method-interface.ts +++ b/assets/js/types/type-defs/payment-method-interface.ts @@ -5,7 +5,7 @@ import type PaymentMethodLabel from '@woocommerce/base-components/cart-checkout/payment-method-label'; import type PaymentMethodIcons from '@woocommerce/base-components/cart-checkout/payment-method-icons'; import type LoadingMask from '@woocommerce/base-components/loading-mask'; -import { ValidationInputError } from '@woocommerce/blocks-checkout'; +import type { ValidationInputError } from '@woocommerce/blocks-checkout'; /** * Internal dependencies diff --git a/assets/js/types/type-defs/payments.ts b/assets/js/types/type-defs/payments.ts index 814ee419e3c..fd9be00562b 100644 --- a/assets/js/types/type-defs/payments.ts +++ b/assets/js/types/type-defs/payments.ts @@ -7,7 +7,7 @@ import type { ReactNode } from 'react'; * Internal dependencies */ import type { CartTotals, Cart } from './cart'; -import { +import type { CartResponseBillingAddress, CartResponseShippingAddress, } from './cart-response'; diff --git a/assets/js/types/type-defs/product-response.ts b/assets/js/types/type-defs/product-response.ts index f875cf42eee..7746e2f6ca1 100644 --- a/assets/js/types/type-defs/product-response.ts +++ b/assets/js/types/type-defs/product-response.ts @@ -1,7 +1,7 @@ /** * Internal dependencies */ -import { CurrencyResponse } from './currency'; +import type { CurrencyResponse } from './currency'; export interface ProductResponseItemPrices extends CurrencyResponse { price: string; @@ -31,6 +31,7 @@ export interface ProductResponseImageItem { } export interface ProductResponseTermItem { + default?: boolean; id: number; name: string; slug: string; diff --git a/assets/js/types/type-defs/utils.ts b/assets/js/types/type-defs/utils.ts index f23dd1e23c2..cc698db9fcf 100644 --- a/assets/js/types/type-defs/utils.ts +++ b/assets/js/types/type-defs/utils.ts @@ -1,3 +1,5 @@ +export type Dictionary = Record< string, string >; + /** * Allow for the entire object to be passed, with only some properties * required. diff --git a/assets/js/types/type-guards/attributes.ts b/assets/js/types/type-guards/attributes.ts index c9ed9e3454b..3906d1c1592 100644 --- a/assets/js/types/type-guards/attributes.ts +++ b/assets/js/types/type-guards/attributes.ts @@ -1,7 +1,7 @@ /** * Internal dependencies */ -import { AttributeTerm, AttributeQuery } from '../type-defs'; +import type { AttributeTerm, AttributeQuery } from '../type-defs'; import { objectHasProp } from './object'; export const isAttributeTerm = ( term: unknown ): term is AttributeTerm => { diff --git a/assets/js/types/type-guards/cart-response-totals.ts b/assets/js/types/type-guards/cart-response-totals.ts index faa2ac3ad69..c7764ceff3b 100644 --- a/assets/js/types/type-guards/cart-response-totals.ts +++ b/assets/js/types/type-guards/cart-response-totals.ts @@ -1,7 +1,7 @@ /** * Internal dependencies */ -import { CartResponseTotals } from '../type-defs'; +import type { CartResponseTotals } from '../type-defs'; import { isObject } from './object'; // It is the only way to create a type that contains all the object's keys and gets type-checking. diff --git a/assets/js/utils/global-style.js b/assets/js/utils/global-style.js deleted file mode 100644 index 0a05b0378bd..00000000000 --- a/assets/js/utils/global-style.js +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable @wordpress/no-unsafe-wp-apis */ -/** - * External dependencies - */ -import { __experimentalGetSpacingClassesAndStyles } from '@wordpress/block-editor'; - -export const hasSpacingStyleSupport = () => - typeof __experimentalGetSpacingClassesAndStyles === 'function'; diff --git a/assets/js/utils/index.ts b/assets/js/utils/index.ts index 3b398bf58f3..5a9042e0749 100644 --- a/assets/js/utils/index.ts +++ b/assets/js/utils/index.ts @@ -1,7 +1,6 @@ export * from './attributes-query'; export * from './attributes'; export * from './filters'; -export * from './global-style'; export * from './notices'; export * from './products'; export * from './shared-attributes'; diff --git a/bin/webpack-entries.js b/bin/webpack-entries.js index 40e30c2cd12..a1ee686e060 100644 --- a/bin/webpack-entries.js +++ b/bin/webpack-entries.js @@ -12,57 +12,57 @@ const glob = require( 'glob' ); // If a block is experimental, it should be marked with the `isExperimental` // property. const blocks = { - 'handpicked-products': {}, - 'product-best-sellers': {}, - 'product-category': {}, - 'product-categories': {}, - 'product-new': {}, - 'product-on-sale': {}, - 'product-top-rated': {}, - 'products-by-attribute': {}, - 'featured-product': { - customDir: 'featured-items/featured-product', + 'active-filters': {}, + 'all-products': { + customDir: 'products/all-products', }, 'all-reviews': { customDir: 'reviews/all-reviews', }, - 'reviews-by-product': { - customDir: 'reviews/reviews-by-product', - }, - 'reviews-by-category': { - customDir: 'reviews/reviews-by-category', - }, - 'product-search': {}, - 'product-tag': {}, + 'attribute-filter': {}, + cart: {}, + checkout: {}, + 'customer-account': {}, 'featured-category': { customDir: 'featured-items/featured-category', }, - 'all-products': { - customDir: 'products/all-products', + 'featured-product': { + customDir: 'featured-items/featured-product', + }, + 'filter-wrapper': {}, + 'handpicked-products': {}, + // We need to keep the legacy-template id, so we need to add a custom config to point to the renamed classic-template folder + 'legacy-template': { + customDir: 'classic-template', }, - 'price-filter': {}, - 'attribute-filter': {}, - 'stock-filter': {}, - 'active-filters': {}, - 'rating-filter': {}, - cart: {}, - checkout: {}, 'mini-cart': {}, 'mini-cart-contents': { customDir: 'mini-cart/mini-cart-contents', }, - 'single-product': { + 'price-filter': {}, + 'product-best-sellers': {}, + 'product-category': {}, + 'product-categories': {}, + 'product-new': {}, + 'product-on-sale': {}, + 'product-query': { isExperimental: true, }, - // We need to keep the legacy-template id, so we need to add a custom config to point to the renamed classic-template folder - 'legacy-template': { - customDir: 'classic-template', + 'product-search': {}, + 'product-tag': {}, + 'product-top-rated': {}, + 'products-by-attribute': {}, + 'rating-filter': {}, + 'reviews-by-category': { + customDir: 'reviews/reviews-by-category', }, - 'product-query': { + 'reviews-by-product': { + customDir: 'reviews/reviews-by-product', + }, + 'single-product': { isExperimental: true, }, - 'filter-wrapper': {}, - 'customer-account': {}, + 'stock-filter': {}, }; // Returns the entries for each block given a relative path (ie: `index.js`, diff --git a/checkstyle.xml b/checkstyle.xml index 309aa9161dd..9374abadfea 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -2337,6 +2337,9 @@ Target requires 1 element(s) but source may have fewer." source="TS2322" /> + + + diff --git a/docs/internal-developers/testing/releases/893.md b/docs/internal-developers/testing/releases/893.md new file mode 100644 index 00000000000..86e18e4772e --- /dev/null +++ b/docs/internal-developers/testing/releases/893.md @@ -0,0 +1,11 @@ +# Testing notes and ZIP for release 8.9.3 + +Zip file for testing: [woocommerce-gutenberg-products-block.zip](https://github.com/woocommerce/woocommerce-blocks/files/10332606/woocommerce-gutenberg-products-block.zip) + +## Feature plugin and package inclusion in WooCommerce + +### Replace additional instance of wp_is_block_theme() with wc_current_theme_is_fse_theme() [#7496](https://github.com/woocommerce/woocommerce-blocks/pull/7496) + +0. In WP 5.8. +1. Create a post or page. +2. Verify there is no fatal error and you can create the post or page and publish it. diff --git a/docs/internal-developers/testing/releases/894.md b/docs/internal-developers/testing/releases/894.md new file mode 100644 index 00000000000..d877306ab97 --- /dev/null +++ b/docs/internal-developers/testing/releases/894.md @@ -0,0 +1,25 @@ +# Testing notes and ZIP for release 8.9.4 + +Zip file for testing: [woocommerce-gutenberg-products-block.zip](https://github.com/woocommerce/woocommerce-blocks/files/10346588/woocommerce-blocks.zip) + +## Feature plugin and package inclusion in WooCommerce + +### Refactor Filter Wrapper to remove usage of useInnerBlocksProps [#8095](https://github.com/woocommerce/woocommerce-blocks/pull/8095) and Add back ToggleButtonControl component in WC Blocks 8.9 so it supports WP 5.9 [#8101](https://github.com/woocommerce/woocommerce-blocks/pull/8101) + +1. In WP 5.8. +2. Create a post or page. +3. Add the Filter by Attribute block. +4. Select one of the attributes. +5. Verify the block is added correctly, you can publish the post/page and there is no error. +6. Play around with the block display settings and verify the block honors them: + + + +7. Test also these blocks (in all of them, interact with the toggles on the sidebar of the editor and verify the block doesn't crash and the settings are applied correctly): + * Feature Product + * Featured Category + * Product Image (you will need to add the All Products block, click on the pencil icon to edit its inner blocks, and select the image) + * Active Product Filters (you will need to select the Controls inner block) + * Filter by Price (you will need to select the Controls inner block) + * Product Categories List + diff --git a/docs/internal-developers/testing/releases/README.md b/docs/internal-developers/testing/releases/README.md index f37d42bcd0b..de8be7c3805 100644 --- a/docs/internal-developers/testing/releases/README.md +++ b/docs/internal-developers/testing/releases/README.md @@ -105,6 +105,8 @@ Every release includes specific testing instructions for new features and bug fi - [8.9.0](./890.md) - [8.9.1](./891.md) - [8.9.2](./892.md) + - [8.9.3](./893.md) + - [8.9.4](./894.md) - [9.0.0](./900.md) - [9.1.0](./910.md) - [9.1.1](./911.md) diff --git a/package-lock.json b/package-lock.json index 85743d3f825..7ccbae032e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "@storybook/addon-storysource": "6.5.9", "@storybook/addons": "6.5.9", "@storybook/client-api": "6.5.14", - "@storybook/react": "6.5.13", + "@storybook/react": "6.5.15", "@testing-library/jest-dom": "5.16.4", "@testing-library/react": "12.1.5", "@testing-library/react-hooks": "7.0.2", @@ -68,9 +68,10 @@ "@types/lodash": "4.14.182", "@types/puppeteer": "5.4.6", "@types/react": "17.0.47", - "@types/react-dom": "18.0.9", + "@types/react-dom": "18.0.10", "@types/wordpress__block-editor": "6.0.6", "@types/wordpress__blocks": "11.0.7", + "@types/wordpress__components": "^23.0.0", "@types/wordpress__core-data": "^2.4.5", "@types/wordpress__data": "^6.0.1", "@types/wordpress__data-controls": "2.2.0", @@ -83,8 +84,8 @@ "@woocommerce/e2e-utils": "0.2.0", "@woocommerce/eslint-plugin": "2.2.0", "@woocommerce/woocommerce-rest-api": "1.0.1", - "@wordpress/api-fetch": "6.19.0", - "@wordpress/babel-preset-default": "6.14.0", + "@wordpress/api-fetch": "6.21.0", + "@wordpress/babel-preset-default": "7.8.0", "@wordpress/base-styles": "4.14.0", "@wordpress/block-editor": "8.2.0", "@wordpress/blocks": "11.1.5", @@ -99,7 +100,7 @@ "@wordpress/env": "^4.9.0", "@wordpress/html-entities": "3.24.0", "@wordpress/i18n": "4.24.0", - "@wordpress/is-shallow-equal": "4.13.0", + "@wordpress/is-shallow-equal": "4.24.0", "@wordpress/prettier-config": "1.4.0", "@wordpress/scripts": "22.3.0", "autoprefixer": "10.4.7", @@ -6274,28 +6275,28 @@ } }, "node_modules/@storybook/builder-webpack4": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.13.tgz", - "integrity": "sha512-Agqy3IKPv3Nl8QqdS7PjtqLp+c0BD8+/3A2ki/YfKqVz+F+J34EpbZlh3uU053avm1EoNQHSmhZok3ZlWH6O7A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.15.tgz", + "integrity": "sha512-1ZkMECUUdiYplhlgyUF5fqW3XU7eWNDJbuPUguyDOeidgJ111WZzBcLuKj+SNrzdNNgXwROCWAFybiNnX33YHQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", - "@storybook/addons": "6.5.13", - "@storybook/api": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-api": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/components": "6.5.13", - "@storybook/core-common": "6.5.13", - "@storybook/core-events": "6.5.13", - "@storybook/node-logger": "6.5.13", - "@storybook/preview-web": "6.5.13", - "@storybook/router": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/api": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-api": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/components": "6.5.15", + "@storybook/core-common": "6.5.15", + "@storybook/core-events": "6.5.15", + "@storybook/node-logger": "6.5.15", + "@storybook/preview-web": "6.5.15", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.5.13", - "@storybook/theming": "6.5.13", - "@storybook/ui": "6.5.13", + "@storybook/store": "6.5.15", + "@storybook/theming": "6.5.15", + "@storybook/ui": "6.5.15", "@types/node": "^14.0.10 || ^16.0.0", "@types/webpack": "^4.41.26", "autoprefixer": "^9.8.6", @@ -6342,18 +6343,18 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "dependencies": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -6369,18 +6370,18 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -6402,14 +6403,14 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/channel-postmessage": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.13.tgz", - "integrity": "sha512-R79MBs0mQ7TV8M/a6x/SiTRyvZBidDfMEEthG7Cyo9p35JYiKOhj2535zhW4qlVMESBu95pwKYBibTjASoStPw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.15.tgz", + "integrity": "sha512-gMpA8LWT8lC4z5KWnaMh03aazEwtDO7GtY5kZVru+EEMgExGmaR82qgekwmLmgLj2nRJEv0o138o9IqYUcou8w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -6421,9 +6422,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -6436,18 +6437,18 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/client-api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.13.tgz", - "integrity": "sha512-uH1mAWbidPiuuTdMUVEiuaNOfrYXm+9QLSP1MMYTKULqEOZI5MSOGkEDqRfVWxbYv/iWBOPTQ+OM9TQ6ecYacg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.15.tgz", + "integrity": "sha512-0ZGpRgVz7rdbCguBqBpwObXbsVY5qlSTWDzzIBpmz8EkxW/MtK5wEyeq+0L0O+DTn41FwvH5yCGLAENpzWD8BQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", @@ -6472,9 +6473,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -6486,14 +6487,14 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/components": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.13.tgz", - "integrity": "sha512-6Hhx70JK5pGfKCkqMU4yq/BBH+vRTmzj7tZKfPwba+f8VmTMoOr/2ysTQFRtXryiHB6Z15xBYgfq5x2pIwQzLQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.15.tgz", + "integrity": "sha512-bHTT0Oa3s4g+MBMaLBbX9ofMtb1AW59AzIUNGrfqW1XqJMGuUHMiJ7TSo+i5dRSFpbFygnwMEG9LfHxpR2Z0Dw==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -6510,9 +6511,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -6537,7 +6538,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6653,9 +6654,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -6666,9 +6667,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -6683,17 +6684,17 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/preview-web": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.13.tgz", - "integrity": "sha512-GNNYVzw4SmRua3dOc52Ye6Us4iQbq5GKQ56U3iwnzZM3TBdJB+Rft94Fn1/pypHujEHS8hl5Xgp9td6C1lLCow==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.15.tgz", + "integrity": "sha512-gIHABSAD0JS0iRaG67BnSDq/q8Zf4fFwEWBQOSYgcEx2TzhAUeSkhGZUQHdlOTCwuA2PpXT0/cWDH8u2Ev+msg==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -6715,12 +6716,12 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -6736,14 +6737,14 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -6767,12 +6768,12 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -7255,9 +7256,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/terser": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.0.tgz", - "integrity": "sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -7341,13 +7342,13 @@ } }, "node_modules/@storybook/channel-websocket": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.13.tgz", - "integrity": "sha512-kwh667H+tzCiNvs92GNwYOwVXdj9uHZyieRAN5rJtTBJ7XgLzGkpTEU50mWlbc0nDKhgE0qYvzyr5H393Iy5ug==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.15.tgz", + "integrity": "sha512-K85KEgzo5ahzJNJjyUbSNyuRmkeC8glJX2hCg2j9HiJ9rasX53qugkODrKDlWAeheulo3kR13VSuAqIuwVbmbw==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "global": "^4.4.0", "telejson": "^6.0.8" @@ -7358,9 +7359,9 @@ } }, "node_modules/@storybook/channel-websocket/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -7373,9 +7374,9 @@ } }, "node_modules/@storybook/channel-websocket/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -7692,13 +7693,13 @@ } }, "node_modules/@storybook/core": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.5.13.tgz", - "integrity": "sha512-kw1lCgbsxzUimGww6t5rmuWJmFPe9kGGyzIqvj4RC4BBcEsP40LEu9XhSfvnb8vTOLIULFZeZpdRFfJs4TYbUw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.5.15.tgz", + "integrity": "sha512-T9TjLxbb5P/XvLEoj0dnbtexJa0V3pqCifRlIUNkTJO0nU3PdGLMcKMSyIYWjkthAJ9oBrajnodV0UveM/epTg==", "dev": true, "dependencies": { - "@storybook/core-client": "6.5.13", - "@storybook/core-server": "6.5.13" + "@storybook/core-client": "6.5.15", + "@storybook/core-server": "6.5.15" }, "funding": { "type": "opencollective", @@ -7722,21 +7723,21 @@ } }, "node_modules/@storybook/core-client": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.13.tgz", - "integrity": "sha512-YuELbRokTBdqjbx/R4/7O4rou9kvbBIOJjlUkor9hdLLuJ3P0yGianERGNkZFfvcfMBAxU0p52o7QvDldSR3kA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.15.tgz", + "integrity": "sha512-i9t4WONy2MxJwLI1FIp5ck7b52EXyJfALnxUn4O/3GTkw09J0NOKi2DPjefUsi7IB5MzFpDjDH9vw/XiTM+OZw==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channel-websocket": "6.5.13", - "@storybook/client-api": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channel-websocket": "6.5.15", + "@storybook/client-api": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/preview-web": "6.5.13", - "@storybook/store": "6.5.13", - "@storybook/ui": "6.5.13", + "@storybook/preview-web": "6.5.15", + "@storybook/store": "6.5.15", + "@storybook/ui": "6.5.15", "airbnb-js-shims": "^2.2.1", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", @@ -7764,18 +7765,18 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "dependencies": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -7791,18 +7792,18 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -7824,14 +7825,14 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/channel-postmessage": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.13.tgz", - "integrity": "sha512-R79MBs0mQ7TV8M/a6x/SiTRyvZBidDfMEEthG7Cyo9p35JYiKOhj2535zhW4qlVMESBu95pwKYBibTjASoStPw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.15.tgz", + "integrity": "sha512-gMpA8LWT8lC4z5KWnaMh03aazEwtDO7GtY5kZVru+EEMgExGmaR82qgekwmLmgLj2nRJEv0o138o9IqYUcou8w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -7843,9 +7844,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -7858,18 +7859,18 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/client-api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.13.tgz", - "integrity": "sha512-uH1mAWbidPiuuTdMUVEiuaNOfrYXm+9QLSP1MMYTKULqEOZI5MSOGkEDqRfVWxbYv/iWBOPTQ+OM9TQ6ecYacg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.15.tgz", + "integrity": "sha512-0ZGpRgVz7rdbCguBqBpwObXbsVY5qlSTWDzzIBpmz8EkxW/MtK5wEyeq+0L0O+DTn41FwvH5yCGLAENpzWD8BQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", @@ -7894,9 +7895,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -7908,9 +7909,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -7921,17 +7922,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-web": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.13.tgz", - "integrity": "sha512-GNNYVzw4SmRua3dOc52Ye6Us4iQbq5GKQ56U3iwnzZM3TBdJB+Rft94Fn1/pypHujEHS8hl5Xgp9td6C1lLCow==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.15.tgz", + "integrity": "sha512-gIHABSAD0JS0iRaG67BnSDq/q8Zf4fFwEWBQOSYgcEx2TzhAUeSkhGZUQHdlOTCwuA2PpXT0/cWDH8u2Ev+msg==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -7953,12 +7954,12 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -7974,14 +7975,14 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -8005,12 +8006,12 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -8138,23 +8139,23 @@ } }, "node_modules/@storybook/core-server": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.13.tgz", - "integrity": "sha512-vs7tu3kAnFwuINio1p87WyqDNlFyZESmeh9s7vvrZVbe/xS/ElqDscr9DT5seW+jbtxufAaHsx+JUTver1dheQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.15.tgz", + "integrity": "sha512-m+pZwHhCjwryeqTptyyKHSbIjnnPGKoRSnkqLTOpKQf8llZMnNQWUFrn4fx6UDKzxFQ2st2+laV8O2QbMs8qwQ==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.5.13", - "@storybook/core-client": "6.5.13", - "@storybook/core-common": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/builder-webpack4": "6.5.15", + "@storybook/core-client": "6.5.15", + "@storybook/core-common": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/csf-tools": "6.5.13", - "@storybook/manager-webpack4": "6.5.13", - "@storybook/node-logger": "6.5.13", + "@storybook/csf-tools": "6.5.15", + "@storybook/manager-webpack4": "6.5.15", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.5.13", - "@storybook/telemetry": "6.5.13", + "@storybook/store": "6.5.15", + "@storybook/telemetry": "6.5.15", "@types/node": "^14.0.10 || ^16.0.0", "@types/node-fetch": "^2.5.7", "@types/pretty-hrtime": "^1.0.0", @@ -8210,18 +8211,18 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "dependencies": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -8237,18 +8238,18 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -8270,9 +8271,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -8285,9 +8286,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -8299,9 +8300,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -8326,7 +8327,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -8370,9 +8371,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -8383,9 +8384,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -8400,12 +8401,12 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -8421,14 +8422,14 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -8452,12 +8453,12 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -8519,9 +8520,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.13.tgz", - "integrity": "sha512-63Ev+VmBqzwSwfUzbuXOLKBD5dMTK2zBYLQ9anTVw70FuTikwTsGIbPgb098K0vsxRCgxl7KM7NpivHqtZtdjw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.15.tgz", + "integrity": "sha512-2LwSD7yE/ccXBc58K4vdKw/oJJg6IpC4WD51rBt2mAl5JUCkxhOq7wG/Z8Wy1lZw2LVuKNTmjVou5blGRI/bTg==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -8586,20 +8587,20 @@ } }, "node_modules/@storybook/manager-webpack4": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.13.tgz", - "integrity": "sha512-pURzS5W3XM0F7bCBWzpl7TRsuy+OXFwLXiWLaexuvo0POZe31Ueo2A1R4rx3MT5Iee8O9mYvG2XTmvK9MlLefQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.15.tgz", + "integrity": "sha512-zRvBTMoaFO6MvHDsDLnt3tsFENhpY3k+e/UIPdqbIDMbUPGGQzxJucAM9aS/kbVSO5IVs8IflVxbeeB/uTIIfA==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.5.13", - "@storybook/core-client": "6.5.13", - "@storybook/core-common": "6.5.13", - "@storybook/node-logger": "6.5.13", - "@storybook/theming": "6.5.13", - "@storybook/ui": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/core-client": "6.5.15", + "@storybook/core-common": "6.5.15", + "@storybook/node-logger": "6.5.15", + "@storybook/theming": "6.5.15", + "@storybook/ui": "6.5.15", "@types/node": "^14.0.10 || ^16.0.0", "@types/webpack": "^4.41.26", "babel-loader": "^8.0.0", @@ -8642,18 +8643,18 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "dependencies": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -8669,18 +8670,18 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -8702,9 +8703,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -8717,9 +8718,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -8731,9 +8732,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -8758,7 +8759,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -8802,9 +8803,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -8815,9 +8816,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -8832,12 +8833,12 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -8853,12 +8854,12 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -9022,9 +9023,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/terser": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.0.tgz", - "integrity": "sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -9165,24 +9166,24 @@ } }, "node_modules/@storybook/react": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.5.13.tgz", - "integrity": "sha512-4gO8qihEkVZ8RNm9iQd7G2iZz4rRAHizJ6T5m58Sn21fxfyg9zAMzhgd0JzXuPXR8lTTj4AvRyPv1Qx7b43smg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.5.15.tgz", + "integrity": "sha512-iQta2xOs/oK0sw/zpn3g/huvOmvggzi8z2/WholmUmmRiSQRo9lOhRXH0u13T4ja4fEa+u7m58G83xOG6i73Kw==", "dev": true, "dependencies": { "@babel/preset-flow": "^7.12.1", "@babel/preset-react": "^7.12.10", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core": "6.5.13", - "@storybook/core-common": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core": "6.5.15", + "@storybook/core-common": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/docs-tools": "6.5.13", - "@storybook/node-logger": "6.5.13", + "@storybook/docs-tools": "6.5.15", + "@storybook/node-logger": "6.5.15", "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "@types/estree": "^0.0.51", "@types/node": "^14.14.20 || ^16.0.0", "@types/webpack-env": "^1.16.0", @@ -9246,18 +9247,18 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "dependencies": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -9273,18 +9274,18 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -9306,9 +9307,9 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -9321,9 +9322,9 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -9335,9 +9336,9 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -9362,7 +9363,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -9479,9 +9480,9 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -9492,14 +9493,14 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/docs-tools": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.13.tgz", - "integrity": "sha512-hB+hk+895ny4SW84j3X5iV55DHs3bCfTOp7cDdcZJdQrlm0wuDb4A6d4ffNC7ZLh9VkUjU6ST4VEV5Bb0Cptow==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.15.tgz", + "integrity": "sha512-8w78NFOtlJGuIa9vPPsr87J9iQUGmLFh7CrMS2+t9LxW+0oH5MZ8QqPQUHNuTuKsYN3r+QAmmi2pj0auZmCoKA==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "core-js": "^3.8.2", "doctrine": "^3.0.0", "lodash": "^4.17.21", @@ -9511,9 +9512,9 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -9546,12 +9547,12 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -9567,14 +9568,14 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -9598,12 +9599,12 @@ } }, "node_modules/@storybook/react/node_modules/@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -9915,13 +9916,13 @@ } }, "node_modules/@storybook/telemetry": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.13.tgz", - "integrity": "sha512-PFJEfGbunmfFWabD3rdCF8EHH+45578OHOkMPpXJjqXl94vPQxUH2XTVKQgEQJbYrgX0Vx9Z4tSkdMHuzYDbWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.15.tgz", + "integrity": "sha512-WHMRG6xMkEGscn1q4SotwzV8hxM1g3zHyXPN77iosY5zpOIn/qAzvkmW28V1DPH9jPWMZMizBgG1TIQvUpduXg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", - "@storybook/core-common": "6.5.13", + "@storybook/client-logger": "6.5.15", + "@storybook/core-common": "6.5.15", "chalk": "^4.1.0", "core-js": "^3.8.2", "detect-package-manager": "^2.0.1", @@ -9939,9 +9940,9 @@ } }, "node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -9953,9 +9954,9 @@ } }, "node_modules/@storybook/telemetry/node_modules/@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -9980,7 +9981,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -10024,9 +10025,9 @@ } }, "node_modules/@storybook/telemetry/node_modules/@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -10084,20 +10085,20 @@ } }, "node_modules/@storybook/ui": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.13.tgz", - "integrity": "sha512-MklJuSg4Bc+MWjwhZVmZhJaucaeEBUMMa2V9oRWbIgZOdRHqdW72S2vCbaarDAYfBQdnfaoq1GkSQiw+EnWOzA==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.5.13", - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/components": "6.5.13", - "@storybook/core-events": "6.5.13", - "@storybook/router": "6.5.13", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.15.tgz", + "integrity": "sha512-OO+TWZmI8ebWA1C3JBKNvbUbsgvt4GppqsGlkf5CTBZrT/MzmMlYiooLAtlY1ZPcMtTd5ynLxvroHWBEnMOk2A==", + "dev": true, + "dependencies": { + "@storybook/addons": "6.5.15", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/components": "6.5.15", + "@storybook/core-events": "6.5.15", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -10114,18 +10115,18 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "dependencies": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -10141,18 +10142,18 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "dependencies": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -10174,9 +10175,9 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -10189,9 +10190,9 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -10203,14 +10204,14 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/components": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.13.tgz", - "integrity": "sha512-6Hhx70JK5pGfKCkqMU4yq/BBH+vRTmzj7tZKfPwba+f8VmTMoOr/2ysTQFRtXryiHB6Z15xBYgfq5x2pIwQzLQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.15.tgz", + "integrity": "sha512-bHTT0Oa3s4g+MBMaLBbX9ofMtb1AW59AzIUNGrfqW1XqJMGuUHMiJ7TSo+i5dRSFpbFygnwMEG9LfHxpR2Z0Dw==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -10227,9 +10228,9 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -10240,12 +10241,12 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -10261,12 +10262,12 @@ } }, "node_modules/@storybook/ui/node_modules/@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -11093,9 +11094,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", - "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz", + "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==", "dev": true, "dependencies": { "@types/react": "*" @@ -11329,20 +11330,175 @@ } }, "node_modules/@types/wordpress__components": { - "version": "19.3.2", + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/@types/wordpress__components/-/wordpress__components-23.0.0.tgz", + "integrity": "sha512-60S432ZMp9mIv74n+J91fZPFphnSZa6r8r1/QuoNeUHXIFPw3c28hL0kDl3i0GYvYTGlTkbvhGgUJvJA0GMW6g==", "dev": true, - "license": "MIT", "dependencies": { "@types/react": "*", "@types/tinycolor2": "*", "@types/wordpress__components": "*", "@types/wordpress__notices": "*", "@types/wordpress__rich-text": "*", - "@wordpress/element": "^4.1.0", + "@wordpress/element": "^5.0.0", "downshift": "^6.0.15", "re-resizable": "^6.4.0" } }, + "node_modules/@types/wordpress__components/node_modules/@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/wordpress__components/node_modules/@wordpress/element": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.0.0.tgz", + "integrity": "sha512-u1DhVIdb6VEe8wzxKCrLfRWbeFLrlhYTFSOY6yrtl2z9vr9bCdlLp9aAppTxLNUs8cFcdoCEMpakVRYFyfZwTQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@types/react": "^18.0.21", + "@types/react-dom": "^18.0.6", + "@wordpress/escape-html": "^2.23.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/wordpress__components/node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@types/wordpress__components/node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/@types/wordpress__components/node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@types/wordpress__components/node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@types/wordpress__components/node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/wordpress__components/node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/@types/wordpress__components/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@types/wordpress__components/node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@types/wordpress__components/node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@types/wordpress__components/node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/@types/wordpress__components/node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/@types/wordpress__core-data": { "version": "2.4.5", "dev": true, @@ -12455,17 +12611,6 @@ "node": ">=12" } }, - "node_modules/@woocommerce/navigation/node_modules/@wordpress/is-shallow-equal": { - "version": "4.14.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@woocommerce/navigation/node_modules/@wordpress/primitives": { "version": "3.12.0", "dev": true, @@ -12699,22 +12844,22 @@ } }, "node_modules/@wordpress/api-fetch": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.19.0.tgz", - "integrity": "sha512-nidem0S47aulcXzIjy5oQrC/nKrVtSkEEE0nmHQAp/bx2ZYBu7UwByiTfbI3bxLKRPhtdgLBkQfyA7eUlegGPQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.21.0.tgz", + "integrity": "sha512-OfSmuqNOkzDbHr9lxhUjGmyTWncmoGQCK+SvbUPpJLLZyTVzUGObcMWvWkQhKBmnygScF7A/31I24bflLkuvGQ==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.22.0", - "@wordpress/url": "^3.23.0" + "@wordpress/i18n": "^4.24.0", + "@wordpress/url": "^3.25.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/api-fetch/node_modules/@wordpress/url": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.23.0.tgz", - "integrity": "sha512-JBNrzSUg7+b4cpJQjDVTHAw8x77EcdLWOAxLlKqI37Pd2EHUZXWnlVU5EqbNLLhXVJ+/6QMzS3QqNILhjIiqdw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.25.0.tgz", + "integrity": "sha512-2W4CP3Tyj7IRrPTb2XzUUvbckkimcW31v1g9Ly8ud1K0qSO4PvBrVxHfkEemkD9jI/KSvm3iPku++bhKY502wg==", "dependencies": { "@babel/runtime": "^7.16.0", "remove-accents": "^0.4.2" @@ -12745,9 +12890,10 @@ } }, "node_modules/@wordpress/babel-preset-default": { - "version": "6.14.0", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.8.0.tgz", + "integrity": "sha512-phaMgxfJic1t1FS0qfUk+xkg/07/l1FGOxbsmqMmiNp82mwSYMnAaYX8wWLynaBgR6baRskFaXGLpzD1s0fuZA==", "dev": true, - "license": "GPL-2.0-or-later", "dependencies": { "@babel/core": "^7.16.0", "@babel/plugin-transform-react-jsx": "^7.16.0", @@ -12755,25 +12901,192 @@ "@babel/preset-env": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.0", - "@wordpress/babel-plugin-import-jsx-pragma": "^3.2.0", - "@wordpress/browserslist-config": "^4.1.2", - "@wordpress/element": "^4.10.0", - "@wordpress/warning": "^2.12.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.7.0", + "@wordpress/browserslist-config": "^5.7.0", + "@wordpress/element": "^5.1.0", + "@wordpress/warning": "^2.24.0", "browserslist": "^4.17.6", "core-js": "^3.19.1" }, "engines": { - "node": ">=12" + "node": ">=14" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@wordpress/babel-plugin-import-jsx-pragma": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.7.0.tgz", + "integrity": "sha512-I5STe1MCM3z6yV8QyAZPAXe3ahJADAJJsQOYhO/6FEyhToWSMHFqIKRg4qhRQjSvt2dkyL8gqg2cIcjwvVvrcQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": "^7.12.9" } }, "node_modules/@wordpress/babel-preset-default/node_modules/@wordpress/browserslist-config": { - "version": "4.1.3", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.7.0.tgz", + "integrity": "sha512-d0wx5DXjGsMDurijJe006lm4FFKjbj2mM9I3MoXR0HCzMy8xk5fl6ZY2574yx4pea+f/UTKfDBi8ArUvhsjGOA==", "dev": true, - "license": "GPL-2.0-or-later", + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@wordpress/element": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.1.0.tgz", + "integrity": "sha512-Q7kfxl2W6Ht1sfhFYlbVR0tIxDppoCrzpAC+UCYcu3uvw+sXzcTbh/Y2+nl2SaZBxF28eAFottoD3ek1fFJUsg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@types/react": "^18.0.21", + "@types/react-dom": "^18.0.6", + "@wordpress/escape-html": "^2.24.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, "engines": { "node": ">=12" } }, + "node_modules/@wordpress/babel-preset-default/node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/@wordpress/base-styles": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.14.0.tgz", @@ -13203,17 +13516,6 @@ "react": "^17.0.0" } }, - "node_modules/@wordpress/core-data/node_modules/@wordpress/is-shallow-equal": { - "version": "4.14.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/core-data/node_modules/@wordpress/url": { "version": "3.15.0", "dev": true, @@ -13308,16 +13610,6 @@ "react": "^17.0.0" } }, - "node_modules/@wordpress/data/node_modules/@wordpress/is-shallow-equal": { - "version": "4.14.0", - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/date": { "version": "4.14.0", "license": "GPL-2.0-or-later", @@ -13399,20 +13691,6 @@ "puppeteer-core": ">=11" } }, - "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/api-fetch": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.20.0.tgz", - "integrity": "sha512-FZxugM4PZT778I3NZM9z+JmskPG+xCNdAwxFtetjurgMvlflB5dJ8FrXvGNSawA+HONdbK2KTlF4wVAtzkieRA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.23.0", - "@wordpress/url": "^3.24.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/url": { "version": "3.24.0", "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.24.0.tgz", @@ -15470,9 +15748,9 @@ } }, "node_modules/@wordpress/escape-html": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.22.0.tgz", - "integrity": "sha512-GUo6VLugIZxen1rdYuotvz6Vqa+5fNtVelNjXLwDqRu0iY2RXeoTux9V5bZWXPnGb54ryqfYmR4gH6F8xZhWzQ==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.24.0.tgz", + "integrity": "sha512-50EAQmgCVP3Q1i2C2ZVQ+DA1zpvCMrampd/9RrN+tH5QUOz6qW1Y8yqTLofiBQpSTt/oGtJqDnv/dsYie4TPyg==", "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -15522,6 +15800,38 @@ } } }, + "node_modules/@wordpress/eslint-plugin/node_modules/@wordpress/babel-preset-default": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-6.17.0.tgz", + "integrity": "sha512-mBB1KHWT2vN+maKIPYLQSxhhAzW6CNwYiJNRSNaNBALie9TULe7etrnwoZ1eqPVsuYvBlXB4XKcPaSm3/FW+qQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^3.2.0", + "@wordpress/browserslist-config": "^4.1.2", + "@wordpress/element": "^4.13.0", + "@wordpress/warning": "^2.15.0", + "browserslist": "^4.17.6", + "core-js": "^3.19.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@wordpress/browserslist-config": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-4.1.3.tgz", + "integrity": "sha512-M4WQ0C4zCfMWyCmK40git3rfPdNkRwg5boGjoTL4LSdhrY+rtchFAtfOHS9KovAZ5ZzTB0gyZsCu/QKZlPClog==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@wordpress/eslint-plugin/node_modules/globals": { "version": "13.13.0", "dev": true, @@ -15590,8 +15900,9 @@ } }, "node_modules/@wordpress/is-shallow-equal": { - "version": "4.13.0", - "license": "GPL-2.0-or-later", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.24.0.tgz", + "integrity": "sha512-Y61kXn4g3zy5u20EtstvifOjznPCC08Pb1SjJ8QZajGhE4ghy/1q8xpalIkrsCaA+GEVYyq1q5D5rApNnyxKLw==", "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -15986,16 +16297,6 @@ "react": "^17.0.0" } }, - "node_modules/@wordpress/rich-text/node_modules/@wordpress/is-shallow-equal": { - "version": "4.14.0", - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@wordpress/rich-text/node_modules/rememo": { "version": "4.0.1", "license": "MIT" @@ -16407,6 +16708,29 @@ } } }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/babel-preset-default": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-6.17.0.tgz", + "integrity": "sha512-mBB1KHWT2vN+maKIPYLQSxhhAzW6CNwYiJNRSNaNBALie9TULe7etrnwoZ1eqPVsuYvBlXB4XKcPaSm3/FW+qQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^3.2.0", + "@wordpress/browserslist-config": "^4.1.2", + "@wordpress/element": "^4.13.0", + "@wordpress/warning": "^2.15.0", + "browserslist": "^4.17.6", + "core-js": "^3.19.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@wordpress/scripts/node_modules/@wordpress/browserslist-config": { "version": "4.1.3", "dev": true, @@ -17889,8 +18213,9 @@ } }, "node_modules/@wordpress/warning": { - "version": "2.14.0", - "license": "GPL-2.0-or-later", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.24.0.tgz", + "integrity": "sha512-z+sTG5Ml3SivJsV+YAYXYmsh54HLicA5pwzsCzjf852gOhfkaPKxfALvbb4ITx791asNowC8BFb4esIm49ZNQQ==", "engines": { "node": ">=12" } @@ -18019,9 +18344,9 @@ } }, "node_modules/address": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", - "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -24827,9 +25152,9 @@ } }, "node_modules/es6-shim": { - "version": "0.35.6", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", - "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", + "version": "0.35.7", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.7.tgz", + "integrity": "sha512-baZkUfTDSx7X69+NA8imbvGrsPfqH0MX7ADdIDjqwsI8lkTgLIiD2QWrUCSGsUQ0YMnSCA/4pNgSyXdnLHWf3A==", "dev": true }, "node_modules/escalade": { @@ -54180,28 +54505,28 @@ } }, "@storybook/builder-webpack4": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.13.tgz", - "integrity": "sha512-Agqy3IKPv3Nl8QqdS7PjtqLp+c0BD8+/3A2ki/YfKqVz+F+J34EpbZlh3uU053avm1EoNQHSmhZok3ZlWH6O7A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.15.tgz", + "integrity": "sha512-1ZkMECUUdiYplhlgyUF5fqW3XU7eWNDJbuPUguyDOeidgJ111WZzBcLuKj+SNrzdNNgXwROCWAFybiNnX33YHQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", - "@storybook/addons": "6.5.13", - "@storybook/api": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-api": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/components": "6.5.13", - "@storybook/core-common": "6.5.13", - "@storybook/core-events": "6.5.13", - "@storybook/node-logger": "6.5.13", - "@storybook/preview-web": "6.5.13", - "@storybook/router": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/api": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-api": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/components": "6.5.15", + "@storybook/core-common": "6.5.15", + "@storybook/core-events": "6.5.15", + "@storybook/node-logger": "6.5.15", + "@storybook/preview-web": "6.5.15", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.5.13", - "@storybook/theming": "6.5.13", - "@storybook/ui": "6.5.13", + "@storybook/store": "6.5.15", + "@storybook/theming": "6.5.15", + "@storybook/ui": "6.5.15", "@types/node": "^14.0.10 || ^16.0.0", "@types/webpack": "^4.41.26", "autoprefixer": "^9.8.6", @@ -54235,18 +54560,18 @@ }, "dependencies": { "@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "requires": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -54254,18 +54579,18 @@ } }, "@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -54279,14 +54604,14 @@ } }, "@storybook/channel-postmessage": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.13.tgz", - "integrity": "sha512-R79MBs0mQ7TV8M/a6x/SiTRyvZBidDfMEEthG7Cyo9p35JYiKOhj2535zhW4qlVMESBu95pwKYBibTjASoStPw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.15.tgz", + "integrity": "sha512-gMpA8LWT8lC4z5KWnaMh03aazEwtDO7GtY5kZVru+EEMgExGmaR82qgekwmLmgLj2nRJEv0o138o9IqYUcou8w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -54294,9 +54619,9 @@ } }, "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -54305,18 +54630,18 @@ } }, "@storybook/client-api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.13.tgz", - "integrity": "sha512-uH1mAWbidPiuuTdMUVEiuaNOfrYXm+9QLSP1MMYTKULqEOZI5MSOGkEDqRfVWxbYv/iWBOPTQ+OM9TQ6ecYacg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.15.tgz", + "integrity": "sha512-0ZGpRgVz7rdbCguBqBpwObXbsVY5qlSTWDzzIBpmz8EkxW/MtK5wEyeq+0L0O+DTn41FwvH5yCGLAENpzWD8BQ==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", @@ -54333,9 +54658,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -54343,14 +54668,14 @@ } }, "@storybook/components": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.13.tgz", - "integrity": "sha512-6Hhx70JK5pGfKCkqMU4yq/BBH+vRTmzj7tZKfPwba+f8VmTMoOr/2ysTQFRtXryiHB6Z15xBYgfq5x2pIwQzLQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.15.tgz", + "integrity": "sha512-bHTT0Oa3s4g+MBMaLBbX9ofMtb1AW59AzIUNGrfqW1XqJMGuUHMiJ7TSo+i5dRSFpbFygnwMEG9LfHxpR2Z0Dw==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -54359,9 +54684,9 @@ } }, "@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -54386,7 +54711,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -54460,18 +54785,18 @@ } }, "@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -54482,17 +54807,17 @@ } }, "@storybook/preview-web": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.13.tgz", - "integrity": "sha512-GNNYVzw4SmRua3dOc52Ye6Us4iQbq5GKQ56U3iwnzZM3TBdJB+Rft94Fn1/pypHujEHS8hl5Xgp9td6C1lLCow==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.15.tgz", + "integrity": "sha512-gIHABSAD0JS0iRaG67BnSDq/q8Zf4fFwEWBQOSYgcEx2TzhAUeSkhGZUQHdlOTCwuA2PpXT0/cWDH8u2Ev+msg==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -54506,12 +54831,12 @@ } }, "@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -54519,14 +54844,14 @@ } }, "@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -54542,12 +54867,12 @@ } }, "@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -54916,9 +55241,9 @@ "dev": true }, "terser": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.0.tgz", - "integrity": "sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -54980,22 +55305,22 @@ } }, "@storybook/channel-websocket": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.13.tgz", - "integrity": "sha512-kwh667H+tzCiNvs92GNwYOwVXdj9uHZyieRAN5rJtTBJ7XgLzGkpTEU50mWlbc0nDKhgE0qYvzyr5H393Iy5ug==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.15.tgz", + "integrity": "sha512-K85KEgzo5ahzJNJjyUbSNyuRmkeC8glJX2hCg2j9HiJ9rasX53qugkODrKDlWAeheulo3kR13VSuAqIuwVbmbw==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "global": "^4.4.0", "telejson": "^6.0.8" }, "dependencies": { "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55004,9 +55329,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55235,31 +55560,31 @@ } }, "@storybook/core": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.5.13.tgz", - "integrity": "sha512-kw1lCgbsxzUimGww6t5rmuWJmFPe9kGGyzIqvj4RC4BBcEsP40LEu9XhSfvnb8vTOLIULFZeZpdRFfJs4TYbUw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.5.15.tgz", + "integrity": "sha512-T9TjLxbb5P/XvLEoj0dnbtexJa0V3pqCifRlIUNkTJO0nU3PdGLMcKMSyIYWjkthAJ9oBrajnodV0UveM/epTg==", "dev": true, "requires": { - "@storybook/core-client": "6.5.13", - "@storybook/core-server": "6.5.13" + "@storybook/core-client": "6.5.15", + "@storybook/core-server": "6.5.15" } }, "@storybook/core-client": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.13.tgz", - "integrity": "sha512-YuELbRokTBdqjbx/R4/7O4rou9kvbBIOJjlUkor9hdLLuJ3P0yGianERGNkZFfvcfMBAxU0p52o7QvDldSR3kA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.15.tgz", + "integrity": "sha512-i9t4WONy2MxJwLI1FIp5ck7b52EXyJfALnxUn4O/3GTkw09J0NOKi2DPjefUsi7IB5MzFpDjDH9vw/XiTM+OZw==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channel-websocket": "6.5.13", - "@storybook/client-api": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channel-websocket": "6.5.15", + "@storybook/client-api": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/preview-web": "6.5.13", - "@storybook/store": "6.5.13", - "@storybook/ui": "6.5.13", + "@storybook/preview-web": "6.5.15", + "@storybook/store": "6.5.15", + "@storybook/ui": "6.5.15", "airbnb-js-shims": "^2.2.1", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", @@ -55273,18 +55598,18 @@ }, "dependencies": { "@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "requires": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -55292,18 +55617,18 @@ } }, "@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -55317,14 +55642,14 @@ } }, "@storybook/channel-postmessage": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.13.tgz", - "integrity": "sha512-R79MBs0mQ7TV8M/a6x/SiTRyvZBidDfMEEthG7Cyo9p35JYiKOhj2535zhW4qlVMESBu95pwKYBibTjASoStPw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.15.tgz", + "integrity": "sha512-gMpA8LWT8lC4z5KWnaMh03aazEwtDO7GtY5kZVru+EEMgExGmaR82qgekwmLmgLj2nRJEv0o138o9IqYUcou8w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -55332,9 +55657,9 @@ } }, "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55343,18 +55668,18 @@ } }, "@storybook/client-api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.13.tgz", - "integrity": "sha512-uH1mAWbidPiuuTdMUVEiuaNOfrYXm+9QLSP1MMYTKULqEOZI5MSOGkEDqRfVWxbYv/iWBOPTQ+OM9TQ6ecYacg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.15.tgz", + "integrity": "sha512-0ZGpRgVz7rdbCguBqBpwObXbsVY5qlSTWDzzIBpmz8EkxW/MtK5wEyeq+0L0O+DTn41FwvH5yCGLAENpzWD8BQ==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", @@ -55371,9 +55696,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55381,26 +55706,26 @@ } }, "@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/preview-web": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.13.tgz", - "integrity": "sha512-GNNYVzw4SmRua3dOc52Ye6Us4iQbq5GKQ56U3iwnzZM3TBdJB+Rft94Fn1/pypHujEHS8hl5Xgp9td6C1lLCow==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.15.tgz", + "integrity": "sha512-gIHABSAD0JS0iRaG67BnSDq/q8Zf4fFwEWBQOSYgcEx2TzhAUeSkhGZUQHdlOTCwuA2PpXT0/cWDH8u2Ev+msg==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/channel-postmessage": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/channel-postmessage": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -55414,12 +55739,12 @@ } }, "@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -55427,14 +55752,14 @@ } }, "@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -55450,12 +55775,12 @@ } }, "@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -55549,23 +55874,23 @@ } }, "@storybook/core-server": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.13.tgz", - "integrity": "sha512-vs7tu3kAnFwuINio1p87WyqDNlFyZESmeh9s7vvrZVbe/xS/ElqDscr9DT5seW+jbtxufAaHsx+JUTver1dheQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.15.tgz", + "integrity": "sha512-m+pZwHhCjwryeqTptyyKHSbIjnnPGKoRSnkqLTOpKQf8llZMnNQWUFrn4fx6UDKzxFQ2st2+laV8O2QbMs8qwQ==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.5.13", - "@storybook/core-client": "6.5.13", - "@storybook/core-common": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/builder-webpack4": "6.5.15", + "@storybook/core-client": "6.5.15", + "@storybook/core-common": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/csf-tools": "6.5.13", - "@storybook/manager-webpack4": "6.5.13", - "@storybook/node-logger": "6.5.13", + "@storybook/csf-tools": "6.5.15", + "@storybook/manager-webpack4": "6.5.15", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.5.13", - "@storybook/telemetry": "6.5.13", + "@storybook/store": "6.5.15", + "@storybook/telemetry": "6.5.15", "@types/node": "^14.0.10 || ^16.0.0", "@types/node-fetch": "^2.5.7", "@types/pretty-hrtime": "^1.0.0", @@ -55602,18 +55927,18 @@ }, "dependencies": { "@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "requires": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -55621,18 +55946,18 @@ } }, "@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -55646,9 +55971,9 @@ } }, "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55657,9 +55982,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55667,9 +55992,9 @@ } }, "@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -55694,7 +56019,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -55725,18 +56050,18 @@ } }, "@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -55747,12 +56072,12 @@ } }, "@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -55760,14 +56085,14 @@ } }, "@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -55783,12 +56108,12 @@ } }, "@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -55834,9 +56159,9 @@ } }, "@storybook/csf-tools": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.13.tgz", - "integrity": "sha512-63Ev+VmBqzwSwfUzbuXOLKBD5dMTK2zBYLQ9anTVw70FuTikwTsGIbPgb098K0vsxRCgxl7KM7NpivHqtZtdjw==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.15.tgz", + "integrity": "sha512-2LwSD7yE/ccXBc58K4vdKw/oJJg6IpC4WD51rBt2mAl5JUCkxhOq7wG/Z8Wy1lZw2LVuKNTmjVou5blGRI/bTg==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -55883,20 +56208,20 @@ } }, "@storybook/manager-webpack4": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.13.tgz", - "integrity": "sha512-pURzS5W3XM0F7bCBWzpl7TRsuy+OXFwLXiWLaexuvo0POZe31Ueo2A1R4rx3MT5Iee8O9mYvG2XTmvK9MlLefQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.15.tgz", + "integrity": "sha512-zRvBTMoaFO6MvHDsDLnt3tsFENhpY3k+e/UIPdqbIDMbUPGGQzxJucAM9aS/kbVSO5IVs8IflVxbeeB/uTIIfA==", "dev": true, "requires": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.5.13", - "@storybook/core-client": "6.5.13", - "@storybook/core-common": "6.5.13", - "@storybook/node-logger": "6.5.13", - "@storybook/theming": "6.5.13", - "@storybook/ui": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/core-client": "6.5.15", + "@storybook/core-common": "6.5.15", + "@storybook/node-logger": "6.5.15", + "@storybook/theming": "6.5.15", + "@storybook/ui": "6.5.15", "@types/node": "^14.0.10 || ^16.0.0", "@types/webpack": "^4.41.26", "babel-loader": "^8.0.0", @@ -55926,18 +56251,18 @@ }, "dependencies": { "@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "requires": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -55945,18 +56270,18 @@ } }, "@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -55970,9 +56295,9 @@ } }, "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55981,9 +56306,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -55991,9 +56316,9 @@ } }, "@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -56018,7 +56343,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -56049,18 +56374,18 @@ } }, "@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -56071,12 +56396,12 @@ } }, "@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -56084,12 +56409,12 @@ } }, "@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -56207,9 +56532,9 @@ "dev": true }, "terser": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.0.tgz", - "integrity": "sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -56311,24 +56636,24 @@ } }, "@storybook/react": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.5.13.tgz", - "integrity": "sha512-4gO8qihEkVZ8RNm9iQd7G2iZz4rRAHizJ6T5m58Sn21fxfyg9zAMzhgd0JzXuPXR8lTTj4AvRyPv1Qx7b43smg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.5.15.tgz", + "integrity": "sha512-iQta2xOs/oK0sw/zpn3g/huvOmvggzi8z2/WholmUmmRiSQRo9lOhRXH0u13T4ja4fEa+u7m58G83xOG6i73Kw==", "dev": true, "requires": { "@babel/preset-flow": "^7.12.1", "@babel/preset-react": "^7.12.10", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core": "6.5.13", - "@storybook/core-common": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core": "6.5.15", + "@storybook/core-common": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/docs-tools": "6.5.13", - "@storybook/node-logger": "6.5.13", + "@storybook/docs-tools": "6.5.15", + "@storybook/node-logger": "6.5.15", "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "@types/estree": "^0.0.51", "@types/node": "^14.14.20 || ^16.0.0", "@types/webpack-env": "^1.16.0", @@ -56354,18 +56679,18 @@ }, "dependencies": { "@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "requires": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -56373,18 +56698,18 @@ } }, "@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -56398,9 +56723,9 @@ } }, "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -56409,9 +56734,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -56419,9 +56744,9 @@ } }, "@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -56446,7 +56771,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -56525,23 +56850,23 @@ } }, "@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/docs-tools": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.13.tgz", - "integrity": "sha512-hB+hk+895ny4SW84j3X5iV55DHs3bCfTOp7cDdcZJdQrlm0wuDb4A6d4ffNC7ZLh9VkUjU6ST4VEV5Bb0Cptow==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.15.tgz", + "integrity": "sha512-8w78NFOtlJGuIa9vPPsr87J9iQUGmLFh7CrMS2+t9LxW+0oH5MZ8QqPQUHNuTuKsYN3r+QAmmi2pj0auZmCoKA==", "dev": true, "requires": { "@babel/core": "^7.12.10", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/store": "6.5.13", + "@storybook/store": "6.5.15", "core-js": "^3.8.2", "doctrine": "^3.0.0", "lodash": "^4.17.21", @@ -56549,9 +56874,9 @@ } }, "@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -56575,12 +56900,12 @@ } }, "@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -56588,14 +56913,14 @@ } }, "@storybook/store": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.13.tgz", - "integrity": "sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.15.tgz", + "integrity": "sha512-r6cYTf6GtbqgdI4ZG3xuWdJAAu5fJ3xAWMiDkHyoK2u+R2TeYXIsJvgn0BPrW87sZhELIkg4ckdFECmATs3kpQ==", "dev": true, "requires": { - "@storybook/addons": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/addons": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -56611,12 +56936,12 @@ } }, "@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -56807,13 +57132,13 @@ } }, "@storybook/telemetry": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.13.tgz", - "integrity": "sha512-PFJEfGbunmfFWabD3rdCF8EHH+45578OHOkMPpXJjqXl94vPQxUH2XTVKQgEQJbYrgX0Vx9Z4tSkdMHuzYDbWQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.15.tgz", + "integrity": "sha512-WHMRG6xMkEGscn1q4SotwzV8hxM1g3zHyXPN77iosY5zpOIn/qAzvkmW28V1DPH9jPWMZMizBgG1TIQvUpduXg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", - "@storybook/core-common": "6.5.13", + "@storybook/client-logger": "6.5.15", + "@storybook/core-common": "6.5.15", "chalk": "^4.1.0", "core-js": "^3.8.2", "detect-package-manager": "^2.0.1", @@ -56827,9 +57152,9 @@ }, "dependencies": { "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -56837,9 +57162,9 @@ } }, "@storybook/core-common": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.13.tgz", - "integrity": "sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.15.tgz", + "integrity": "sha512-uits9o6qwHTPnjsNZP25f7hWmUBGRJ7FXtxxtEaNSmtiwk50KWxBaro7wt505lJ1Gb9vOhpNPhS7y3IxdsXNmQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -56864,7 +57189,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.5.13", + "@storybook/node-logger": "6.5.15", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10 || ^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -56895,9 +57220,9 @@ } }, "@storybook/node-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.13.tgz", - "integrity": "sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.15.tgz", + "integrity": "sha512-LQjjbfMuUXm7wZTBKb+iGeCNnej4r1Jb2NxG3Svu2bVhaoB6u33jHAcbmhXpXW1jghzW3kQwOU7BoLuJiRRFIw==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -56938,20 +57263,20 @@ } }, "@storybook/ui": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.13.tgz", - "integrity": "sha512-MklJuSg4Bc+MWjwhZVmZhJaucaeEBUMMa2V9oRWbIgZOdRHqdW72S2vCbaarDAYfBQdnfaoq1GkSQiw+EnWOzA==", - "dev": true, - "requires": { - "@storybook/addons": "6.5.13", - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/components": "6.5.13", - "@storybook/core-events": "6.5.13", - "@storybook/router": "6.5.13", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.15.tgz", + "integrity": "sha512-OO+TWZmI8ebWA1C3JBKNvbUbsgvt4GppqsGlkf5CTBZrT/MzmMlYiooLAtlY1ZPcMtTd5ynLxvroHWBEnMOk2A==", + "dev": true, + "requires": { + "@storybook/addons": "6.5.15", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/components": "6.5.15", + "@storybook/core-events": "6.5.15", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -56960,18 +57285,18 @@ }, "dependencies": { "@storybook/addons": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.13.tgz", - "integrity": "sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.15.tgz", + "integrity": "sha512-xT31SuSX+kYGyxCNK2nqL7WTxucs3rSmhiCLovJcUjYk+QquV3c2c53Ki7lwwdDbzfXFcNAe0HJ4hoTN4jhn0Q==", "dev": true, "requires": { - "@storybook/api": "6.5.13", - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/api": "6.5.15", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/router": "6.5.15", + "@storybook/theming": "6.5.15", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -56979,18 +57304,18 @@ } }, "@storybook/api": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.13.tgz", - "integrity": "sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.15.tgz", + "integrity": "sha512-BBE0KXKvj1/3jTghbIoWfrcDM0t+xO7EYtWWAXD6XlhGsZVD2Dy82Z52ONyLulMDRpMWl0OYy3h6A1YnFUH25w==", "dev": true, "requires": { - "@storybook/channels": "6.5.13", - "@storybook/client-logger": "6.5.13", - "@storybook/core-events": "6.5.13", + "@storybook/channels": "6.5.15", + "@storybook/client-logger": "6.5.15", + "@storybook/core-events": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/router": "6.5.13", + "@storybook/router": "6.5.15", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -57004,9 +57329,9 @@ } }, "@storybook/channels": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.13.tgz", - "integrity": "sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.15.tgz", + "integrity": "sha512-gPpsBgirv2NCXbH4WbYqdkI0JLE96aiVuu7UEWfn9yu071pQ9CLHbhXGD9fSFNrfOkyBBY10ppSE7uCXw3Wexg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -57015,9 +57340,9 @@ } }, "@storybook/client-logger": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.13.tgz", - "integrity": "sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.15.tgz", + "integrity": "sha512-0uyxKvodq+FycGv6aUwC1wUR6suXf2+7ywMFAOlYolI4UvNj8NyU/5AfgKT5XnxYAgPmoCiAjOE700TrfHrosw==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -57025,14 +57350,14 @@ } }, "@storybook/components": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.13.tgz", - "integrity": "sha512-6Hhx70JK5pGfKCkqMU4yq/BBH+vRTmzj7tZKfPwba+f8VmTMoOr/2ysTQFRtXryiHB6Z15xBYgfq5x2pIwQzLQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.15.tgz", + "integrity": "sha512-bHTT0Oa3s4g+MBMaLBbX9ofMtb1AW59AzIUNGrfqW1XqJMGuUHMiJ7TSo+i5dRSFpbFygnwMEG9LfHxpR2Z0Dw==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "@storybook/csf": "0.0.2--canary.4566f4d.1", - "@storybook/theming": "6.5.13", + "@storybook/theming": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -57041,21 +57366,21 @@ } }, "@storybook/core-events": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.13.tgz", - "integrity": "sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.15.tgz", + "integrity": "sha512-B1Ba6l5W7MeNclclqMMTMHgYgfdpB5SIhNCQFnzIz8blynzRhNFMdxvbAl6Je5G0S4xydYYd7Lno2kXQebs7HA==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/router": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.13.tgz", - "integrity": "sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.15.tgz", + "integrity": "sha512-9t8rI8t7/Krolau29gsdjdbRQ66orONIyP0efp0EukVgv6reNFzb/U14ARrl0uHys6Tl5Xyece9FoakQUdn8Kg==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -57063,12 +57388,12 @@ } }, "@storybook/theming": { - "version": "6.5.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.13.tgz", - "integrity": "sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==", + "version": "6.5.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.15.tgz", + "integrity": "sha512-pgdW0lVZKKXQ4VhIfLHycMmwFSVOY7vLTKnytag4Y8Yz+aXm0bwDN/QxPntFzDH47F1Rcy2ywNnvty8ooDTvuA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.13", + "@storybook/client-logger": "6.5.15", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7" @@ -57637,9 +57962,9 @@ } }, "@types/react-dom": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", - "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz", + "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==", "dev": true, "requires": { "@types/react": "*" @@ -57842,7 +58167,9 @@ } }, "@types/wordpress__components": { - "version": "19.3.2", + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/@types/wordpress__components/-/wordpress__components-23.0.0.tgz", + "integrity": "sha512-60S432ZMp9mIv74n+J91fZPFphnSZa6r8r1/QuoNeUHXIFPw3c28hL0kDl3i0GYvYTGlTkbvhGgUJvJA0GMW6g==", "dev": true, "requires": { "@types/react": "*", @@ -57850,9 +58177,156 @@ "@types/wordpress__components": "*", "@types/wordpress__notices": "*", "@types/wordpress__rich-text": "*", - "@wordpress/element": "^4.1.0", + "@wordpress/element": "^5.0.0", "downshift": "^6.0.15", "re-resizable": "^6.4.0" + }, + "dependencies": { + "@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@wordpress/element": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.0.0.tgz", + "integrity": "sha512-u1DhVIdb6VEe8wzxKCrLfRWbeFLrlhYTFSOY6yrtl2z9vr9bCdlLp9aAppTxLNUs8cFcdoCEMpakVRYFyfZwTQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.16.0", + "@types/react": "^18.0.21", + "@types/react-dom": "^18.0.6", + "@wordpress/escape-html": "^2.23.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + } } }, "@types/wordpress__core-data": { @@ -58639,13 +59113,6 @@ "@wordpress/primitives": "^3.12.0" } }, - "@wordpress/is-shallow-equal": { - "version": "4.14.0", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.0" - } - }, "@wordpress/primitives": { "version": "3.12.0", "dev": true, @@ -58820,19 +59287,19 @@ } }, "@wordpress/api-fetch": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.19.0.tgz", - "integrity": "sha512-nidem0S47aulcXzIjy5oQrC/nKrVtSkEEE0nmHQAp/bx2ZYBu7UwByiTfbI3bxLKRPhtdgLBkQfyA7eUlegGPQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.21.0.tgz", + "integrity": "sha512-OfSmuqNOkzDbHr9lxhUjGmyTWncmoGQCK+SvbUPpJLLZyTVzUGObcMWvWkQhKBmnygScF7A/31I24bflLkuvGQ==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.22.0", - "@wordpress/url": "^3.23.0" + "@wordpress/i18n": "^4.24.0", + "@wordpress/url": "^3.25.0" }, "dependencies": { "@wordpress/url": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.23.0.tgz", - "integrity": "sha512-JBNrzSUg7+b4cpJQjDVTHAw8x77EcdLWOAxLlKqI37Pd2EHUZXWnlVU5EqbNLLhXVJ+/6QMzS3QqNILhjIiqdw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.25.0.tgz", + "integrity": "sha512-2W4CP3Tyj7IRrPTb2XzUUvbckkimcW31v1g9Ly8ud1K0qSO4PvBrVxHfkEemkD9jI/KSvm3iPku++bhKY502wg==", "requires": { "@babel/runtime": "^7.16.0", "remove-accents": "^0.4.2" @@ -58852,7 +59319,9 @@ "requires": {} }, "@wordpress/babel-preset-default": { - "version": "6.14.0", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.8.0.tgz", + "integrity": "sha512-phaMgxfJic1t1FS0qfUk+xkg/07/l1FGOxbsmqMmiNp82mwSYMnAaYX8wWLynaBgR6baRskFaXGLpzD1s0fuZA==", "dev": true, "requires": { "@babel/core": "^7.16.0", @@ -58861,17 +59330,171 @@ "@babel/preset-env": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.0", - "@wordpress/babel-plugin-import-jsx-pragma": "^3.2.0", - "@wordpress/browserslist-config": "^4.1.2", - "@wordpress/element": "^4.10.0", - "@wordpress/warning": "^2.12.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.7.0", + "@wordpress/browserslist-config": "^5.7.0", + "@wordpress/element": "^5.1.0", + "@wordpress/warning": "^2.24.0", "browserslist": "^4.17.6", "core-js": "^3.19.1" }, "dependencies": { + "@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@wordpress/babel-plugin-import-jsx-pragma": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.7.0.tgz", + "integrity": "sha512-I5STe1MCM3z6yV8QyAZPAXe3ahJADAJJsQOYhO/6FEyhToWSMHFqIKRg4qhRQjSvt2dkyL8gqg2cIcjwvVvrcQ==", + "dev": true, + "requires": {} + }, "@wordpress/browserslist-config": { - "version": "4.1.3", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.7.0.tgz", + "integrity": "sha512-d0wx5DXjGsMDurijJe006lm4FFKjbj2mM9I3MoXR0HCzMy8xk5fl6ZY2574yx4pea+f/UTKfDBi8ArUvhsjGOA==", "dev": true + }, + "@wordpress/element": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.1.0.tgz", + "integrity": "sha512-Q7kfxl2W6Ht1sfhFYlbVR0tIxDppoCrzpAC+UCYcu3uvw+sXzcTbh/Y2+nl2SaZBxF28eAFottoD3ek1fFJUsg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.16.0", + "@types/react": "^18.0.21", + "@types/react-dom": "^18.0.6", + "@wordpress/escape-html": "^2.24.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } } } }, @@ -59219,13 +59842,6 @@ "uuid": "^8.3.0" } }, - "@wordpress/is-shallow-equal": { - "version": "4.14.0", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.0" - } - }, "@wordpress/url": { "version": "3.15.0", "dev": true, @@ -59275,12 +59891,6 @@ "mousetrap": "^1.6.5", "use-memo-one": "^1.1.1" } - }, - "@wordpress/is-shallow-equal": { - "version": "4.14.0", - "requires": { - "@babel/runtime": "^7.16.0" - } } } }, @@ -59356,17 +59966,6 @@ "node-fetch": "^2.6.0" }, "dependencies": { - "@wordpress/api-fetch": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.20.0.tgz", - "integrity": "sha512-FZxugM4PZT778I3NZM9z+JmskPG+xCNdAwxFtetjurgMvlflB5dJ8FrXvGNSawA+HONdbK2KTlF4wVAtzkieRA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.23.0", - "@wordpress/url": "^3.24.0" - } - }, "@wordpress/url": { "version": "3.24.0", "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.24.0.tgz", @@ -60777,9 +61376,9 @@ } }, "@wordpress/escape-html": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.22.0.tgz", - "integrity": "sha512-GUo6VLugIZxen1rdYuotvz6Vqa+5fNtVelNjXLwDqRu0iY2RXeoTux9V5bZWXPnGb54ryqfYmR4gH6F8xZhWzQ==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.24.0.tgz", + "integrity": "sha512-50EAQmgCVP3Q1i2C2ZVQ+DA1zpvCMrampd/9RrN+tH5QUOz6qW1Y8yqTLofiBQpSTt/oGtJqDnv/dsYie4TPyg==", "requires": { "@babel/runtime": "^7.16.0" } @@ -60807,6 +61406,32 @@ "requireindex": "^1.2.0" }, "dependencies": { + "@wordpress/babel-preset-default": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-6.17.0.tgz", + "integrity": "sha512-mBB1KHWT2vN+maKIPYLQSxhhAzW6CNwYiJNRSNaNBALie9TULe7etrnwoZ1eqPVsuYvBlXB4XKcPaSm3/FW+qQ==", + "dev": true, + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^3.2.0", + "@wordpress/browserslist-config": "^4.1.2", + "@wordpress/element": "^4.13.0", + "@wordpress/warning": "^2.15.0", + "browserslist": "^4.17.6", + "core-js": "^3.19.1" + } + }, + "@wordpress/browserslist-config": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-4.1.3.tgz", + "integrity": "sha512-M4WQ0C4zCfMWyCmK40git3rfPdNkRwg5boGjoTL4LSdhrY+rtchFAtfOHS9KovAZ5ZzTB0gyZsCu/QKZlPClog==", + "dev": true + }, "globals": { "version": "13.13.0", "dev": true, @@ -60854,7 +61479,9 @@ } }, "@wordpress/is-shallow-equal": { - "version": "4.13.0", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.24.0.tgz", + "integrity": "sha512-Y61kXn4g3zy5u20EtstvifOjznPCC08Pb1SjJ8QZajGhE4ghy/1q8xpalIkrsCaA+GEVYyq1q5D5rApNnyxKLw==", "requires": { "@babel/runtime": "^7.16.0" } @@ -61121,12 +61748,6 @@ "use-memo-one": "^1.1.1" } }, - "@wordpress/is-shallow-equal": { - "version": "4.14.0", - "requires": { - "@babel/runtime": "^7.16.0" - } - }, "rememo": { "version": "4.0.1" } @@ -61448,6 +62069,26 @@ "dev": true, "requires": {} }, + "@wordpress/babel-preset-default": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-6.17.0.tgz", + "integrity": "sha512-mBB1KHWT2vN+maKIPYLQSxhhAzW6CNwYiJNRSNaNBALie9TULe7etrnwoZ1eqPVsuYvBlXB4XKcPaSm3/FW+qQ==", + "dev": true, + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^3.2.0", + "@wordpress/browserslist-config": "^4.1.2", + "@wordpress/element": "^4.13.0", + "@wordpress/warning": "^2.15.0", + "browserslist": "^4.17.6", + "core-js": "^3.19.1" + } + }, "@wordpress/browserslist-config": { "version": "4.1.3", "dev": true @@ -62378,7 +63019,9 @@ } }, "@wordpress/warning": { - "version": "2.14.0" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.24.0.tgz", + "integrity": "sha512-z+sTG5Ml3SivJsV+YAYXYmsh54HLicA5pwzsCzjf852gOhfkaPKxfALvbb4ITx791asNowC8BFb4esIm49ZNQQ==" }, "@wordpress/wordcount": { "version": "3.13.0", @@ -62460,9 +63103,9 @@ "dev": true }, "address": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", - "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", "dev": true }, "adm-zip": { @@ -67166,9 +67809,9 @@ } }, "es6-shim": { - "version": "0.35.6", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", - "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", + "version": "0.35.7", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.7.tgz", + "integrity": "sha512-baZkUfTDSx7X69+NA8imbvGrsPfqH0MX7ADdIDjqwsI8lkTgLIiD2QWrUCSGsUQ0YMnSCA/4pNgSyXdnLHWf3A==", "dev": true }, "escalade": { diff --git a/package.json b/package.json index b469a1ac539..02f2035e59d 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "@storybook/addon-storysource": "6.5.9", "@storybook/addons": "6.5.9", "@storybook/client-api": "6.5.14", - "@storybook/react": "6.5.13", + "@storybook/react": "6.5.15", "@testing-library/jest-dom": "5.16.4", "@testing-library/react": "12.1.5", "@testing-library/react-hooks": "7.0.2", @@ -120,9 +120,10 @@ "@types/lodash": "4.14.182", "@types/puppeteer": "5.4.6", "@types/react": "17.0.47", - "@types/react-dom": "18.0.9", + "@types/react-dom": "18.0.10", "@types/wordpress__block-editor": "6.0.6", "@types/wordpress__blocks": "11.0.7", + "@types/wordpress__components": "^23.0.0", "@types/wordpress__core-data": "^2.4.5", "@types/wordpress__data": "^6.0.1", "@types/wordpress__data-controls": "2.2.0", @@ -135,8 +136,8 @@ "@woocommerce/e2e-utils": "0.2.0", "@woocommerce/eslint-plugin": "2.2.0", "@woocommerce/woocommerce-rest-api": "1.0.1", - "@wordpress/api-fetch": "6.19.0", - "@wordpress/babel-preset-default": "6.14.0", + "@wordpress/api-fetch": "6.21.0", + "@wordpress/babel-preset-default": "7.8.0", "@wordpress/base-styles": "4.14.0", "@wordpress/block-editor": "8.2.0", "@wordpress/blocks": "11.1.5", @@ -151,7 +152,7 @@ "@wordpress/env": "^4.9.0", "@wordpress/html-entities": "3.24.0", "@wordpress/i18n": "4.24.0", - "@wordpress/is-shallow-equal": "4.13.0", + "@wordpress/is-shallow-equal": "4.24.0", "@wordpress/prettier-config": "1.4.0", "@wordpress/scripts": "22.3.0", "autoprefixer": "10.4.7", diff --git a/phpcs.xml b/phpcs.xml index 23c196507f2..9e07ff8366d 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -9,7 +9,7 @@ - + diff --git a/readme.txt b/readme.txt index 29a42d5900f..0c7fcd218ee 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: automattic, woocommerce, claudiulodro, tiagonoronha, jameskoster, Tags: gutenberg, woocommerce, woo commerce, products, blocks, woocommerce blocks Requires at least: 6.1.1 Tested up to: 6.1.1 -Requires PHP: 7.0 +Requires PHP: 7.2 Stable tag: 9.4.0-dev License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -49,7 +49,7 @@ Use this plugin if you want access to the bleeding edge of available blocks for = Minimum Requirements = * Latest release versions of WordPress and WooCommerce ([read more here](https://developer.woocommerce.com/?p=9998)) -* PHP version 7.0 or greater (PHP 7.4 or greater is recommended) +* PHP version 7.2 or greater (PHP 7.4 or greater is recommended) * MySQL version 5.6 or greater Visit the [WooCommerce server requirements documentation](https://docs.woocommerce.com/document/server-requirements/) for a detailed list of server requirements. @@ -220,6 +220,19 @@ Release and roadmap notes available on the [WooCommerce Developers Blog](https:/ - Change action type name for use shipping as billing option. ([7695](https://github.com/woocommerce/woocommerce-blocks/pull/7695)) - Block Checkout: Apply selected Local Pickup rate to entire order (all packages). ([7484](https://github.com/woocommerce/woocommerce-blocks/pull/7484)) += 8.9.4 - 2023-01-04 = + +#### Bug fixes + +- Fix hangs in the block editor with WordPress 5.8. [#8095](https://github.com/woocommerce/woocommerce-blocks/pull/8095) +- Fix Filter by Attribute block crashing in the editor of WordPress 5.8. [#8101](https://github.com/woocommerce/woocommerce-blocks/pull/8101) + += 8.9.3 - 2023-01-03 = + +#### Bug fixes + +- Fix fatal error in WordPress 5.8 when creating a post or page. [#7496](https://github.com/woocommerce/woocommerce-blocks/pull/7496) + = 8.9.2 - 2022-12-01 = #### Bug Fixes diff --git a/src/BlockTypesController.php b/src/BlockTypesController.php index 615f5894823..0814208ad89 100644 --- a/src/BlockTypesController.php +++ b/src/BlockTypesController.php @@ -164,45 +164,45 @@ protected function get_block_types() { global $pagenow; $block_types = [ + 'ActiveFilters', + 'AllProducts', 'AllReviews', + 'AttributeFilter', + 'ClassicTemplate', + 'CustomerAccount', 'FeaturedCategory', 'FeaturedProduct', + 'FilterWrapper', 'HandpickedProducts', - 'ProductBestSellers', - 'ProductCategories', - 'ProductCategory', - 'ProductNew', - 'ProductOnSale', - 'ProductsByAttribute', - 'ProductTopRated', - 'ReviewsByProduct', - 'ReviewsByCategory', - 'ProductSearch', - 'ProductTag', - 'AllProducts', + 'MiniCart', + 'MiniCartContents', 'PriceFilter', - 'AttributeFilter', - 'StockFilter', - 'RatingFilter', - 'ActiveFilters', - 'ClassicTemplate', 'ProductAddToCart', + 'ProductBestSellers', 'ProductButton', + 'ProductCategories', + 'ProductCategory', 'ProductCategoryList', 'ProductImage', + 'ProductNew', + 'ProductOnSale', 'ProductPrice', + 'ProductQuery', 'ProductRating', 'ProductSaleBadge', + 'ProductSearch', 'ProductSKU', 'ProductStockIndicator', 'ProductSummary', + 'ProductTag', 'ProductTagList', 'ProductTitle', - 'MiniCart', - 'MiniCartContents', - 'ProductQuery', - 'FilterWrapper', - 'CustomerAccount', + 'ProductTopRated', + 'ProductsByAttribute', + 'RatingFilter', + 'ReviewsByCategory', + 'ReviewsByProduct', + 'StockFilter', ]; $block_types = array_merge( $block_types, Cart::get_cart_block_types(), Checkout::get_checkout_block_types() ); diff --git a/src/StoreApi/Routes/V1/AbstractCartRoute.php b/src/StoreApi/Routes/V1/AbstractCartRoute.php index 036d420df73..0b0ff119904 100644 --- a/src/StoreApi/Routes/V1/AbstractCartRoute.php +++ b/src/StoreApi/Routes/V1/AbstractCartRoute.php @@ -193,7 +193,7 @@ protected function get_cart_token_secret() { * @return int */ protected function get_cart_token_expiration() { - return time() + intval( apply_filters( 'wc_session_expiration', 60 * 60 * 48 ) ); + return time() + intval( apply_filters( 'wc_session_expiration', DAY_IN_SECONDS * 2 ) ); } /** diff --git a/tests/e2e/specs/backend/product-query/popular-filters.test.ts b/tests/e2e/specs/backend/product-query/popular-filters.test.ts index 4847883e43b..86bb8241716 100644 --- a/tests/e2e/specs/backend/product-query/popular-filters.test.ts +++ b/tests/e2e/specs/backend/product-query/popular-filters.test.ts @@ -124,14 +124,20 @@ describeOrSkip( GUTENBERG_EDITOR_CONTEXT === 'gutenberg' )( filter: 'Newest', shortcode: '[products orderby="date" order="DESC" limit="9"]', }, - { - filter: 'Best Selling', - shortcode: '[products best_selling="true" limit="9"]', - }, - { - filter: 'Top Rated', - shortcode: '[products top_rated="true" limit="9"]', - }, + /** + * The following tests are commented out because they are flaky + * due to the lack of orders and reviews in the test environment. + * + * @see https://github.com/woocommerce/woocommerce-blocks/issues/8116 + */ + // { + // filter: 'Best Selling', + // shortcode: '[products best_selling="true" limit="9"]', + // }, + // { + // filter: 'Top Rated', + // shortcode: '[products top_rated="true" limit="9"]', + // }, ] )( '$filter', ( { filter, shortcode } ) => { beforeEach( async () => { await selectPopularFilter( filter ); diff --git a/tests/e2e/specs/shopper/filter-products-by-attribute.test.ts b/tests/e2e/specs/shopper/filter-products-by-attribute.test.ts index f9bfd49982b..2647ad8b908 100644 --- a/tests/e2e/specs/shopper/filter-products-by-attribute.test.ts +++ b/tests/e2e/specs/shopper/filter-products-by-attribute.test.ts @@ -246,12 +246,15 @@ describe( `${ block.name } Block`, () => { await insertBlock( block.name ); await page.waitForNetworkIdle(); + await canvas().waitForSelector( + block.selectors.editor.firstAttributeInTheList + ); // It seems that .click doesn't work well with radio input element. - await page.$eval( + await canvas().$eval( block.selectors.editor.firstAttributeInTheList, ( el ) => ( el as HTMLInputElement ).click() ); - await page.click( selectors.editor.doneButton ); + await canvas().click( selectors.editor.doneButton ); await publishPost(); editorPageUrl = page.url(); diff --git a/tests/e2e/specs/shopper/filter-products-by-rating.test.ts b/tests/e2e/specs/shopper/filter-products-by-rating.test.ts index 443a35cf6a8..610f9b1cdec 100644 --- a/tests/e2e/specs/shopper/filter-products-by-rating.test.ts +++ b/tests/e2e/specs/shopper/filter-products-by-rating.test.ts @@ -265,6 +265,7 @@ describe( `${ block.name } Block`, () => { it( 'should refresh the page only if the user click on button', async () => { await page.goto( editorPageUrl ); + await waitForCanvas(); await ensureSidebarOpened(); await selectBlockByName( block.slug ); await setCheckbox( diff --git a/tests/e2e/specs/shopper/filter-products-by-stock.test.ts b/tests/e2e/specs/shopper/filter-products-by-stock.test.ts index b1558a9d4ce..d5cc56098c6 100644 --- a/tests/e2e/specs/shopper/filter-products-by-stock.test.ts +++ b/tests/e2e/specs/shopper/filter-products-by-stock.test.ts @@ -271,6 +271,7 @@ describe( `${ block.name } Block`, () => { it( 'should refresh the page only if the user clicks on button', async () => { await page.goto( editorPageUrl ); + await waitForCanvas(); await ensureSidebarOpened(); await selectBlockByName( block.slug ); await setCheckbox( diff --git a/tests/e2e/utils.js b/tests/e2e/utils.js index 077ed862419..a67a185230c 100644 --- a/tests/e2e/utils.js +++ b/tests/e2e/utils.js @@ -66,7 +66,7 @@ const SELECTORS = { }, templateEditor: { editButton: - '.edit-site-layout__edit-button[aria-label="Open the editor"]', + '.edit-site-site-hub__edit-button[aria-label="Open the editor"]', }, }; diff --git a/tests/utils/find-tools-panel-with-title.ts b/tests/utils/find-tools-panel-with-title.ts index 9620d217dd1..ca22aedb85a 100644 --- a/tests/utils/find-tools-panel-with-title.ts +++ b/tests/utils/find-tools-panel-with-title.ts @@ -1,10 +1,5 @@ -/** - * External dependencies - */ -import { canvas } from '@wordpress/e2e-test-utils'; - export const findToolsPanelWithTitle = async ( panelTitle: string ) => { const panelToggleSelector = `//div[contains(@class, "components-tools-panel-header")]//h2[contains(@class, "components-heading") and contains(text(),"${ panelTitle }")]`; const panelSelector = `${ panelToggleSelector }/ancestor::*[contains(concat(" ", @class, " "), " components-tools-panel ")]`; - return await canvas().waitForXPath( panelSelector ); + return await page.waitForXPath( panelSelector ); }; diff --git a/tests/utils/get-form-element-id-by-label.ts b/tests/utils/get-form-element-id-by-label.ts index c3400b80663..f107cff491b 100644 --- a/tests/utils/get-form-element-id-by-label.ts +++ b/tests/utils/get-form-element-id-by-label.ts @@ -1,8 +1,3 @@ -/** - * External dependencies - */ -import { canvas } from '@wordpress/e2e-test-utils'; - export const getFormElementIdByLabel = async ( text: string, className: string @@ -10,11 +5,11 @@ export const getFormElementIdByLabel = async ( // Remove leading dot if className is passed with it. className = className.replace( /^\./, '' ); - const labelElement = await canvas().waitForXPath( + const labelElement = await page.waitForXPath( `//label[contains(text(), "${ text }") and contains(@class, "${ className }")]`, { visible: true } ); - return await canvas().evaluate( + return await page.evaluate( ( label ) => `#${ label.getAttribute( 'for' ) }`, labelElement ); diff --git a/tests/utils/get-toggle-id-by-label.ts b/tests/utils/get-toggle-id-by-label.ts index 814204e6bf2..d67c7f4092b 100644 --- a/tests/utils/get-toggle-id-by-label.ts +++ b/tests/utils/get-toggle-id-by-label.ts @@ -1,8 +1,3 @@ -/** - * External dependencies - */ -import { canvas } from '@wordpress/e2e-test-utils'; - /** * Internal dependencies */ @@ -26,12 +21,12 @@ export const getToggleIdByLabel = async ( ): Promise< string > => { const delay = 1000; // Wait a bit for toggle to finish rerendering. - await canvas().waitForTimeout( delay ); + await page.waitForTimeout( delay ); const checkboxId = await getFormElementIdByLabel( label, 'components-toggle-control__label' ); - const checkbox = await canvas().$( checkboxId ); + const checkbox = await page.$( checkboxId ); if ( ! checkbox ) { if ( retry * delay < DEFAULT_TIMEOUT ) { return await getToggleIdByLabel( label, retry + 1 ); diff --git a/woocommerce-gutenberg-products-block.php b/woocommerce-gutenberg-products-block.php index a2d97a399c1..d6c179c044f 100644 --- a/woocommerce-gutenberg-products-block.php +++ b/woocommerce-gutenberg-products-block.php @@ -8,7 +8,7 @@ * Author URI: https://woocommerce.com * Text Domain: woo-gutenberg-products-block * Requires at least: 6.1.1 - * Requires PHP: 7.0 + * Requires PHP: 7.2 * WC requires at least: 7.1 * WC tested up to: 7.2 *