From 47f71aaacb18938e2bccd8a1a325ea9210e822de Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Sat, 17 Oct 2026 03:46:05 +0000 Subject: [PATCH 1/9] Fix per-block Site Editor schema fetches with shared core-data resolution --- assets/src/js/bindings/hooks.js | 101 ++++++------ tests/js/bindings/hooks.test.js | 270 ++++++++++++-------------------- 2 files changed, 145 insertions(+), 226 deletions(-) diff --git a/assets/src/js/bindings/hooks.js b/assets/src/js/bindings/hooks.js index 62232f57..58b877b8 100644 --- a/assets/src/js/bindings/hooks.js +++ b/assets/src/js/bindings/hooks.js @@ -2,12 +2,10 @@ * Custom hooks for block bindings */ -import { useState, useEffect } from '@wordpress/element'; -import { useSelect } from '@wordpress/data'; +import { useState, useEffect, useMemo, useCallback } from '@wordpress/element'; +import { useSelect, useDispatch } from '@wordpress/data'; import { store as coreDataStore } from '@wordpress/core-data'; import { store as editorStore } from '@wordpress/editor'; -import apiFetch from '@wordpress/api-fetch'; -import { addQueryArgs } from '@wordpress/url'; import { extractPostTypeFromTemplate, formatFieldGroupsData } from './utils'; import { addFieldMetadata } from './fieldMetadataCache'; @@ -94,63 +92,58 @@ export function usePostEditorFields() { * * @since 6.7.0 * @param {string|null} postType The post type to fetch fields for. - * @return {Object} Object containing fields, isLoading, and error. + * @return {Object} Fields, loading/error state, and an explicit refresh callback. */ export function useSiteEditorFields( postType ) { - const [ fields, setFields ] = useState( {} ); - const [ isLoading, setIsLoading ] = useState( false ); - const [ error, setError ] = useState( null ); - - useEffect( () => { - if ( ! postType ) { - setFields( {} ); - setIsLoading( false ); - setError( null ); - return; - } - - let isCancelled = false; - setIsLoading( true ); - setError( null ); - - const fetchFields = async () => { - try { - const path = addQueryArgs( `/wp/v2/types/${ postType }`, { - context: 'edit', - } ); - - const postTypeData = await apiFetch( { path } ); - - if ( isCancelled ) { - return; - } - - const fieldsMap = formatFieldGroupsData( - postTypeData.scf_field_groups - ); + const args = useMemo( + () => [ 'root', 'postType', postType, { context: 'edit' } ], + [ postType ] + ); + const { invalidateResolution } = useDispatch( coreDataStore ); + const { record, isLoading, error } = useSelect( + ( select ) => { + if ( ! postType ) { + return { record: null, isLoading: false, error: null }; + } - // Store field metadata in the data store - addFieldMetadata( fieldsMap ); + const core = select( coreDataStore ); + const postTypeRecord = core.getEntityRecord( ...args ); + const resolutionError = + core.getResolutionError( 'getEntityRecord', args ) || null; - setFields( fieldsMap ); - setIsLoading( false ); - } catch ( err ) { - if ( ! isCancelled ) { - setError( err ); - setIsLoading( false ); - } - } - }; + return { + record: postTypeRecord, + isLoading: + ! resolutionError && + ! core.hasFinishedResolution( 'getEntityRecord', args ), + error: resolutionError, + }; + }, + [ postType, args ] + ); + const fields = useMemo( + () => + formatFieldGroupsData( + ! isLoading && ! error ? record?.scf_field_groups : null + ), + [ record, isLoading, error ] + ); - fetchFields(); + useEffect( () => { + if ( record && ! isLoading && ! error ) { + addFieldMetadata( fields ); + } + }, [ record, fields, isLoading, error ] ); - // Cleanup function to prevent state updates after unmount - return () => { - isCancelled = true; - }; - }, [ postType ] ); + // One consumer must not cancel work shared by the rest of the registry. + // Explicit invalidation also permits retry without a per-mount retry storm. + const refresh = useCallback( () => { + if ( postType ) { + invalidateResolution( 'getEntityRecord', args ); + } + }, [ postType, args, invalidateResolution ] ); - return { fields, isLoading, error }; + return { fields, isLoading, error, refresh }; } /** diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index ffe75e52..a54cfdfa 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -2,8 +2,8 @@ * Unit tests for custom hooks */ -import { renderHook, waitFor } from '@testing-library/react'; -import { useSelect } from '@wordpress/data'; +import { renderHook } from '@testing-library/react'; +import { useSelect, useDispatch } from '@wordpress/data'; import apiFetch from '@wordpress/api-fetch'; // Mock the fieldMetadataCache module @@ -265,209 +265,135 @@ describe( 'Custom Hooks', () => { } ); describe( 'useSiteEditorFields', () => { - const mockFieldGroups = [ + const groups = [ { - title: 'Group 1', - fields: [ - { name: 'field1', label: 'Field 1', type: 'text' }, - { name: 'field2', label: 'Field 2', type: 'textarea' }, - ], + title: 'Group', + fields: [ { name: 'field1', label: 'Field 1', type: 'text' } ], }, ]; + let core, invalidateResolution; + + beforeEach( () => { + core = { + getEntityRecord: jest.fn( () => ( { + scf_field_groups: groups, + } ) ), + getResolutionError: jest.fn( () => null ), + hasFinishedResolution: jest.fn( () => true ), + }; + invalidateResolution = jest.fn(); + useDispatch.mockReturnValue( { invalidateResolution } ); + useSelect.mockImplementation( ( callback ) => + callback( () => core ) + ); + } ); - it( 'should fetch fields for a post type', async () => { - apiFetch.mockResolvedValue( { - scf_field_groups: mockFieldGroups, - } ); - + it( 'uses the shared edit-context entity and preserves field metadata', () => { const { result } = renderHook( () => useSiteEditorFields( 'product' ) ); - - expect( result.current.isLoading ).toBe( true ); - - await waitFor( () => { - expect( result.current.isLoading ).toBe( false ); - } ); - + expect( core.getEntityRecord ).toHaveBeenCalledWith( + 'root', + 'postType', + 'product', + { context: 'edit' } + ); expect( result.current.fields ).toEqual( { field1: { label: 'Field 1', type: 'text' }, - field2: { label: 'Field 2', type: 'textarea' }, } ); - + expect( result.current.isLoading ).toBe( false ); expect( result.current.error ).toBeNull(); - expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalled(); - } ); - - it( 'should handle API errors', async () => { - const error = new Error( 'API Error' ); - apiFetch.mockRejectedValue( error ); - - const { result } = renderHook( () => - useSiteEditorFields( 'product' ) + expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalledWith( + result.current.fields ); - - await waitFor( () => { - expect( result.current.isLoading ).toBe( false ); - } ); - - expect( result.current.fields ).toEqual( {} ); - expect( result.current.error ).toBe( error ); - } ); - - it( 'should reset when post type is null', () => { + expect( apiFetch ).not.toHaveBeenCalled(); + } ); + + it.each( [ 1, 10, 50, 200 ] )( + 'never starts a private fetch for %i consumers', + ( count ) => { + const consumers = Array.from( { length: count }, () => + renderHook( () => useSiteEditorFields( 'product' ) ) + ); + expect( apiFetch ).not.toHaveBeenCalled(); + consumers.forEach( ( { unmount } ) => unmount() ); + expect( invalidateResolution ).not.toHaveBeenCalled(); + } + ); + + it( 'does no lookup or refresh for a null type', () => { const { result } = renderHook( () => useSiteEditorFields( null ) ); - + result.current.refresh(); + expect( core.getEntityRecord ).not.toHaveBeenCalled(); expect( result.current.fields ).toEqual( {} ); expect( result.current.isLoading ).toBe( false ); - expect( result.current.error ).toBeNull(); - } ); - - it( 'should call apiFetch with correct parameters', async () => { - apiFetch.mockResolvedValue( { - scf_field_groups: mockFieldGroups, - } ); - - renderHook( () => useSiteEditorFields( 'product' ) ); - - await waitFor( () => { - expect( apiFetch ).toHaveBeenCalledWith( { - path: '/wp/v2/types/product?context=edit', - } ); - } ); - } ); - - it( 'should update when post type changes', async () => { - apiFetch.mockResolvedValue( { - scf_field_groups: mockFieldGroups, - } ); - - const { rerender } = renderHook( - ( { postType } ) => useSiteEditorFields( postType ), - { initialProps: { postType: 'product' } } - ); - - await waitFor( () => { - expect( apiFetch ).toHaveBeenCalledWith( { - path: '/wp/v2/types/product?context=edit', - } ); - } ); - - apiFetch.mockClear(); - - rerender( { postType: 'book' } ); - - await waitFor( () => { - expect( apiFetch ).toHaveBeenCalledWith( { - path: '/wp/v2/types/book?context=edit', - } ); - } ); + expect( invalidateResolution ).not.toHaveBeenCalled(); } ); - it( 'should handle empty scf_field_groups', async () => { - apiFetch.mockResolvedValue( { - scf_field_groups: [], - } ); - - const { result } = renderHook( () => + it( 'hides old fields while a resolution is unfinished or failed', () => { + core.hasFinishedResolution.mockReturnValue( false ); + const { result, rerender } = renderHook( () => useSiteEditorFields( 'product' ) ); - - await waitFor( () => { - expect( result.current.isLoading ).toBe( false ); - } ); - + expect( result.current.isLoading ).toBe( true ); expect( result.current.fields ).toEqual( {} ); - expect( result.current.error ).toBeNull(); - } ); - - it( 'should handle missing scf_field_groups in response', async () => { - apiFetch.mockResolvedValue( {} ); - - const { result } = renderHook( () => - useSiteEditorFields( 'product' ) - ); - - await waitFor( () => { - expect( result.current.isLoading ).toBe( false ); - } ); - + const error = new Error( 'Temporary failure' ); + core.getResolutionError.mockReturnValue( error ); + rerender(); + expect( result.current.isLoading ).toBe( false ); + expect( result.current.error ).toBe( error ); expect( result.current.fields ).toEqual( {} ); + expect( + fieldMetadataCache.addFieldMetadata + ).not.toHaveBeenCalled(); } ); - it( 'should cancel fetch on unmount', async () => { - // Use a promise that we can control - let resolvePromise; - const fetchPromise = new Promise( ( resolve ) => { - resolvePromise = resolve; - } ); - apiFetch.mockReturnValue( fetchPromise ); - - const { unmount } = renderHook( () => + it( 'refreshes exactly the shared resolution without automatic retries', () => { + core.getResolutionError.mockReturnValue( new Error( 'Failure' ) ); + const { result, rerender } = renderHook( () => useSiteEditorFields( 'product' ) ); - - // Unmount before the fetch resolves - unmount(); - - // Resolve the fetch after unmount - resolvePromise( { scf_field_groups: mockFieldGroups } ); - - // Wait a tick to ensure any state updates would have happened - await new Promise( ( resolve ) => setTimeout( resolve, 0 ) ); - - // If cleanup worked correctly, no state update errors should occur - // Verify test completed by checking unmount didn't throw - expect( true ).toBe( true ); + rerender(); + expect( invalidateResolution ).not.toHaveBeenCalled(); + result.current.refresh(); + expect( invalidateResolution ).toHaveBeenCalledTimes( 1 ); + expect( invalidateResolution ).toHaveBeenCalledWith( + 'getEntityRecord', + [ 'root', 'postType', 'product', { context: 'edit' } ] + ); } ); - it( 'should handle post type changing from value to null', async () => { - apiFetch.mockResolvedValue( { - scf_field_groups: mockFieldGroups, - } ); - + it( 'switches keys immediately and does not apply an old type result', () => { + core.getEntityRecord.mockImplementation( ( kind, name, type ) => + type === 'product' ? { scf_field_groups: groups } : undefined + ); + core.hasFinishedResolution.mockImplementation( + ( selector, args ) => args[ 2 ] === 'product' + ); const { result, rerender } = renderHook( - ( { postType } ) => useSiteEditorFields( postType ), - { initialProps: { postType: 'product' } } + ( { type } ) => useSiteEditorFields( type ), + { initialProps: { type: 'product' } } ); - - await waitFor( () => { - expect( result.current.isLoading ).toBe( false ); - } ); - - expect( result.current.fields ).toEqual( { - field1: { label: 'Field 1', type: 'text' }, - field2: { label: 'Field 2', type: 'textarea' }, - } ); - - // Change to null - rerender( { postType: null } ); - + expect( result.current.fields ).toHaveProperty( 'field1' ); + rerender( { type: 'book' } ); + expect( result.current.fields ).toEqual( {} ); + expect( result.current.isLoading ).toBe( true ); + rerender( { type: null } ); expect( result.current.fields ).toEqual( {} ); expect( result.current.isLoading ).toBe( false ); - expect( result.current.error ).toBeNull(); } ); - it( 'should store field metadata in cache on successful fetch', async () => { - apiFetch.mockResolvedValue( { - scf_field_groups: mockFieldGroups, - } ); - - const { result } = renderHook( () => - useSiteEditorFields( 'product' ) - ); - - await waitFor( () => { - expect( result.current.isLoading ).toBe( false ); - } ); - - expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalledWith( - { - field1: { label: 'Field 1', type: 'text' }, - field2: { label: 'Field 2', type: 'textarea' }, - } - ); - } ); + it.each( [ {}, { scf_field_groups: [] } ] )( + 'handles empty/missing field groups', + ( record ) => { + core.getEntityRecord.mockReturnValue( record ); + const { result } = renderHook( () => + useSiteEditorFields( 'product' ) + ); + expect( result.current.fields ).toEqual( {} ); + expect( result.current.error ).toBeNull(); + } + ); } ); describe( 'useBoundFields', () => { From 86e58c00c0d5f2231b30086a372daa834aa3fea4 Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Sat, 17 Oct 2026 04:25:23 +0000 Subject: [PATCH 2/9] Preserve field-format failures as hook error state --- assets/src/js/bindings/hooks.js | 25 +++++++++++++++---------- tests/js/bindings/hooks.test.js | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/assets/src/js/bindings/hooks.js b/assets/src/js/bindings/hooks.js index 58b877b8..7b3e7f76 100644 --- a/assets/src/js/bindings/hooks.js +++ b/assets/src/js/bindings/hooks.js @@ -121,19 +121,24 @@ export function useSiteEditorFields( postType ) { }, [ postType, args ] ); - const fields = useMemo( - () => - formatFieldGroupsData( - ! isLoading && ! error ? record?.scf_field_groups : null - ), - [ record, isLoading, error ] - ); + const { fields, error: fieldsError } = useMemo( () => { + try { + return { + fields: formatFieldGroupsData( + ! isLoading && ! error ? record?.scf_field_groups : null + ), + error, + }; + } catch ( formatError ) { + return { fields: {}, error: formatError }; + } + }, [ record, isLoading, error ] ); useEffect( () => { - if ( record && ! isLoading && ! error ) { + if ( record && ! isLoading && ! fieldsError ) { addFieldMetadata( fields ); } - }, [ record, fields, isLoading, error ] ); + }, [ record, fields, isLoading, fieldsError ] ); // One consumer must not cancel work shared by the rest of the registry. // Explicit invalidation also permits retry without a per-mount retry storm. @@ -143,7 +148,7 @@ export function useSiteEditorFields( postType ) { } }, [ postType, args, invalidateResolution ] ); - return { fields, isLoading, error, refresh }; + return { fields, isLoading, error: fieldsError, refresh }; } /** diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index a54cfdfa..435c811c 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -383,6 +383,21 @@ describe( 'Custom Hooks', () => { expect( result.current.isLoading ).toBe( false ); } ); + it( 'keeps malformed field data errors out of the render path', () => { + core.getEntityRecord.mockReturnValue( { + scf_field_groups: [ null ], + } ); + const { result } = renderHook( () => + useSiteEditorFields( 'product' ) + ); + expect( result.current.fields ).toEqual( {} ); + expect( result.current.error ).toBeInstanceOf( TypeError ); + expect( result.current.isLoading ).toBe( false ); + expect( + fieldMetadataCache.addFieldMetadata + ).not.toHaveBeenCalled(); + } ); + it.each( [ {}, { scf_field_groups: [] } ] )( 'handles empty/missing field groups', ( record ) => { From 06d5b43d366c0c62e1ada4dd91aa59786056337d Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Sat, 17 Oct 2026 11:13:52 +0000 Subject: [PATCH 3/9] Share core's native post-type resolver identity for edit schema metadata --- assets/src/js/bindings/hooks.js | 16 ++++++++-------- tests/js/bindings/hooks.test.js | 23 +++++++++-------------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/assets/src/js/bindings/hooks.js b/assets/src/js/bindings/hooks.js index 7b3e7f76..43f2b2cf 100644 --- a/assets/src/js/bindings/hooks.js +++ b/assets/src/js/bindings/hooks.js @@ -95,10 +95,10 @@ export function usePostEditorFields() { * @return {Object} Fields, loading/error state, and an explicit refresh callback. */ export function useSiteEditorFields( postType ) { - const args = useMemo( - () => [ 'root', 'postType', postType, { context: 'edit' } ], - [ postType ] - ); + // Match core's getPostType selector/resolver identity, not just its REST URL. + // root/postType defaults to edit context; a separate getEntityRecord key + // would request that same schema again alongside native editor consumers. + const args = useMemo( () => [ postType ], [ postType ] ); const { invalidateResolution } = useDispatch( coreDataStore ); const { record, isLoading, error } = useSelect( ( select ) => { @@ -107,15 +107,15 @@ export function useSiteEditorFields( postType ) { } const core = select( coreDataStore ); - const postTypeRecord = core.getEntityRecord( ...args ); + const postTypeRecord = core.getPostType( ...args ); const resolutionError = - core.getResolutionError( 'getEntityRecord', args ) || null; + core.getResolutionError( 'getPostType', args ) || null; return { record: postTypeRecord, isLoading: ! resolutionError && - ! core.hasFinishedResolution( 'getEntityRecord', args ), + ! core.hasFinishedResolution( 'getPostType', args ), error: resolutionError, }; }, @@ -144,7 +144,7 @@ export function useSiteEditorFields( postType ) { // Explicit invalidation also permits retry without a per-mount retry storm. const refresh = useCallback( () => { if ( postType ) { - invalidateResolution( 'getEntityRecord', args ); + invalidateResolution( 'getPostType', args ); } }, [ postType, args, invalidateResolution ] ); diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index 435c811c..bdd9be23 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -275,7 +275,7 @@ describe( 'Custom Hooks', () => { beforeEach( () => { core = { - getEntityRecord: jest.fn( () => ( { + getPostType: jest.fn( () => ( { scf_field_groups: groups, } ) ), getResolutionError: jest.fn( () => null ), @@ -292,12 +292,7 @@ describe( 'Custom Hooks', () => { const { result } = renderHook( () => useSiteEditorFields( 'product' ) ); - expect( core.getEntityRecord ).toHaveBeenCalledWith( - 'root', - 'postType', - 'product', - { context: 'edit' } - ); + expect( core.getPostType ).toHaveBeenCalledWith( 'product' ); expect( result.current.fields ).toEqual( { field1: { label: 'Field 1', type: 'text' }, } ); @@ -324,7 +319,7 @@ describe( 'Custom Hooks', () => { it( 'does no lookup or refresh for a null type', () => { const { result } = renderHook( () => useSiteEditorFields( null ) ); result.current.refresh(); - expect( core.getEntityRecord ).not.toHaveBeenCalled(); + expect( core.getPostType ).not.toHaveBeenCalled(); expect( result.current.fields ).toEqual( {} ); expect( result.current.isLoading ).toBe( false ); expect( invalidateResolution ).not.toHaveBeenCalled(); @@ -358,17 +353,17 @@ describe( 'Custom Hooks', () => { result.current.refresh(); expect( invalidateResolution ).toHaveBeenCalledTimes( 1 ); expect( invalidateResolution ).toHaveBeenCalledWith( - 'getEntityRecord', - [ 'root', 'postType', 'product', { context: 'edit' } ] + 'getPostType', + [ 'product' ] ); } ); it( 'switches keys immediately and does not apply an old type result', () => { - core.getEntityRecord.mockImplementation( ( kind, name, type ) => + core.getPostType.mockImplementation( ( type ) => type === 'product' ? { scf_field_groups: groups } : undefined ); core.hasFinishedResolution.mockImplementation( - ( selector, args ) => args[ 2 ] === 'product' + ( selector, args ) => args[ 0 ] === 'product' ); const { result, rerender } = renderHook( ( { type } ) => useSiteEditorFields( type ), @@ -384,7 +379,7 @@ describe( 'Custom Hooks', () => { } ); it( 'keeps malformed field data errors out of the render path', () => { - core.getEntityRecord.mockReturnValue( { + core.getPostType.mockReturnValue( { scf_field_groups: [ null ], } ); const { result } = renderHook( () => @@ -401,7 +396,7 @@ describe( 'Custom Hooks', () => { it.each( [ {}, { scf_field_groups: [] } ] )( 'handles empty/missing field groups', ( record ) => { - core.getEntityRecord.mockReturnValue( record ); + core.getPostType.mockReturnValue( record ); const { result } = renderHook( () => useSiteEditorFields( 'product' ) ); From 184fa1cec8ea4ba72cc5cce4ca281e381d4848c0 Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Sat, 17 Oct 2026 15:57:43 +0000 Subject: [PATCH 4/9] Preserve stored Site Editor fields during schema refresh Ignore malformed field-group entries without dropping valid siblings or converting formatting failures into fetch errors. Keep cached fields during refetch, simplify resolution arguments, and retain explicit refresh and sticky error behavior. hasFinishedResolution includes error in @wordpress/data 10.32.0 and the WordPress 6.2 bundle (data 8.3.4); error metadata dates to data 6.3.0. Keep the resolver comment scoped to the getPostType identity rather than implying shared getEntityRecord resolution metadata. Validate the staged tree: 38 suites / 966 tests pass. Leave useSiteEditorContext and usePostEditorFields unchanged. Their existing lint findings remain for separate cleanup. --- assets/src/js/bindings/hooks.js | 52 ++++++++++++++------------------- assets/src/js/bindings/utils.js | 11 ++++--- tests/js/bindings/hooks.test.js | 45 +++++++++++++++++++++------- tests/js/bindings/utils.test.js | 35 ++++++++++++++++++++++ 4 files changed, 99 insertions(+), 44 deletions(-) diff --git a/assets/src/js/bindings/hooks.js b/assets/src/js/bindings/hooks.js index 43f2b2cf..8f134529 100644 --- a/assets/src/js/bindings/hooks.js +++ b/assets/src/js/bindings/hooks.js @@ -95,11 +95,10 @@ export function usePostEditorFields() { * @return {Object} Fields, loading/error state, and an explicit refresh callback. */ export function useSiteEditorFields( postType ) { - // Match core's getPostType selector/resolver identity, not just its REST URL. - // root/postType defaults to edit context; a separate getEntityRecord key - // would request that same schema again alongside native editor consumers. - const args = useMemo( () => [ postType ], [ postType ] ); const { invalidateResolution } = useDispatch( coreDataStore ); + // Share one getPostType resolution per type within this registry. + // root/postType records default to context=edit, which includes + // scf_field_groups; use the same selector key for status and refresh. const { record, isLoading, error } = useSelect( ( select ) => { if ( ! postType ) { @@ -107,48 +106,41 @@ export function useSiteEditorFields( postType ) { } const core = select( coreDataStore ); - const postTypeRecord = core.getPostType( ...args ); - const resolutionError = - core.getResolutionError( 'getPostType', args ) || null; return { - record: postTypeRecord, - isLoading: - ! resolutionError && - ! core.hasFinishedResolution( 'getPostType', args ), - error: resolutionError, + record: core.getPostType( postType ), + isLoading: ! core.hasFinishedResolution( 'getPostType', [ + postType, + ] ), + error: + core.getResolutionError( 'getPostType', [ postType ] ) || + null, }; }, - [ postType, args ] + [ postType ] + ); + + // Keep the stored fields visible while a refetch is in progress. + const fields = useMemo( + () => formatFieldGroupsData( record?.scf_field_groups ), + [ record ] ); - const { fields, error: fieldsError } = useMemo( () => { - try { - return { - fields: formatFieldGroupsData( - ! isLoading && ! error ? record?.scf_field_groups : null - ), - error, - }; - } catch ( formatError ) { - return { fields: {}, error: formatError }; - } - }, [ record, isLoading, error ] ); useEffect( () => { - if ( record && ! isLoading && ! fieldsError ) { + if ( record ) { addFieldMetadata( fields ); } - }, [ record, fields, isLoading, fieldsError ] ); + }, [ record, fields ] ); // One consumer must not cancel work shared by the rest of the registry. // Explicit invalidation also permits retry without a per-mount retry storm. const refresh = useCallback( () => { if ( postType ) { - invalidateResolution( 'getPostType', args ); + invalidateResolution( 'getPostType', [ postType ] ); } - }, [ postType, args, invalidateResolution ] ); + }, [ postType, invalidateResolution ] ); - return { fields, isLoading, error: fieldsError, refresh }; + return { fields, isLoading, error, refresh }; } /** diff --git a/assets/src/js/bindings/utils.js b/assets/src/js/bindings/utils.js index 1b10b3aa..2aeb96ea 100644 --- a/assets/src/js/bindings/utils.js +++ b/assets/src/js/bindings/utils.js @@ -43,9 +43,9 @@ export function getAllowedFieldTypes( blockName, attribute = null ) { * Filters field options based on allowed field types. * * @since 6.7.0 - * @param {Array} fieldOptions Array of field option objects with value, label, and type. - * @param {string} blockName The name of the block. - * @param {string|null} attribute The attribute name, or null for all types. + * @param {Array} fieldOptions Array of field option objects with value, label, and type. + * @param {string} blockName The name of the block. + * @param {string|null} attribute The attribute name, or null for all types. * @return {Array} Filtered array of field options. */ export function getFilteredFieldOptions( @@ -142,8 +142,11 @@ export function formatFieldGroupsData( fieldGroups ) { } fieldGroups.forEach( ( group ) => { - if ( Array.isArray( group.fields ) ) { + if ( Array.isArray( group?.fields ) ) { group.fields.forEach( ( field ) => { + if ( ! field?.name ) { + return; + } fieldsMap[ field.name ] = { label: field.label, type: field.type, diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index bdd9be23..b48cbb28 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -325,16 +325,39 @@ describe( 'Custom Hooks', () => { expect( invalidateResolution ).not.toHaveBeenCalled(); } ); - it( 'hides old fields while a resolution is unfinished or failed', () => { + it( 'keeps stored fields while a resolution is pending', () => { core.hasFinishedResolution.mockReturnValue( false ); - const { result, rerender } = renderHook( () => + const { result } = renderHook( () => useSiteEditorFields( 'product' ) ); expect( result.current.isLoading ).toBe( true ); + expect( result.current.fields ).toEqual( { + field1: { label: 'Field 1', type: 'text' }, + } ); + expect( result.current.error ).toBeNull(); + } ); + + it( 'has no fields until a record is available', () => { + core.getPostType.mockReturnValue( undefined ); + core.hasFinishedResolution.mockReturnValue( false ); + const { result } = renderHook( () => + useSiteEditorFields( 'product' ) + ); expect( result.current.fields ).toEqual( {} ); + expect( result.current.isLoading ).toBe( true ); + expect( + fieldMetadataCache.addFieldMetadata + ).not.toHaveBeenCalled(); + } ); + + it( 'reports a failed resolution as finished without fields', () => { const error = new Error( 'Temporary failure' ); + core.getPostType.mockReturnValue( undefined ); + core.hasFinishedResolution.mockReturnValue( true ); core.getResolutionError.mockReturnValue( error ); - rerender(); + const { result } = renderHook( () => + useSiteEditorFields( 'product' ) + ); expect( result.current.isLoading ).toBe( false ); expect( result.current.error ).toBe( error ); expect( result.current.fields ).toEqual( {} ); @@ -378,19 +401,21 @@ describe( 'Custom Hooks', () => { expect( result.current.isLoading ).toBe( false ); } ); - it( 'keeps malformed field data errors out of the render path', () => { + it( 'keeps valid fields alongside malformed groups without a fetch error', () => { core.getPostType.mockReturnValue( { - scf_field_groups: [ null ], + scf_field_groups: [ null, groups[ 0 ] ], } ); const { result } = renderHook( () => useSiteEditorFields( 'product' ) ); - expect( result.current.fields ).toEqual( {} ); - expect( result.current.error ).toBeInstanceOf( TypeError ); + expect( result.current.fields ).toEqual( { + field1: { label: 'Field 1', type: 'text' }, + } ); + expect( result.current.error ).toBeNull(); expect( result.current.isLoading ).toBe( false ); - expect( - fieldMetadataCache.addFieldMetadata - ).not.toHaveBeenCalled(); + expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalledWith( + result.current.fields + ); } ); it.each( [ {}, { scf_field_groups: [] } ] )( diff --git a/tests/js/bindings/utils.test.js b/tests/js/bindings/utils.test.js index 63fcebf8..83a18edc 100644 --- a/tests/js/bindings/utils.test.js +++ b/tests/js/bindings/utils.test.js @@ -272,6 +272,41 @@ describe( 'Block Bindings Utils', () => { } ); } ); + it( 'keeps valid fields alongside a null group', () => { + expect( + formatFieldGroupsData( [ null, mockFieldGroups[ 0 ] ] ) + ).toEqual( { + field1: { label: 'Field 1', type: 'text' }, + field2: { label: 'Field 2', type: 'textarea' }, + } ); + } ); + + it( 'ignores invalid groups', () => { + expect( + formatFieldGroupsData( [ + undefined, + 'string', + 42, + { fields: null }, + ] ) + ).toEqual( {} ); + } ); + + it( 'ignores fields without a name but keeps valid siblings', () => { + expect( + formatFieldGroupsData( [ + { + fields: [ + null, + {}, + { label: 'x' }, + mockFieldGroups[ 0 ].fields[ 0 ], + ], + }, + ] ) + ).toEqual( { field1: { label: 'Field 1', type: 'text' } } ); + } ); + it( 'should return empty object for empty array', () => { const result = formatFieldGroupsData( [] ); expect( result ).toEqual( {} ); From acc1fb63538218e2f4dcbda1df1c2ba389a0851f Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Sat, 17 Oct 2026 15:58:47 +0000 Subject: [PATCH 5/9] Test Site Editor schema sharing with real core-data registries Pin React-18-compatible data 10.32.0 and core-data 7.32.0 as test dependencies. Keep the REST boundary mocked while exercising real selectors, resolutions and subscriptions. Resolve unrelated root settings configuration normally before counting post-type requests. Replace mock-only fan-out assertions with tests for 1/10/200 consumers, an already pending getPostType request, remount reuse, distinct types, field retention during refresh and shared failures without automatic retries. Supply browser encoding APIs missing from jsdom. After clean npm ci, 39 suites / 970 tests pass; new and updated tests lint cleanly; formatting passes. Full bindings lint retains seven baseline errors, including three in unchanged hooks. Mutation checks reject original per-block fetching at 10 and 200 calls and reject the previous blank-on-refresh hook. Dependency-only build is byte-identical, and wp-data/wp-core-data remain externals. React and ReactDOM stay at 18.3.1. --- package-lock.json | 7493 +++++++++++++++-- package.json | 2 + .../bindings/helpers/core-data-environment.js | 8 + tests/js/bindings/hooks.integration.test.js | 227 + tests/js/bindings/hooks.test.js | 14 - 5 files changed, 7148 insertions(+), 596 deletions(-) create mode 100644 tests/js/bindings/helpers/core-data-environment.js create mode 100644 tests/js/bindings/hooks.integration.test.js diff --git a/package-lock.json b/package-lock.json index 98076750..87f4a0ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "secure-custom-fields", + "name": "scf-source-fix", "lockfileVersion": 3, "requires": true, "packages": { @@ -15,6 +15,8 @@ "@babel/preset-react": "^7.25.7", "@testing-library/jest-dom": "^6.1.5", "@testing-library/react": "^14.1.2", + "@wordpress/core-data": "7.32.0", + "@wordpress/data": "10.32.0", "@wordpress/dependency-extraction-webpack-plugin": "^6.20.0", "@wordpress/e2e-test-utils-playwright": "^1.20.0", "@wordpress/env": "^10.39.0", @@ -66,6 +68,101 @@ "node": ">=6.0.0" } }, + "node_modules/@ariakit/components": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/@ariakit/components/-/components-0.1.15.tgz", + "integrity": "sha512-Rq8cU/DXURIHbvRPZHXmUd7RHkTG0cXDjkjSWSeQEOQHp8w1bNenYUygoe0MzM0gwWakHrctA78XWGFgHmzUWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/store": "0.1.11", + "@ariakit/utils": "0.2.2" + } + }, + "node_modules/@ariakit/react": { + "version": "0.4.42", + "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.42.tgz", + "integrity": "sha512-D+nElmWhT2w0TV0BKUh84ox21AaflvMv1dTt6Fn9TEOQIdZmOAqF1B6VAv69L5R1oyLzNV7neLD8cMTku+vbEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/react-components": "0.7.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ariakit" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@ariakit/react-components": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@ariakit/react-components/-/react-components-0.7.1.tgz", + "integrity": "sha512-HOqqJqwtXYCrdwYRZeIg/hvXCPceGO+Ts+UIu9FIIIeaVqAxgyFYUb8Umbh40Wscek3PrYDdx/r5B5lpByUX8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/components": "0.1.15", + "@ariakit/react-store": "0.1.13", + "@ariakit/react-utils": "0.2.8", + "@ariakit/store": "0.1.11", + "@ariakit/utils": "0.2.2", + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@ariakit/react-store": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@ariakit/react-store/-/react-store-0.1.13.tgz", + "integrity": "sha512-/4R0HVcx14RlYCNqffytY9v3E+HLn+kL/Iaef3iOGSSvzr+Po75ZFJzMrNv3jVZsuhXXTilI16XmRT8nSiSUsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/react-utils": "0.2.8", + "@ariakit/store": "0.1.11", + "@ariakit/utils": "0.2.2", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@ariakit/react-utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@ariakit/react-utils/-/react-utils-0.2.8.tgz", + "integrity": "sha512-F8bQ4tbPxK9oniw/XS2HB0bCvZA0djpkFlFsqx4rGH1RPrhwg17OCf6rOMCo1nMfAqrUT6rpdRkxlocmgaznvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/store": "0.1.11", + "@ariakit/utils": "0.2.2" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@ariakit/store": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@ariakit/store/-/store-0.1.11.tgz", + "integrity": "sha512-rffsPgyf6MTVK3pZSS86oKIj8370F9229c/7QqCwvbEIl0zM0bfEEdE6K+djnsabwajhWlJ/2syURdD4x30rXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/utils": "0.2.2" + } + }, + "node_modules/@ariakit/utils": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@ariakit/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-OjdYlnJ8dW6XkBHirX0jx8bzLm577IL9Fe8T9dPrNKgCVvvJJiUL18iA5Oqqq9+FQ5ahhx5t4WgdE+2AaqG3IA==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -375,9 +472,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -385,9 +482,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -434,13 +531,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.29.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -2029,19 +2126,95 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@base-ui/react": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.9.0.tgz", + "integrity": "sha512-S8CSYosASBKtpL8SWUfS78rFElfLijiCgA7oHOK22jCJ95FULsYyKwBNFOgudt0RA+/7yNc7F81bOvQnRgbBiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7 || ^8.0.0", + "@base-ui/utils": "0.5.0", + "@floating-ui/react-dom": "^2.1.9", + "@floating-ui/utils": "^0.2.12", + "use-sync-external-store": "^1.7.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@date-fns/tz": "^1.2.0", + "@types/react": "^17 || ^18 || ^19", + "date-fns": "^4.0.0", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@date-fns/tz": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "date-fns": { + "optional": true + } + } + }, + "node_modules/@base-ui/react/node_modules/@babel/runtime": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-8.0.7.tgz", + "integrity": "sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@base-ui/utils": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.5.0.tgz", + "integrity": "sha512-dYGGcEttjkYiMoa5nHm8vLaJ2UcuTWxo3BFAwOYXeRg/q7UVVvA6cacEIXEs3FgBfK1CGtW1ptElqs7wsx+t9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7 || ^8.0.0", + "@floating-ui/utils": "^0.2.12", + "reselect": "^5.3.0", + "use-sync-external-store": "^1.7.0" + }, + "peerDependencies": { + "@types/react": "^17 || ^18 || ^19", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@base-ui/utils/node_modules/@babel/runtime": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-8.0.7.tgz", + "integrity": "sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg==", + "dev": true, + "license": "MIT" + }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", @@ -2170,6 +2343,73 @@ "@csstools/css-tokenizer": "^3.0.1" } }, + "node_modules/@date-fns/tz": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", + "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@date-fns/utc": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@date-fns/utc/-/utc-2.1.1.tgz", + "integrity": "sha512-SlJDfG6RPeEX8wEVv6ZB3kak4MmbtyiI2qX/5zuKdordbrhB/iaJ58GVMZgJ6P1sJaM1gMgENFYYeg1JWrCFrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@daypicker/react": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@daypicker/react/-/react-10.0.2.tgz", + "integrity": "sha512-Z/gvGXnc/xjRr5Z6l9OhIey00C7kwbIyJ85Pff9B9EWDkjTlkTQztB3qeylmGJDQ9xmxRJUV1W+02rskqarUBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-day-picker": "10.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/gpbl" + }, + "peerDependencies": { + "@types/react": ">=16.8.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@daypicker/react/node_modules/react-day-picker": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-10.0.2.tgz", + "integrity": "sha512-QetiKtZWE9Uaw/pM/SYNv6WPYOTRnSJ2puL0GgwkmUFMIwiY0dtjH1W4B7DOVXVNQM0ZOClGpH/heOfBSzWeiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@date-fns/tz": "^1.4.1", + "date-fns": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/gpbl" + }, + "peerDependencies": { + "@types/react": ">=16.8.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -2191,6 +2431,196 @@ "url": "https://github.com/sponsors/JounQin" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/css": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz", + "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "dev": true, + "license": "MIT" + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.41.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", @@ -2326,6 +2756,48 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", + "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.8.0", + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz", + "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.8.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", + "dev": true, + "license": "MIT" + }, "node_modules/@formatjs/ecma402-abstract": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", @@ -6071,17 +6543,45 @@ "dev": true, "license": "MIT" }, - "node_modules/@prisma/instrumentation": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz", - "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==", + "node_modules/@preact/signals": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-1.3.4.tgz", + "integrity": "sha512-TPMkStdT0QpSc8FpB63aOwXoSiZyIrPsP9Uj347KopdS6olZdAYeeird/5FZv/M1Yc1ge5qstub2o8VDbvkT4g==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" + "@preact/signals-core": "^1.7.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "preact": "10.x" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.4.tgz", + "integrity": "sha512-HNB6HYeYKhQbJ1aKl+YRjrS4+QWHLKX6qKoUsfS/m0vqzsVaEBiZiaKbG/e+NKk2ch5ALQr/ihWaMHxiCuuWHA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/@prisma/instrumentation": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz", + "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.8" } }, "node_modules/@puppeteer/browsers": { @@ -6120,6 +6620,417 @@ "node": ">=10" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.2.0.tgz", + "integrity": "sha512-KABY+VMIRPJL+Vyzv/335FEhXXD/xDv8BMb1kl48/aXJZMH0LtHCTx5ga5RnxaEP3nZHtmTLf1P9vanmFX46bw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.3.0.tgz", + "integrity": "sha512-v5AYEocMISkbJ+1fTXzZpiFv7NRr3D2WiYbLIKf+FkmJ8VkP6d503eV2n34MFussHXY1pcoq3yfJiQH77dc4Mg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.3.1.tgz", + "integrity": "sha512-+0E4qvVTwjAWra9sEhJ+9BTsvHE00zkUuNw1VGh7S+Gc13dfYk+S1PVQdchWDj+XYHhAai7Z7IpzXVDCGsDplg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.2.0", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.3.0", + "@radix-ui/react-dismissable-layer": "1.2.1", + "@radix-ui/react-focus-guards": "1.2.0", + "@radix-ui/react-focus-scope": "1.3.1", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-portal": "1.2.0", + "@radix-ui/react-presence": "1.1.11", + "@radix-ui/react-primitive": "2.2.0", + "@radix-ui/react-slot": "1.5.0", + "@radix-ui/react-use-controllable-state": "1.3.0", + "@radix-ui/react-use-layout-effect": "1.1.4", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.2.1.tgz", + "integrity": "sha512-KIfDcAsx+oVylFZ4xryVKusJUrLLhTQmfnJW4kwk4Km5myvhHCrj04hnWWUC166+xD4DHdH8tQGylwYX1h6+Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.2.0", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.2.0", + "@radix-ui/react-use-callback-ref": "1.1.5", + "@radix-ui/react-use-effect-event": "0.0.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.2.0.tgz", + "integrity": "sha512-MPm5R0iRGUDrDnPNxmLBkv+X7pN4XKzt+MbWJEuJQsH3NFH4omrbpXpucyYCCKTSt+na/ZxGhEWQrWTZ0285cA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.3.1.tgz", + "integrity": "sha512-ugeMhbXt4y5S2T1GnIqbWDKEN962PDwnX1fN0eKOOgf5f63Dh2mn8F1FUySlgW0iF6GiVsRF32DzuDIWTUyQJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.2.0", + "@radix-ui/react-use-callback-ref": "1.1.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", + "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.2.0.tgz", + "integrity": "sha512-StX7xXnaRU41VvFtMm9zlhVGz8XF6GmWWTXftkQaY+tqVkbs/R9UmAp5mLzHHapk5hM9RMZQvO/3usyIP/g42g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.2.0", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.11.tgz", + "integrity": "sha512-Z7/atlkab36Z8hm+V8zYc79r0W+tiOB1o0tun1By94JyadkekLQmtEAnBSP9XKXBNQsStoStS4+gX10JpS5akA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.2.0.tgz", + "integrity": "sha512-HCTSPMNqv55Qk0IX4geJbpyXazmqulcimwuyjxTkKi29v+QZbG2Zho9BnbBq4YS2PF+KlNb2CXoLz66uUmblkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.5.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.5.0.tgz", + "integrity": "sha512-tyYd9ddPXAysAbdbD9eYxgwpCSv6f3PncqVSNKQFSR5lcJVLz3cb/pANDoYrLiHBpXv7skortyUgGUWsYuPPFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.5.tgz", + "integrity": "sha512-Y5GBf4NKeADoXI1geiMlMuMoURT3k9MizzzKhGb/m55H94aGigZ01PIpkvsO6lML13BA6XYAXSJ6gza7vTn5nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.3.0.tgz", + "integrity": "sha512-TAcBI7bw2ljYCbv4+zuTSd6zICu8pRt6SDN2vJ/Z06K2MXh6I9WYFe/A9ovlFDtR5HVHGm5iDxDoABm/++dbKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.2.0", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@react-spring/animated": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz", + "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/core": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz", + "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/rafz": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz", + "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@react-spring/shared": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz", + "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@react-spring/rafz": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/types": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz", + "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@react-spring/web": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.5.tgz", + "integrity": "sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/core": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -6599,17 +7510,69 @@ "node": ">=10" } }, - "node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "node_modules/@tabby_ai/hijri-converter": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@tabby_ai/hijri-converter/-/hijri-converter-1.0.5.tgz", + "integrity": "sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@tannin/compile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz", + "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tannin/evaluate": "^1.2.0", + "@tannin/postfix": "^1.1.0" + } + }, + "node_modules/@tannin/evaluate": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz", + "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tannin/plural-forms": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz", + "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tannin/compile": "^1.1.0" + } + }, + "node_modules/@tannin/postfix": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz", + "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tannin/sprintf": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@tannin/sprintf/-/sprintf-1.3.3.tgz", + "integrity": "sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", @@ -6936,6 +7899,20 @@ "@types/node": "*" } }, + "node_modules/@types/gradient-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-1.1.0.tgz", + "integrity": "sha512-SaEcbgQscHtGJ1QL+ajgDTmmqU2f6T+00jZRcFlVHUW2Asivc84LNUev/UQFyu117AsdyrtI+qpwLvgjJXJxmw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/highlight-words-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/highlight-words-core/-/highlight-words-core-1.2.3.tgz", + "integrity": "sha512-PWNU/NR0CaYEsK38mcCTyDzeS2TlEGK9kRhRMz1i86jVAe836ZlA3gl6QYpu+CG6IpfNKTgWpEnJuRededvC0g==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", @@ -7048,6 +8025,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mousetrap": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.15.tgz", + "integrity": "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", @@ -7143,14 +8127,14 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz", - "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==", + "version": "18.3.31", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { @@ -7573,6 +8557,26 @@ "dev": true, "license": "ISC" }, + "node_modules/@use-gesture/core": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", + "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@use-gesture/react": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz", + "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@use-gesture/core": "10.3.1" + }, + "peerDependencies": { + "react": ">= 16.8.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -7781,6 +8785,55 @@ } } }, + "node_modules/@wordpress/a11y": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.57.0.tgz", + "integrity": "sha512-1BhlEYblenx5w5SkHaEdBodcNf93NDt5nd7QmOc1PpDVxWsGc/ARO30puvUlTnc1tq0Z8KEwy/wiPaTJUoprLw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/dom-ready": "^4.57.0", + "@wordpress/i18n": "^6.30.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/api-fetch": { + "version": "7.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.57.0.tgz", + "integrity": "sha512-NM9whtviaDmHmoJORHCZ1TqDRiC0nPooN/IqGEwfr2nX1X8F6d4hvOceiOZJJDTXQzdJoun5c9oUNQ4IrABQ4w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/i18n": "^6.30.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/url": "^4.57.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/api-fetch/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/autop": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.57.0.tgz", + "integrity": "sha512-qDnGKl9zdGYFPeFXetG7DGjhHLQW2GVlNYqFW2CjSwysRy6lACTGmyvRyGIOdm1EYeDBt5o0mvQxVPnh1TRo9A==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, "node_modules/@wordpress/babel-preset-default": { "version": "8.32.0", "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.32.0.tgz", @@ -7999,823 +9052,5313 @@ "npm": ">=8.19.2" } }, - "node_modules/@wordpress/browserslist-config": { - "version": "6.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.32.0.tgz", - "integrity": "sha512-8NemosyPrey1yswd6LH8vX9mcRF6Xmqt2mKUCspnmEX4KvayyezmtJPh2EQo3GfySVHGWePzb0yfMYEqDdsC0Q==", + "node_modules/@wordpress/blob": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.57.0.tgz", + "integrity": "sha512-t1ghgANfEzzSSNyPEIWE8PDX+wgvtzxkQX9yYG8o7jeDDqRS3aveKJS8226HkISqt7pAg+JN7iS7MaoQWT5Fuw==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" } }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "6.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.32.0.tgz", - "integrity": "sha512-05XLzLx+cTXgid6/qI6XzBclNvkLIi9F0oLAn4htL1ExIXLfc9yBSNcNkVVP7Tr5pmpMq0NUxfM58jqxxmFfCQ==", + "node_modules/@wordpress/block-editor": { + "version": "15.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-15.23.0.tgz", + "integrity": "sha512-L/oGA/DHwo4s8MzzqaQ+UegehiujXVo184ttmyhgOzj69HT1P403ju6Of8o4tfRh+2xzH6GIjIOt0HPse9ZKpg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "json2php": "^0.0.7" + "@react-spring/web": "^9.4.5", + "@wordpress/a11y": "^4.50.0", + "@wordpress/base-styles": "^10.2.0", + "@wordpress/blob": "^4.50.0", + "@wordpress/block-serialization-default-parser": "^5.50.0", + "@wordpress/blocks": "^15.23.0", + "@wordpress/commands": "^1.50.0", + "@wordpress/components": "^36.1.0", + "@wordpress/compose": "^8.3.0", + "@wordpress/data": "^10.50.0", + "@wordpress/dataviews": "^17.1.0", + "@wordpress/date": "^5.50.0", + "@wordpress/deprecated": "^4.50.0", + "@wordpress/dom": "^4.50.0", + "@wordpress/element": "^8.2.0", + "@wordpress/escape-html": "^3.50.0", + "@wordpress/global-styles-engine": "^1.17.0", + "@wordpress/hooks": "^4.50.0", + "@wordpress/html-entities": "^4.50.0", + "@wordpress/i18n": "^6.23.0", + "@wordpress/icons": "^15.1.0", + "@wordpress/image-cropper": "^1.14.0", + "@wordpress/interactivity": "^6.50.0", + "@wordpress/is-shallow-equal": "^5.50.0", + "@wordpress/keyboard-shortcuts": "^5.50.0", + "@wordpress/keycodes": "^4.50.0", + "@wordpress/notices": "^5.50.0", + "@wordpress/preferences": "^4.50.0", + "@wordpress/priority-queue": "^3.50.0", + "@wordpress/private-apis": "^1.50.0", + "@wordpress/rich-text": "^7.50.0", + "@wordpress/style-engine": "^2.50.0", + "@wordpress/token-list": "^3.50.0", + "@wordpress/ui": "^0.17.0", + "@wordpress/upload-media": "^0.35.0", + "@wordpress/url": "^4.50.0", + "@wordpress/warning": "^3.50.0", + "@wordpress/wordcount": "^4.50.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "deepmerge": "^4.3.1", + "diff": "^8.0.3", + "fast-deep-equal": "^3.1.3", + "memize": "^2.1.0", + "parsel-js": "^1.1.2", + "postcss": "^8.4.38", + "postcss-prefix-selector": "^1.16.0", + "postcss-urlrebase": "^1.4.0", + "react-autosize-textarea": "^7.1.0", + "react-easy-crop": "^5.4.2", + "remove-accents": "^0.5.0" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" }, "peerDependencies": { - "webpack": "^5.0.0" + "@types/react": "^18.3.27", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.32.0.tgz", - "integrity": "sha512-w1hE7xDB06SQDfwtbggyU2xTyQ++GyU2wwEc648LL6OYLh7wlDuEzP/7XCrYbxA/GPGFDKCOL3uhU163F2N/Dw==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/base-styles": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-10.2.0.tgz", + "integrity": "sha512-iDPbyyeUnxLFq4ec+03x87jT8lRoBzK2rDoEg24l2KNAR9ZJ2kwI0z2E/wW0fOZC37A7qr377KJslPHKLtMgyQ==", "dev": true, "license": "GPL-2.0-or-later", - "dependencies": { - "change-case": "^4.1.2", - "form-data": "^4.0.0", - "get-port": "^5.1.1", - "lighthouse": "^12.2.2", - "mime": "^3.0.0", - "web-vitals": "^4.2.1" - }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" - }, - "peerDependencies": { - "@playwright/test": ">=1" } }, - "node_modules/@wordpress/element": { - "version": "6.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.32.0.tgz", - "integrity": "sha512-W/Bw6HXzRBJgYYUdoUBUvtjXNWh8dVK8aqFsqpnEJTAiXdU8Ii0wBQ+E49bI/08yGCwsaXrLbQLXqtAiV6leMw==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", - "@wordpress/escape-html": "^3.32.0", + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", "change-case": "^4.1.2", - "is-plain-object": "^5.0.0", - "react": "^18.3.0", - "react-dom": "^18.3.0" + "mousetrap": "^1.6.5" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/env": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.39.0.tgz", - "integrity": "sha512-Hgl2RQAAzXFMqkpegGWT1/KkX88OVikRroPidWkij1WtU8p+AZniTcncWmlWqbdLdfGbPqQS5ZkqDZCzrQjgnA==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@inquirer/prompts": "^7.2.0", - "@wp-playground/cli": "^3.0.0", - "chalk": "^4.0.0", - "copy-dir": "^1.3.0", - "cross-spawn": "^7.0.6", - "docker-compose": "^0.24.3", - "extract-zip": "^1.6.7", - "got": "^11.8.5", - "js-yaml": "^3.13.1", - "ora": "^4.0.2", - "rimraf": "^5.0.10", - "simple-git": "^3.5.0", - "terminal-link": "^2.0.0", - "yargs": "^17.3.0" - }, - "bin": { - "wp-env": "bin/wp-env" + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/env/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "engines": { - "node": "18 || 20 || >=22" + "node": ">=18.12.0" } }, - "node_modules/@wordpress/env/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "balanced-match": "^4.0.2" + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/env/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/data/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "ms": "2.0.0" + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/env/node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" } }, - "node_modules/@wordpress/env/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", "dev": true, - "license": "ISC", + "license": "GPL-2.0-or-later", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/env/node_modules/minimatch": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.6.tgz", - "integrity": "sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/icons": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", + "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", "dev": true, - "license": "ISC", + "license": "GPL-2.0-or-later", "dependencies": { - "brace-expansion": "^5.0.2" + "@wordpress/element": "^8.6.0", + "@wordpress/primitives": "^4.54.0", + "change-case": "^4.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@wordpress/env/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/@wordpress/block-serialization-default-parser": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.57.0.tgz", + "integrity": "sha512-gxqS1TIMiWcIIsPTPdvztOZNEl7+TkVJ5WHk8BWOe2+WsaEcjL44heSceDl873+WZQ1RIAOBdHDyds8h4FjiaQ==", "dev": true, - "license": "MIT" + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } }, - "node_modules/@wordpress/env/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "node_modules/@wordpress/blocks": { + "version": "15.27.0", + "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-15.27.0.tgz", + "integrity": "sha512-HW8SJBMF2HhZn8/9XKxu37Rspm3Oqb5odGHnpcc29jZKbYRzH/7AhEUYAdjuUedVwXB2UvzaybDMFFOZ6lN4FA==", "dev": true, - "license": "ISC", + "license": "GPL-2.0-or-later", "dependencies": { - "glob": "^10.3.7" + "@wordpress/autop": "^4.54.0", + "@wordpress/blob": "^4.54.0", + "@wordpress/block-serialization-default-parser": "^5.54.0", + "@wordpress/data": "^10.54.0", + "@wordpress/deprecated": "^4.54.0", + "@wordpress/dom": "^4.54.0", + "@wordpress/element": "^8.6.0", + "@wordpress/hooks": "^4.54.0", + "@wordpress/html-entities": "^4.54.0", + "@wordpress/i18n": "^6.27.0", + "@wordpress/is-shallow-equal": "^5.54.0", + "@wordpress/keycodes": "^4.54.0", + "@wordpress/private-apis": "^1.54.0", + "@wordpress/rich-text": "^7.54.0", + "@wordpress/shortcode": "^4.54.0", + "@wordpress/warning": "^3.54.0", + "change-case": "^4.1.2", + "colord": "^2.9.3", + "fast-deep-equal": "^3.1.3", + "hpq": "^1.4.0", + "is-plain-object": "^5.1.0", + "marked": "^18.0.3", + "memize": "^2.1.1", + "react-is": "^18.3.0", + "remove-accents": "^0.5.0", + "simple-html-tokenizer": "^0.5.7", + "uuid": "^14.0.0" }, - "bin": { - "rimraf": "dist/esm/bin.mjs" + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@wordpress/escape-html": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.32.0.tgz", - "integrity": "sha512-pT5wZmg9ob/u8RuSXgfZv8Kfd8zpvtBcCdcFE/UHasjtxJSecxDHFb0uI4eXQrSiTrsthbDZDlK/GIAagmt75Q==", + "node_modules/@wordpress/blocks/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7" + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/eslint-plugin": { - "version": "22.18.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.18.0.tgz", - "integrity": "sha512-1w4bhax+vg3xFDXs/z2jNRaCO/kagpK0ZZ6PGWH5Anlp+e9MuzQHMbcU6Xpd/+ZU118z0rJeXDvjb3QgEfvEOg==", + "node_modules/@wordpress/blocks/node_modules/@wordpress/data/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/eslint-parser": "7.25.7", - "@typescript-eslint/eslint-plugin": "^6.4.1", - "@typescript-eslint/parser": "^6.4.1", - "@wordpress/babel-preset-default": "^8.32.0", - "@wordpress/prettier-config": "^4.32.0", - "cosmiconfig": "^7.0.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-jest": "^27.4.3", - "eslint-plugin-jsdoc": "^46.4.6", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-playwright": "^0.15.3", - "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-react": "^7.27.0", - "eslint-plugin-react-hooks": "^4.3.0", - "globals": "^13.12.0", - "requireindex": "^1.2.0" + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" }, "peerDependencies": { - "@babel/core": ">=7", - "eslint": ">=8", - "prettier": ">=3", - "typescript": ">=5" + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" }, "peerDependenciesMeta": { - "prettier": { + "@types/react": { "optional": true }, - "typescript": { + "@types/react-dom": { "optional": true } } }, - "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/@wordpress/blocks/node_modules/@wordpress/data/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, "engines": { - "node": ">=10" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/eslint-plugin/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "node_modules/@wordpress/blocks/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "ISC", + "license": "GPL-2.0-or-later", "engines": { - "node": ">= 6" + "node": ">=18.12.0" } }, - "node_modules/@wordpress/icons": { - "version": "10.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.32.0.tgz", - "integrity": "sha512-1WvJdT361X1LnetYBpBWUjAVXZzl+pBdIwHbYRAp8ej47EI/igPmNxmq81nFd40s8fer/9qtipielcqSI6H2rA==", + "node_modules/@wordpress/blocks/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", - "@wordpress/element": "^6.32.0", - "@wordpress/primitives": "^4.32.0" + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/jest-console": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.32.0.tgz", - "integrity": "sha512-Sq4Ss0gJNmLzpJ9K/5Nto/FTV5L7ALvmdfA7b8JpmuKh32CETN4uIGDSfqS2a5Pfcg4KepwnL6jF9790uM54QA==", + "node_modules/@wordpress/blocks/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/browserslist-config": { + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.32.0.tgz", + "integrity": "sha512-8NemosyPrey1yswd6LH8vX9mcRF6Xmqt2mKUCspnmEX4KvayyezmtJPh2EQo3GfySVHGWePzb0yfMYEqDdsC0Q==", "dev": true, "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "7.25.7", - "jest-matcher-utils": "^29.6.2" - }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" - }, - "peerDependencies": { - "jest": ">=29" } }, - "node_modules/@wordpress/jest-preset-default": { - "version": "12.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.32.0.tgz", - "integrity": "sha512-Y8X+0KCjUiB1MxxwridiY0Ku3iJVOTJSsutSReu+rM/hS/1azlBMctC0bqUyC0mQyBqPF0SNlpHjYdsAoVEznQ==", + "node_modules/@wordpress/commands": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.57.0.tgz", + "integrity": "sha512-3RuolvhR3+jeTlYgb/PAQfRCAKOBPTLuvnggnH5XLShE1qKzTjJugXgWdcrquym9VP3b4TSgs5YHxDrwjmGv3w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/jest-console": "^8.32.0", - "babel-jest": "29.7.0" + "@wordpress/base-styles": "^13.3.0", + "@wordpress/components": "^42.0.0", + "@wordpress/data": "^10.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/keyboard-shortcuts": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/preferences": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "clsx": "^2.1.1", + "cmdk": "^1.0.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" }, "peerDependencies": { - "@babel/core": ">=7", - "jest": ">=29" + "react": "^18 || ^19", + "react-dom": "^18 || ^19" } }, - "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.32.0.tgz", - "integrity": "sha512-X3D9g0m0OIM6FfdHfmyGENOZG53kc+i49WuHnDnC1gZWV5Ai0SD/CNfRcPZOYw7Ld9CScrM3kqXAKG7nd1fGFg==", + "node_modules/@wordpress/commands/node_modules/@wordpress/base-styles": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", + "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "npm-package-json-lint": ">=6.0.0" + "node": ">=18.12.0" } }, - "node_modules/@wordpress/postcss-plugins-preset": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.32.0.tgz", - "integrity": "sha512-cJGgp8Z3o8dKfUWQZtQ/gNceYwLQET1z7RqkOAaSI5O0lelGit8gqpWeA7qYyZb9K1kWwhz8GGVWUIsQhCo2sQ==", + "node_modules/@wordpress/commands/node_modules/@wordpress/components": { + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", + "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/base-styles": "^6.8.0", - "autoprefixer": "^10.4.20" + "@ariakit/react": "^0.4.40", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.1.9", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/base-styles": "^13.3.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/date": "^5.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/escape-html": "^3.57.0", + "@wordpress/hooks": "^4.57.0", + "@wordpress/html-entities": "^4.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/kebab-case": "^1.4.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/rich-text": "^7.57.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/ui": "^0.24.0", + "@wordpress/warning": "^3.57.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.4", + "csstype": "^3.2.3", + "date-fns": "^4.4.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.1.0", + "memize": "^2.1.1", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.11.2", + "react-colorful": "^5.6.1", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" }, "peerDependencies": { - "postcss": "^8.0.0" + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@wordpress/prettier-config": { - "version": "4.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.32.0.tgz", - "integrity": "sha512-fS4Z5hXewajLKxbMQY4rdq3fSpUnwHHfLWqOJHXlu3u4rjqVf0VMJsLsSsSM8tV78rU6x6dWIEugG6CnDygYjA==", + "node_modules/@wordpress/commands/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", "dev": true, "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" }, "peerDependencies": { - "prettier": ">=3" + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/primitives": { - "version": "4.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.32.0.tgz", - "integrity": "sha512-pf46CU5qQaGOULlAMNQTi+Jkwf1vwfrGYmkRtuTP68/Y8yOI19v5JZg/Vwq5nCHOs/L750mX1wMp4WvGWoPhFg==", + "node_modules/@wordpress/commands/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", - "@wordpress/element": "^6.32.0", - "clsx": "^2.1.1" + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" }, "peerDependencies": { - "react": "^18.0.0" + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/priority-queue": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.32.0.tgz", - "integrity": "sha512-LXlkiXxRSv35FBvjfAqn+rHH7KF4mw2wVl57SVzWglZAUdfvrcjrinRlEsqgMZxeAVeLPiutRV1qlkueZl7E8w==", + "node_modules/@wordpress/commands/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/commands/node_modules/@wordpress/icons": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", + "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "@wordpress/primitives": "^4.57.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/commands/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/commands/node_modules/@wordpress/style-runtime": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", + "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@wordpress/commands/node_modules/@wordpress/theme": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", + "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "@jridgewell/trace-mapping": "^0.3.31", + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/style-runtime": "^0.13.0", + "colorjs.io": "^0.7.1", + "magic-string": "^0.30.21", + "memize": "^2.1.1" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "esbuild": ">=0.27.2 <1.0.0", + "lightningcss": ">=1.33.0 <2.0.0", + "postcss": "^8.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19", + "stylelint": "^16 || ^17", + "vite": "^7 || ^8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@wordpress/commands/node_modules/@wordpress/ui": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", + "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@base-ui/react": "^1.8.0", + "@daypicker/react": "^10.0.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/theme": "^2.3.0", + "@wordpress/warning": "^3.57.0", + "clsx": "^2.1.1", + "date-fns": "^4.4.0", + "tabbable": "^6.4.0" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/commands/node_modules/colorjs.io": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", + "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/@wordpress/commands/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/commands/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/components": { + "version": "36.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-36.1.0.tgz", + "integrity": "sha512-EapV2VXhNIDhWA+yTukQz++IfpqY8gVDvQ9bU8g1RKJqK3dhaVJ9NG2Rqk3TPsFxrmEGNHJwdb+SRUdLFAr3Zg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.29", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.50.0", + "@wordpress/base-styles": "^10.2.0", + "@wordpress/compose": "^8.3.0", + "@wordpress/date": "^5.50.0", + "@wordpress/deprecated": "^4.50.0", + "@wordpress/dom": "^4.50.0", + "@wordpress/element": "^8.2.0", + "@wordpress/escape-html": "^3.50.0", + "@wordpress/hooks": "^4.50.0", + "@wordpress/html-entities": "^4.50.0", + "@wordpress/i18n": "^6.23.0", + "@wordpress/icons": "^15.1.0", + "@wordpress/is-shallow-equal": "^5.50.0", + "@wordpress/keycodes": "^4.50.0", + "@wordpress/primitives": "^4.50.0", + "@wordpress/private-apis": "^1.50.0", + "@wordpress/rich-text": "^7.50.0", + "@wordpress/style-runtime": "^0.6.0", + "@wordpress/ui": "^0.17.0", + "@wordpress/warning": "^3.50.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18.3.27", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/base-styles": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-10.2.0.tgz", + "integrity": "sha512-iDPbyyeUnxLFq4ec+03x87jT8lRoBzK2rDoEg24l2KNAR9ZJ2kwI0z2E/wW0fOZC37A7qr377KJslPHKLtMgyQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/icons": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", + "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^8.6.0", + "@wordpress/primitives": "^4.54.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/components/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/components/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/compose": { + "version": "7.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.46.0.tgz", + "integrity": "sha512-6Yv9Wb6tlA4JYU9bdWWuIWpTTzBAVA1zrYu1GY9x2/mCOckk9iLcEEfbKULxdjwwcMo3SKqvyby4f6kEUw/Wsw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.46.0", + "@wordpress/dom": "^4.46.0", + "@wordpress/element": "^6.46.0", + "@wordpress/is-shallow-equal": "^5.46.0", + "@wordpress/keycodes": "^4.46.0", + "@wordpress/priority-queue": "^3.46.0", + "@wordpress/undo-manager": "^1.46.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5", + "use-memo-one": "^1.1.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", + "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/escape-html": "^3.46.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/core-data": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-7.32.0.tgz", + "integrity": "sha512-cHcEhoucu5YhPTpo2I+NVlxINPMTnh8cXcfrBmrqAnwFA5MttMhF8av9lnz6k3ieY9eB99rY+BDcE09+jkRl7w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "requestidlecallback": "^0.3.0" + "@wordpress/api-fetch": "^7.32.0", + "@wordpress/block-editor": "^15.5.0", + "@wordpress/blocks": "^15.5.0", + "@wordpress/compose": "^7.32.0", + "@wordpress/data": "^10.32.0", + "@wordpress/deprecated": "^4.32.0", + "@wordpress/element": "^6.32.0", + "@wordpress/html-entities": "^4.32.0", + "@wordpress/i18n": "^6.5.0", + "@wordpress/is-shallow-equal": "^5.32.0", + "@wordpress/private-apis": "^1.32.0", + "@wordpress/rich-text": "^7.32.0", + "@wordpress/sync": "^1.32.0", + "@wordpress/undo-manager": "^1.32.0", + "@wordpress/url": "^4.32.0", + "@wordpress/warning": "^3.32.0", + "change-case": "^4.1.2", + "equivalent-key-map": "^0.2.2", + "fast-deep-equal": "^3.1.3", + "memize": "^2.1.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/core-data/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@wordpress/data": { + "version": "10.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.32.0.tgz", + "integrity": "sha512-7lReC2/qVxlQVYVlqIYfZ9Irbzo6W30iuiD67xaXqVxiD9BA8CePY2dTBpCsykBkczoT0ryerVp648SvY82R9Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "@wordpress/compose": "^7.32.0", + "@wordpress/deprecated": "^4.32.0", + "@wordpress/element": "^6.32.0", + "@wordpress/is-shallow-equal": "^5.32.0", + "@wordpress/priority-queue": "^3.32.0", + "@wordpress/private-apis": "^1.32.0", + "@wordpress/redux-routine": "^5.32.0", + "deepmerge": "^4.3.0", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2", + "use-memo-one": "^1.1.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@wordpress/dataviews": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/dataviews/-/dataviews-17.3.0.tgz", + "integrity": "sha512-9U50IPnaYWUbkdVl2J2eRkkT0x83nGxmsVkkNVBSGQFpnWHhCAN7TqZOOSVYM+ppMBQnVwDhml6URIc4iejZ8A==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.32", + "@wordpress/a11y": "^4.52.0", + "@wordpress/base-styles": "^12.0.0", + "@wordpress/components": "^38.0.0", + "@wordpress/compose": "^8.5.0", + "@wordpress/data": "^10.52.0", + "@wordpress/date": "^5.52.0", + "@wordpress/deprecated": "^4.52.0", + "@wordpress/element": "^8.4.0", + "@wordpress/i18n": "^6.25.0", + "@wordpress/icons": "^15.3.0", + "@wordpress/keycodes": "^4.52.0", + "@wordpress/primitives": "^4.52.0", + "@wordpress/private-apis": "^1.52.0", + "@wordpress/rich-text": "^7.52.0", + "@wordpress/ui": "^0.19.0", + "@wordpress/warning": "^3.52.0", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "date-fns": "^4.4.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "remove-accents": "^0.5.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/base-styles": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-12.1.0.tgz", + "integrity": "sha512-B8Ab7dU574B1lNtjnTolO340nnW+WeaztR4RFpoL6tyqWrvDU1hK6xcjQnuNtQYJc2ngH/MO/rZOVFaFa7HFxw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/components": { + "version": "38.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-38.0.0.tgz", + "integrity": "sha512-FdmfeLB0cUH8Vwmp1Sz0o7mnhmg0kir2oouuvkcVtPgwHfCnsOgvg1ZelYdaQz+F6MyAsCY1mKQn100A9npUDA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.32", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.52.0", + "@wordpress/base-styles": "^12.0.0", + "@wordpress/compose": "^8.5.0", + "@wordpress/date": "^5.52.0", + "@wordpress/deprecated": "^4.52.0", + "@wordpress/dom": "^4.52.0", + "@wordpress/element": "^8.4.0", + "@wordpress/escape-html": "^3.52.0", + "@wordpress/hooks": "^4.52.0", + "@wordpress/html-entities": "^4.52.0", + "@wordpress/i18n": "^6.25.0", + "@wordpress/icons": "^15.3.0", + "@wordpress/is-shallow-equal": "^5.52.0", + "@wordpress/keycodes": "^4.52.0", + "@wordpress/primitives": "^4.52.0", + "@wordpress/private-apis": "^1.52.0", + "@wordpress/rich-text": "^7.52.0", + "@wordpress/style-runtime": "^0.8.0", + "@wordpress/ui": "^0.19.0", + "@wordpress/warning": "^3.52.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.4.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.1", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/data/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/icons": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", + "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^8.6.0", + "@wordpress/primitives": "^4.54.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/style-runtime": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.8.0.tgz", + "integrity": "sha512-gqe5cnsDLwH2NQ//VyUtzS4pcht0iR64hP+3u6p5/pPvwA2ySGn71mJ/7+O2X7sUG5drxNp6+4Kl3LWOzkKYng==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/theme": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-1.2.0.tgz", + "integrity": "sha512-pILS4ytGGiASrpJ8sLp+pRbcBspFYeMTr5LdM4fWBv/EN2CIKhBLpX3qGlXwKzS+HzjrbXZwj60Bfbg/PxvQew==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.6.0", + "@wordpress/deprecated": "^4.53.0", + "@wordpress/element": "^8.5.0", + "@wordpress/private-apis": "^1.53.0", + "@wordpress/style-runtime": "^0.9.0", + "colorjs.io": "^0.7.1", + "memize": "^2.1.1" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0", + "npm": ">=10.2.3" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "esbuild": ">=0.27.2 <1.0.0", + "postcss": "^8.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19", + "stylelint": "^16 || ^17", + "vite": "^7 || ^8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "postcss": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/theme/node_modules/@wordpress/style-runtime": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.9.0.tgz", + "integrity": "sha512-K2T4OfVbqgsp07zi7C6UemlJK7fF78EPmxFYuxSjnbbB14fJcOxX+Tqi/4y24hn9ECahoGjCKHZCY2U2kts8dQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/ui": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.19.0.tgz", + "integrity": "sha512-ck0BcuWu96vbpim0rFUI0kDLaUgLyRmbhkgfhgYFyHm2klzyRxhbakNTc6qqj7xCQ0Wsy9SwCqDCuCHltZpXkA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@base-ui/react": "^1.6.0", + "@wordpress/a11y": "^4.52.0", + "@wordpress/compose": "^8.5.0", + "@wordpress/element": "^8.4.0", + "@wordpress/i18n": "^6.25.0", + "@wordpress/icons": "^15.3.0", + "@wordpress/keycodes": "^4.52.0", + "@wordpress/primitives": "^4.52.0", + "@wordpress/private-apis": "^1.52.0", + "@wordpress/style-runtime": "^0.8.0", + "@wordpress/theme": "^1.1.0", + "clsx": "^2.1.1", + "tabbable": "^6.4.0" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0", + "npm": ">=10.2.3" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/dataviews/node_modules/colorjs.io": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", + "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/@wordpress/dataviews/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/dataviews/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/date": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.57.0.tgz", + "integrity": "sha512-mT+Yd+ADpT74G/VsarsaiUNb7E61MjS+Ry6lq5f6Q4T8V0AVMLEQ2O06KskE4lW+q6z6hbnN2+reWiZzfkYeVw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/deprecated": "^4.57.0", + "moment": "^2.29.4", + "moment-timezone": "^0.5.40" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.32.0.tgz", + "integrity": "sha512-05XLzLx+cTXgid6/qI6XzBclNvkLIi9F0oLAn4htL1ExIXLfc9yBSNcNkVVP7Tr5pmpMq0NUxfM58jqxxmFfCQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "json2php": "^0.0.7" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/@wordpress/deprecated": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.57.0.tgz", + "integrity": "sha512-eRjYiN5wE8cmV+sehqGTHpb2VxwSqv/FMkcQ+0po4G3JK+Y1V0StqZRDhsgcwUocPRKuAtTO7E28fcdo615DFw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/hooks": "^4.57.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/dom": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.57.0.tgz", + "integrity": "sha512-KjnGUcxtdh8+Gvi0zUhh4iDRE8fsvVJkd798aS65HL6ysZYLuOVsdHwy5Qh6LT//tB3juSn1EMJ/TzdgtIOg6A==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/deprecated": "^4.57.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/dom-ready": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.57.0.tgz", + "integrity": "sha512-3UVrsq4LQxnPO7N28H2s0jdUbOb6+jJKT5EJVgwPJnZpCw2RLvpaN0u+P+6yZWIl8ytPwayTHuLHGnKBnIXZKQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.32.0.tgz", + "integrity": "sha512-w1hE7xDB06SQDfwtbggyU2xTyQ++GyU2wwEc648LL6OYLh7wlDuEzP/7XCrYbxA/GPGFDKCOL3uhU163F2N/Dw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "change-case": "^4.1.2", + "form-data": "^4.0.0", + "get-port": "^5.1.1", + "lighthouse": "^12.2.2", + "mime": "^3.0.0", + "web-vitals": "^4.2.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@playwright/test": ">=1" + } + }, + "node_modules/@wordpress/element": { + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.32.0.tgz", + "integrity": "sha512-W/Bw6HXzRBJgYYUdoUBUvtjXNWh8dVK8aqFsqpnEJTAiXdU8Ii0wBQ+E49bI/08yGCwsaXrLbQLXqtAiV6leMw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", + "@wordpress/escape-html": "^3.32.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/env": { + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.39.0.tgz", + "integrity": "sha512-Hgl2RQAAzXFMqkpegGWT1/KkX88OVikRroPidWkij1WtU8p+AZniTcncWmlWqbdLdfGbPqQS5ZkqDZCzrQjgnA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@inquirer/prompts": "^7.2.0", + "@wp-playground/cli": "^3.0.0", + "chalk": "^4.0.0", + "copy-dir": "^1.3.0", + "cross-spawn": "^7.0.6", + "docker-compose": "^0.24.3", + "extract-zip": "^1.6.7", + "got": "^11.8.5", + "js-yaml": "^3.13.1", + "ora": "^4.0.2", + "rimraf": "^5.0.10", + "simple-git": "^3.5.0", + "terminal-link": "^2.0.0", + "yargs": "^17.3.0" + }, + "bin": { + "wp-env": "bin/wp-env" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/env/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@wordpress/env/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@wordpress/env/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@wordpress/env/node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/@wordpress/env/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wordpress/env/node_modules/minimatch": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.6.tgz", + "integrity": "sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wordpress/env/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/env/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wordpress/escape-html": { + "version": "3.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.57.0.tgz", + "integrity": "sha512-QT0x2X39blQjLHru11Dp00DAR0LLRMKMC6ATSWidliD3xQfKz+BjiPzTJd/LyhPLEE8C9li7ylKUlseIO2EYjQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/eslint-plugin": { + "version": "22.18.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.18.0.tgz", + "integrity": "sha512-1w4bhax+vg3xFDXs/z2jNRaCO/kagpK0ZZ6PGWH5Anlp+e9MuzQHMbcU6Xpd/+ZU118z0rJeXDvjb3QgEfvEOg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/eslint-parser": "7.25.7", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", + "@wordpress/babel-preset-default": "^8.32.0", + "@wordpress/prettier-config": "^4.32.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.4.3", + "eslint-plugin-jsdoc": "^46.4.6", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-playwright": "^0.15.3", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=3", + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@wordpress/global-styles-engine": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.24.0.tgz", + "integrity": "sha512-gr6/lc6pWi7SjpmLwsRiJJfUOY4Xp3poyfouLD7+2QbA2bK7m2yhUWx9FR6T7YMGAG5fgUKQq5pQgiQkC5iyag==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/blocks": "^16.2.0", + "@wordpress/data": "^10.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/style-engine": "^2.57.0", + "colord": "^2.9.4", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "is-plain-object": "^5.1.0", + "memize": "^2.1.1" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/blocks": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-16.2.0.tgz", + "integrity": "sha512-Ga1MWeUNUSs3pDdiBL4uTrdt0mVnnx+eE83LZOweqjxeVmsqWjg1cwsOUrI+eDos1ffxeYqzgI+uxsSJ4mkcjQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/autop": "^4.57.0", + "@wordpress/blob": "^4.57.0", + "@wordpress/block-serialization-default-parser": "^5.57.0", + "@wordpress/data": "^10.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/hooks": "^4.57.0", + "@wordpress/html-entities": "^4.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/rich-text": "^7.57.0", + "@wordpress/shortcode": "^4.57.0", + "@wordpress/warning": "^3.57.0", + "change-case": "^4.1.2", + "colord": "^2.9.4", + "fast-deep-equal": "^3.1.3", + "hpq": "^1.4.0", + "is-plain-object": "^5.1.0", + "marked": "^18.0.3", + "memize": "^2.1.1", + "react-is": "^19.3.0", + "remove-accents": "^0.5.0", + "simple-html-tokenizer": "^0.5.7", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/global-styles-engine/node_modules/react-is": { + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.1.tgz", + "integrity": "sha512-RRieF6IyxQBkcK6pP8xOHprLTPW6QjRkbGdImtqNme+/hYVwCZkLQLdlZGOhUqXwkS9IEynaGvPJtv6XB/cz0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/global-styles-engine/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/hooks": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.57.0.tgz", + "integrity": "sha512-vRJxRhOj+a19RvdW6u0ZBmiQc/t/ueVGsIP3IbS9zuvfLJILtvMSWXU8Fe3m/W+mBK5ZEOfm72LYBhWGPse0DA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/html-entities": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.57.0.tgz", + "integrity": "sha512-1g6qT2mnpe1ZGUDNFF8+AfeUDEqGuJgVJsiYz7Z+QPi0tl2kNF2mvSunuZTu6bBuHR9cabwTfD4z9k4CEioQrQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/i18n": { + "version": "6.30.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.30.0.tgz", + "integrity": "sha512-Q8ivagc2aG+Qe5dTzmiohR+pDo4xDcD746fGI2dq+JIbTibYRnkFoN1VyGFZX/Q+g98I80ZJLJ5Vk3svSXb9ag==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.57.0", + "gettext-parser": "^1.3.1", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/icons": { + "version": "10.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.32.0.tgz", + "integrity": "sha512-1WvJdT361X1LnetYBpBWUjAVXZzl+pBdIwHbYRAp8ej47EI/igPmNxmq81nFd40s8fer/9qtipielcqSI6H2rA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "@wordpress/element": "^6.32.0", + "@wordpress/primitives": "^4.32.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/image-cropper": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.21.0.tgz", + "integrity": "sha512-v+vbwKih9Wwfn713BNMLAROxxfylqha4Vn/bcrKK+a8RplZrgtTcsMbWx2DTMlG9lzQhv6on9+eC6v/M3Cdi/w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/components": "^42.0.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "dequal": "^2.0.3", + "react-easy-crop": "^5.4.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/base-styles": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", + "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components": { + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", + "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.40", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.1.9", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/base-styles": "^13.3.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/date": "^5.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/escape-html": "^3.57.0", + "@wordpress/hooks": "^4.57.0", + "@wordpress/html-entities": "^4.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/kebab-case": "^1.4.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/rich-text": "^7.57.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/ui": "^0.24.0", + "@wordpress/warning": "^3.57.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.4", + "csstype": "^3.2.3", + "date-fns": "^4.4.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.1.0", + "memize": "^2.1.1", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.11.2", + "react-colorful": "^5.6.1", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components/node_modules/@wordpress/icons": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", + "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "@wordpress/primitives": "^4.57.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/style-runtime": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", + "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/theme": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", + "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "@jridgewell/trace-mapping": "^0.3.31", + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/style-runtime": "^0.13.0", + "colorjs.io": "^0.7.1", + "magic-string": "^0.30.21", + "memize": "^2.1.1" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "esbuild": ">=0.27.2 <1.0.0", + "lightningcss": ">=1.33.0 <2.0.0", + "postcss": "^8.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19", + "stylelint": "^16 || ^17", + "vite": "^7 || ^8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/theme/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/ui": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", + "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@base-ui/react": "^1.8.0", + "@daypicker/react": "^10.0.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/theme": "^2.3.0", + "@wordpress/warning": "^3.57.0", + "clsx": "^2.1.1", + "date-fns": "^4.4.0", + "tabbable": "^6.4.0" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/ui/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/ui/node_modules/@wordpress/icons": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", + "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "@wordpress/primitives": "^4.57.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/image-cropper/node_modules/colorjs.io": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", + "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/@wordpress/image-cropper/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/image-cropper/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/interactivity": { + "version": "6.56.0", + "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.56.0.tgz", + "integrity": "sha512-wUbJ0CQttTit5Z4VcQkcr5nJUA8Roqi1q5l7pOcUpr5pPUEDzIWrqTEYewiVbwh089sSry0IT6PN5c3vpNVGGA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@preact/signals": "^1.3.0", + "@preact/signals-core": "^1.7.0", + "preact": "^10.29.1" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/is-shallow-equal": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.57.0.tgz", + "integrity": "sha512-QoIVWgnkKHAgrFB9hfpnmGvrAbutsa53DNl08i98guhtVVTSLzttlxgJxA3wpIepmR8FYiLNGB2Kfa49NdyIwg==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/jest-console": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.32.0.tgz", + "integrity": "sha512-Sq4Ss0gJNmLzpJ9K/5Nto/FTV5L7ALvmdfA7b8JpmuKh32CETN4uIGDSfqS2a5Pfcg4KepwnL6jF9790uM54QA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "jest-matcher-utils": "^29.6.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "jest": ">=29" + } + }, + "node_modules/@wordpress/jest-preset-default": { + "version": "12.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.32.0.tgz", + "integrity": "sha512-Y8X+0KCjUiB1MxxwridiY0Ku3iJVOTJSsutSReu+rM/hS/1azlBMctC0bqUyC0mQyBqPF0SNlpHjYdsAoVEznQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/jest-console": "^8.32.0", + "babel-jest": "29.7.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@babel/core": ">=7", + "jest": ">=29" + } + }, + "node_modules/@wordpress/kebab-case": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/kebab-case/-/kebab-case-1.4.0.tgz", + "integrity": "sha512-JPKIhuGPJD4NE4HBK4+lviDCi2SgBWcOLpmggBCpbeHKI4ogTKmzaeTL1RYFlMOjKkrkjAPJ0R1v7r5aX0YkLQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@wordpress/keyboard-shortcuts": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.57.0.tgz", + "integrity": "sha512-vmA9pHbrZvI9jZHEU7rqjFIwuyEUR0azuPtgjvMXB00FXiQIjCdEWJCJSdpAzKdSJPiZmqgan7//ypjyd00k1g==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/data": "^10.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/keycodes": "^4.57.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/keycodes": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.57.0.tgz", + "integrity": "sha512-IhPt1cAy00wxGECraOlWJMT+PwgLdh1CqS57RDsdhXMCs//AbIKFBMNxvEjPyq9aeU3looVJzcBR1zVhWkDErQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/i18n": "^6.30.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.57.0.tgz", + "integrity": "sha512-h9JgAqeO3jlnfxRHrn9VwxYmBTWaShLTBGepAQdRqnkc54WteYAW+3lkKUTc8ORIKTwKsKbg8ncyelrf6Jdw6w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/a11y": "^4.57.0", + "@wordpress/components": "^42.0.0", + "@wordpress/data": "^10.57.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/base-styles": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", + "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/components": { + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", + "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.40", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.1.9", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/base-styles": "^13.3.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/date": "^5.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/escape-html": "^3.57.0", + "@wordpress/hooks": "^4.57.0", + "@wordpress/html-entities": "^4.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/kebab-case": "^1.4.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/rich-text": "^7.57.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/ui": "^0.24.0", + "@wordpress/warning": "^3.57.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.4", + "csstype": "^3.2.3", + "date-fns": "^4.4.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.1.0", + "memize": "^2.1.1", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.11.2", + "react-colorful": "^5.6.1", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/components/node_modules/@wordpress/icons": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", + "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "@wordpress/primitives": "^4.57.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/style-runtime": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", + "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/theme": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", + "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "@jridgewell/trace-mapping": "^0.3.31", + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/style-runtime": "^0.13.0", + "colorjs.io": "^0.7.1", + "magic-string": "^0.30.21", + "memize": "^2.1.1" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "esbuild": ">=0.27.2 <1.0.0", + "lightningcss": ">=1.33.0 <2.0.0", + "postcss": "^8.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19", + "stylelint": "^16 || ^17", + "vite": "^7 || ^8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/ui": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", + "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@base-ui/react": "^1.8.0", + "@daypicker/react": "^10.0.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/theme": "^2.3.0", + "@wordpress/warning": "^3.57.0", + "clsx": "^2.1.1", + "date-fns": "^4.4.0", + "tabbable": "^6.4.0" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/@wordpress/ui/node_modules/@wordpress/icons": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", + "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "@wordpress/primitives": "^4.57.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/notices/node_modules/colorjs.io": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", + "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/@wordpress/notices/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/notices/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/npm-package-json-lint-config": { + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.32.0.tgz", + "integrity": "sha512-X3D9g0m0OIM6FfdHfmyGENOZG53kc+i49WuHnDnC1gZWV5Ai0SD/CNfRcPZOYw7Ld9CScrM3kqXAKG7nd1fGFg==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "npm-package-json-lint": ">=6.0.0" + } + }, + "node_modules/@wordpress/postcss-plugins-preset": { + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.32.0.tgz", + "integrity": "sha512-cJGgp8Z3o8dKfUWQZtQ/gNceYwLQET1z7RqkOAaSI5O0lelGit8gqpWeA7qYyZb9K1kWwhz8GGVWUIsQhCo2sQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/base-styles": "^6.8.0", + "autoprefixer": "^10.4.20" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/@wordpress/preferences": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.57.0.tgz", + "integrity": "sha512-whB6UYV80wLuGGZ7hlqV67jRIXIfPocZVBy59OfXgy/dLmr6rhCdApXiAIF8gdRRwd55B4Nn+oCgfEzCrn5ehg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/a11y": "^4.57.0", + "@wordpress/base-styles": "^13.3.0", + "@wordpress/components": "^42.0.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/data": "^10.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/private-apis": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/base-styles": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", + "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/components": { + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", + "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.40", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.1.9", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/base-styles": "^13.3.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/date": "^5.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/escape-html": "^3.57.0", + "@wordpress/hooks": "^4.57.0", + "@wordpress/html-entities": "^4.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/kebab-case": "^1.4.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/rich-text": "^7.57.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/ui": "^0.24.0", + "@wordpress/warning": "^3.57.0", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.4", + "csstype": "^3.2.3", + "date-fns": "^4.4.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.1.0", + "memize": "^2.1.1", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.11.2", + "react-colorful": "^5.6.1", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/icons": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", + "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "@wordpress/primitives": "^4.57.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/style-runtime": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", + "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/theme": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", + "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "@jridgewell/trace-mapping": "^0.3.31", + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/style-runtime": "^0.13.0", + "colorjs.io": "^0.7.1", + "magic-string": "^0.30.21", + "memize": "^2.1.1" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "esbuild": ">=0.27.2 <1.0.0", + "lightningcss": ">=1.33.0 <2.0.0", + "postcss": "^8.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19", + "stylelint": "^16 || ^17", + "vite": "^7 || ^8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/ui": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", + "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@base-ui/react": "^1.8.0", + "@daypicker/react": "^10.0.1", + "@wordpress/a11y": "^4.57.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/element": "^9.0.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/icons": "^18.0.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/primitives": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/react-inert-value": "^1.0.0", + "@wordpress/style-runtime": "^0.13.0", + "@wordpress/theme": "^2.3.0", + "@wordpress/warning": "^3.57.0", + "clsx": "^2.1.1", + "date-fns": "^4.4.0", + "tabbable": "^6.4.0" + }, + "engines": { + "node": "^20.19.0 || >=22.13.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/preferences/node_modules/colorjs.io": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", + "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/@wordpress/preferences/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/preferences/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/@wordpress/prettier-config": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.32.0.tgz", + "integrity": "sha512-fS4Z5hXewajLKxbMQY4rdq3fSpUnwHHfLWqOJHXlu3u4rjqVf0VMJsLsSsSM8tV78rU6x6dWIEugG6CnDygYjA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "prettier": ">=3" + } + }, + "node_modules/@wordpress/primitives": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.57.0.tgz", + "integrity": "sha512-TP4t+RTe7krEIhdl4oiqkmuKHAkRj3FAlCYfTjutrYHNGzBeYCkNdRd4QcMl2l+uSabLVQZ7XXDyFcKSzZJNdA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^9.0.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/primitives/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/priority-queue": { + "version": "3.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.57.0.tgz", + "integrity": "sha512-ZIfR49tJ8MKEARh/Ucy18QsVQXzeriFXcR0q+urvnCwaPwgpAY1bQo1a5oA0Mw5wO+uDvjGt7m5uZZeSxfHzxg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "requestidlecallback": "^0.3.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/private-apis": { + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.56.0.tgz", + "integrity": "sha512-LwtJallQ1xT1ABbulaW9lYswuMS20s/sQCX71Rf9s37M9qQBZ0Pw7hkkeCU6ik6jPkorHsLhbGCeThcAcHYr2w==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/react-inert-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/react-inert-value/-/react-inert-value-1.0.0.tgz", + "integrity": "sha512-7B8vdjQhqdeyblzL/RldlWpaJuCidRq5TrY0s33brpONmayMLlc4na+o4qckKONxEoZKg3KN1cm81A3WeSnOzw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/redux-routine": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.57.0.tgz", + "integrity": "sha512-k28mJoPzwJaIWtpM6kSSEXG3bggqMbFtaRm9tu9uDYtIc268NYb0j9/wAR8Zi8IZ7Gw2bP3So3r0hv0RoXVIPA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "rungen": "^0.3.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "redux": ">=4" + } + }, + "node_modules/@wordpress/rich-text": { + "version": "7.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.57.0.tgz", + "integrity": "sha512-7Qlh8jynGsaagfOUA3t8bourV+r6F8CN5EOanj6MIrsqZaasLT80zhGZeBBR21V77HVNFFCMlDIFNjxmvgmmxA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/a11y": "^4.57.0", + "@wordpress/compose": "^8.10.0", + "@wordpress/data": "^10.57.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/escape-html": "^3.57.0", + "@wordpress/i18n": "^6.30.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/private-apis": "^2.0.0", + "colord": "^2.9.4" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/rich-text/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/rich-text/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/rich-text/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/rich-text/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/scripts": { + "version": "30.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.25.0.tgz", + "integrity": "sha512-sUL6R4aYzdvrg8V7W49RxLsLavv7ZuQ4/6gIb/ZCYZDwhzT4feqdMXyViwmlyaQMIxTMJy93zD+7jFrUGy07Sw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/core": "7.25.7", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", + "@svgr/webpack": "^8.0.1", + "@wordpress/babel-preset-default": "^8.32.0", + "@wordpress/browserslist-config": "^6.32.0", + "@wordpress/dependency-extraction-webpack-plugin": "^6.32.0", + "@wordpress/e2e-test-utils-playwright": "^1.32.0", + "@wordpress/eslint-plugin": "^22.18.0", + "@wordpress/jest-preset-default": "^12.32.0", + "@wordpress/npm-package-json-lint-config": "^5.32.0", + "@wordpress/postcss-plugins-preset": "^5.32.0", + "@wordpress/prettier-config": "^4.32.0", + "@wordpress/stylelint-config": "^23.24.0", + "adm-zip": "^0.5.9", + "babel-jest": "29.7.0", + "babel-loader": "9.2.1", + "browserslist": "^4.21.10", + "chalk": "^4.0.0", + "check-node-version": "^4.1.0", + "copy-webpack-plugin": "^10.2.0", + "cross-spawn": "^7.0.6", + "css-loader": "^6.2.0", + "cssnano": "^6.0.1", + "cwd": "^0.10.0", + "dir-glob": "^3.0.1", + "eslint": "^8.3.0", + "expect-puppeteer": "^4.4.0", + "fast-glob": "^3.2.7", + "filenamify": "^4.2.0", + "jest": "^29.6.2", + "jest-dev-server": "^10.1.4", + "jest-environment-jsdom": "^29.6.2", + "jest-environment-node": "^29.6.2", + "json2php": "^0.0.9", + "markdownlint-cli": "^0.31.1", + "merge-deep": "^3.0.3", + "mini-css-extract-plugin": "^2.9.2", + "minimist": "^1.2.0", + "npm-package-json-lint": "^6.4.0", + "npm-packlist": "^3.0.0", + "postcss": "^8.4.5", + "postcss-loader": "^6.2.1", + "prettier": "npm:wp-prettier@3.0.3", + "puppeteer-core": "^23.10.1", + "react-refresh": "^0.14.0", + "read-pkg-up": "^7.0.1", + "resolve-bin": "^0.4.0", + "rtlcss": "^4.3.0", + "sass": "^1.54.0", + "sass-loader": "^16.0.3", + "schema-utils": "^4.2.0", + "source-map-loader": "^3.0.0", + "stylelint": "^16.8.2", + "terser-webpack-plugin": "^5.3.10", + "url-loader": "^4.1.1", + "webpack": "^5.97.0", + "webpack-bundle-analyzer": "^4.9.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + }, + "bin": { + "wp-scripts": "bin/wp-scripts.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@playwright/test": "^1.55.0", + "@wordpress/env": "^10.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@wordpress/env": { + "optional": true + } + } + }, + "node_modules/@wordpress/scripts/node_modules/@babel/core": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@wordpress/scripts/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@wordpress/scripts/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@wordpress/scripts/node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/@wordpress/scripts/node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@wordpress/scripts/node_modules/css-loader/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@wordpress/scripts/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@wordpress/scripts/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@wordpress/scripts/node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@wordpress/scripts/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@wordpress/scripts/node_modules/json2php": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz", + "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==", + "dev": true, + "license": "BSD" + }, + "node_modules/@wordpress/scripts/node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/scripts/node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/@wordpress/scripts/node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/@wordpress/scripts/node_modules/markdownlint": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", + "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-it": "12.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/scripts/node_modules/markdownlint-cli": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", + "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "~9.0.0", + "get-stdin": "~9.0.0", + "glob": "~7.2.0", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.0.0", + "markdownlint": "~0.25.1", + "markdownlint-rule-helpers": "~0.16.0", + "minimatch": "~3.0.5", + "run-con": "~1.2.10" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/scripts/node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/scripts/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@wordpress/scripts/node_modules/run-con": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", + "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/@wordpress/scripts/node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/shortcode": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.57.0.tgz", + "integrity": "sha512-FQvDTVC6XS/Q8RYxgCLCo/akf/UlgUwHvI8zga0bzKzyuyXHprx4ujQkGO8w4uM4uDSxLVaO/ISYW9KGSNvhpA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "memize": "^2.1.1" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/style-engine": { + "version": "2.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.57.0.tgz", + "integrity": "sha512-CmBwZjdWJkqOlPIkEgbyOczd8jn7hrg/lwXhNji0ICs4IgZFh6bk1z10njFFs02v4rBh/rJ0OWUBDrc+C6LtsQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/style-runtime": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.6.0.tgz", + "integrity": "sha512-PSNzFecFRJ7gmah5YxHFv0a0ZUwZOdeO9/B8GNyv2LgC/ZLXS8CtsAblOKVRO3W7ExwazbHwexaTAOzU/+7Mug==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, + "node_modules/@wordpress/stylelint-config": { + "version": "23.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.24.0.tgz", + "integrity": "sha512-qF0zRv/fLK29/jEjQnY0xy1hrP5Cv6ReG10QkVAtSlaBvu07Hu+RWNIVrSznwlrbzzP+2JM61lO2oAeX/3LD+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@stylistic/stylelint-plugin": "^3.0.1", + "stylelint-config-recommended": "^14.0.1", + "stylelint-config-recommended-scss": "^14.1.0" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" + }, + "peerDependencies": { + "stylelint": "^16.8.2", + "stylelint-scss": "^6.4.0" } }, - "node_modules/@wordpress/scripts": { - "version": "30.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.25.0.tgz", - "integrity": "sha512-sUL6R4aYzdvrg8V7W49RxLsLavv7ZuQ4/6gIb/ZCYZDwhzT4feqdMXyViwmlyaQMIxTMJy93zD+7jFrUGy07Sw==", + "node_modules/@wordpress/sync": { + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/@wordpress/sync/-/sync-1.56.0.tgz", + "integrity": "sha512-vqhlXSfIkbTLV9UFolu7NWIaZNThDBJz4zlmUAEiPo+5eEIHGaPvkbvj3pgNjlLXQYjNeHurgxqc6uVot/zLiw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/core": "7.25.7", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", - "@svgr/webpack": "^8.0.1", - "@wordpress/babel-preset-default": "^8.32.0", - "@wordpress/browserslist-config": "^6.32.0", - "@wordpress/dependency-extraction-webpack-plugin": "^6.32.0", - "@wordpress/e2e-test-utils-playwright": "^1.32.0", - "@wordpress/eslint-plugin": "^22.18.0", - "@wordpress/jest-preset-default": "^12.32.0", - "@wordpress/npm-package-json-lint-config": "^5.32.0", - "@wordpress/postcss-plugins-preset": "^5.32.0", - "@wordpress/prettier-config": "^4.32.0", - "@wordpress/stylelint-config": "^23.24.0", - "adm-zip": "^0.5.9", - "babel-jest": "29.7.0", - "babel-loader": "9.2.1", - "browserslist": "^4.21.10", - "chalk": "^4.0.0", - "check-node-version": "^4.1.0", - "copy-webpack-plugin": "^10.2.0", - "cross-spawn": "^7.0.6", - "css-loader": "^6.2.0", - "cssnano": "^6.0.1", - "cwd": "^0.10.0", - "dir-glob": "^3.0.1", - "eslint": "^8.3.0", - "expect-puppeteer": "^4.4.0", - "fast-glob": "^3.2.7", - "filenamify": "^4.2.0", - "jest": "^29.6.2", - "jest-dev-server": "^10.1.4", - "jest-environment-jsdom": "^29.6.2", - "jest-environment-node": "^29.6.2", - "json2php": "^0.0.9", - "markdownlint-cli": "^0.31.1", - "merge-deep": "^3.0.3", - "mini-css-extract-plugin": "^2.9.2", - "minimist": "^1.2.0", - "npm-package-json-lint": "^6.4.0", - "npm-packlist": "^3.0.0", - "postcss": "^8.4.5", - "postcss-loader": "^6.2.1", - "prettier": "npm:wp-prettier@3.0.3", - "puppeteer-core": "^23.10.1", - "react-refresh": "^0.14.0", - "read-pkg-up": "^7.0.1", - "resolve-bin": "^0.4.0", - "rtlcss": "^4.3.0", - "sass": "^1.54.0", - "sass-loader": "^16.0.3", - "schema-utils": "^4.2.0", - "source-map-loader": "^3.0.0", - "stylelint": "^16.8.2", - "terser-webpack-plugin": "^5.3.10", - "url-loader": "^4.1.1", - "webpack": "^5.97.0", - "webpack-bundle-analyzer": "^4.9.1", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" + "@wordpress/api-fetch": "^7.56.0", + "@wordpress/hooks": "^4.56.0", + "@wordpress/private-apis": "^1.56.0", + "@wordpress/undo-manager": "^1.56.0", + "diff": "^8.0.3", + "fast-deep-equal": "^3.1.3", + "lib0": "^0.2.99", + "y-protocols": "^1.0.7", + "yjs": "^13.6.29" }, - "bin": { - "wp-scripts": "bin/wp-scripts.js" + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/theme": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.17.0.tgz", + "integrity": "sha512-BU+PLBLxMBM4WJYrd1QEwy+IA64vUP+8IEEB9lLx2NfB+3/45vvuvXx9o3qPKRDHvtMtEaRArld4Kn05UIW9IA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/compose": "^8.2.0", + "@wordpress/deprecated": "^4.49.0", + "@wordpress/element": "^8.1.0", + "@wordpress/private-apis": "^1.49.0", + "@wordpress/style-runtime": "^0.5.0", + "colorjs.io": "^0.6.0", + "memize": "^2.1.0" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" }, "peerDependencies": { - "@playwright/test": "^1.55.0", - "@wordpress/env": "^10.0.0", + "@types/react": "^18.3.27", + "esbuild": "^0.27.2", + "postcss": "^8.0.0", "react": "^18.0.0", - "react-dom": "^18.0.0" + "react-dom": "^18.0.0", + "stylelint": "^16.8.2", + "vite": "^7.3.2" }, "peerDependenciesMeta": { - "@wordpress/env": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "postcss": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { "optional": true } } }, - "node_modules/@wordpress/scripts/node_modules/@babel/core": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", - "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "node_modules/@wordpress/theme/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" }, "engines": { - "node": ">=6.9.0" + "node": ">=18.12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@wordpress/theme/node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", "dev": true, - "license": "Python-2.0" + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@wordpress/scripts/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/@wordpress/theme/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/theme/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/theme/node_modules/@wordpress/style-runtime": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.5.0.tgz", + "integrity": "sha512-hrXvdDUJpOzT1KIomgtysysgbc5bkkwAuJyEUAXiOCgVBXBeMkZlgfN19W0PuNY51j53K7VQ42txfayxgVmfgA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, + "node_modules/@wordpress/token-list": { + "version": "3.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.57.0.tgz", + "integrity": "sha512-K8CNdJRHjQzKAL0HYSxab/pNJVQZTv0xV/cbssaf2WwiDy3jVCNvWGg7S886rRPr2yLgoVMhv12B6IAhJ1SSFw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/ui": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.17.0.tgz", + "integrity": "sha512-+mMnJmkvFjTk7veIioU/idaPfb6HJCcBV408v1gKsbpLa+dxG+rLdlrpzJILLlZmHUyCrJXk9EmYZi6MkFoL9A==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@base-ui/react": "^1.5.0", + "@wordpress/a11y": "^4.50.0", + "@wordpress/compose": "^8.3.0", + "@wordpress/element": "^8.2.0", + "@wordpress/i18n": "^6.23.0", + "@wordpress/icons": "^15.1.0", + "@wordpress/keycodes": "^4.50.0", + "@wordpress/primitives": "^4.50.0", + "@wordpress/private-apis": "^1.50.0", + "@wordpress/style-runtime": "^0.6.0", + "@wordpress/theme": "^0.17.0", + "clsx": "^2.1.1", + "tabbable": "^6.4.0" + }, + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + }, + "peerDependencies": { + "@types/react": "^18.3.27", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/ui/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@wordpress/ui/node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "node_modules/@wordpress/ui/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=18.12.0" } }, - "node_modules/@wordpress/scripts/node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "node_modules/@wordpress/ui/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=18.12.0" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" }, "peerDependenciesMeta": { - "@rspack/core": { + "@types/react": { "optional": true }, - "webpack": { + "@types/react-dom": { "optional": true } } }, - "node_modules/@wordpress/scripts/node_modules/css-loader/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "node_modules/@wordpress/ui/node_modules/@wordpress/icons": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", + "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^8.6.0", + "@wordpress/primitives": "^4.54.0", + "change-case": "^4.1.2" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@wordpress/scripts/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "node_modules/@wordpress/undo-manager": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.57.0.tgz", + "integrity": "sha512-LGTnpgeuRKDiEMrfzfAxkivlhN6apCsIVx3v7lyRb3vcr1rM9j8JL34W/+sLDLaUafb4I1f/LEBFRB18F55/Gg==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/is-shallow-equal": "^5.57.0" + }, "engines": { - "node": ">= 4" + "node": ">=18.12.0" } }, - "node_modules/@wordpress/scripts/node_modules/ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "node_modules/@wordpress/upload-media": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.35.0.tgz", + "integrity": "sha512-Xpka03EVJZd0BORFsgYZhGnrSHwolwXkDR+g4S+VQoWOCbhZSX9VRPgEiPSxzp3i4HTCvgXyeEo6sEKNrhlllg==", "dev": true, - "license": "ISC", + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/blob": "^4.50.0", + "@wordpress/compose": "^8.3.0", + "@wordpress/data": "^10.50.0", + "@wordpress/element": "^8.2.0", + "@wordpress/i18n": "^6.23.0", + "@wordpress/preferences": "^4.50.0", + "@wordpress/private-apis": "^1.50.0", + "@wordpress/url": "^4.50.0", + "@wordpress/vips": "^2.3.0", + "uuid": "^14.0.0" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@types/react": "^18.3.27", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/compose": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", + "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "argparse": "^2.0.1" + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/dom": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/keycodes": "^4.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/undo-manager": "^1.57.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/json2php": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz", - "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==", - "dev": true, - "license": "BSD" - }, - "node_modules/@wordpress/scripts/node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/scripts/node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/compose/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "uc.micro": "^1.0.1" + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" } }, - "node_modules/@wordpress/scripts/node_modules/markdownlint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", - "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/data": { + "version": "10.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", + "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "markdown-it": "12.3.2" + "@wordpress/compose": "^8.10.0", + "@wordpress/deprecated": "^4.57.0", + "@wordpress/element": "^9.0.0", + "@wordpress/is-shallow-equal": "^5.57.0", + "@wordpress/priority-queue": "^3.57.0", + "@wordpress/private-apis": "^2.0.0", + "@wordpress/redux-routine": "^5.57.0", + "deepmerge": "^4.3.1", + "equivalent-key-map": "^0.2.2", + "is-plain-object": "^5.1.0", + "is-promise": "^4.0.0", + "redux": "^5.0.1", + "rememo": "^4.0.2" }, "engines": { - "node": ">=12" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/markdownlint-cli": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", - "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/data/node_modules/@wordpress/element": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", + "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "commander": "~9.0.0", - "get-stdin": "~9.0.0", - "glob": "~7.2.0", - "ignore": "~5.2.0", - "js-yaml": "^4.1.0", - "jsonc-parser": "~3.0.0", - "markdownlint": "~0.25.1", - "markdownlint-rule-helpers": "~0.16.0", - "minimatch": "~3.0.5", - "run-con": "~1.2.10" - }, - "bin": { - "markdownlint": "markdownlint.js" + "@wordpress/escape-html": "^3.57.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, "engines": { - "node": ">=12" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", + "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", "dev": true, - "license": "MIT" + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } }, - "node_modules/@wordpress/scripts/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "node_modules/@wordpress/upload-media/node_modules/@wordpress/element": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", + "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", "dev": true, - "license": "ISC", + "license": "GPL-2.0-or-later", "dependencies": { - "brace-expansion": "^1.1.7" + "@wordpress/escape-html": "^3.56.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.1.0" }, "engines": { - "node": "*" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@types/react": "^18 || ^19", + "@types/react-dom": "^18 || ^19", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/run-con": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", - "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~3.0.0", - "minimist": "^1.2.8", - "strip-json-comments": "~3.1.1" - }, + "node_modules/@wordpress/upload-media/node_modules/uuid": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", + "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "run-con": "cli.js" + "uuid": "dist-node/bin/uuid" } }, - "node_modules/@wordpress/scripts/node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "node_modules/@wordpress/url": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.57.0.tgz", + "integrity": "sha512-2y8No4z7GNlrNjR7hUTThSG7hVRDAQixwFxPj8JUydjMS9nv02PBgZhy7XakFXVZFw2PsmajTW56+BdQFKp96A==", "dev": true, - "license": "MIT" + "license": "GPL-2.0-or-later", + "dependencies": { + "remove-accents": "^0.5.0" + }, + "engines": { + "node": ">=18.12.0" + } }, - "node_modules/@wordpress/stylelint-config": { - "version": "23.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.24.0.tgz", - "integrity": "sha512-qF0zRv/fLK29/jEjQnY0xy1hrP5Cv6ReG10QkVAtSlaBvu07Hu+RWNIVrSznwlrbzzP+2JM61lO2oAeX/3LD+g==", + "node_modules/@wordpress/vips": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/vips/-/vips-2.4.0.tgz", + "integrity": "sha512-VOpP5RK+FyuxB3uzNsruAl9Np71pgzpLcUuz7LSoh4UUL+S2xI1UEPU9Dki6/3COSca/2vqocwjOrAYFEf/Y1w==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "@stylistic/stylelint-plugin": "^3.0.1", - "stylelint-config-recommended": "^14.0.1", - "stylelint-config-recommended-scss": "^14.1.0" + "@wordpress/worker-threads": "^1.11.0", + "wasm-vips": "^0.0.18" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" - }, - "peerDependencies": { - "stylelint": "^16.8.2", - "stylelint-scss": "^6.4.0" } }, "node_modules/@wordpress/warning": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.32.0.tgz", - "integrity": "sha512-6dPNKfJAOXijIMi9k/QdS/IQvHXcl5ErNM10y5dIhhLDuGmsZlQER06VrVmQIVAkbsmL49OfrqkqMOQidp61JA==", + "version": "3.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.57.0.tgz", + "integrity": "sha512-QZiohW7oPbHci796qcfz6i4jw1ybNwQqCaFk7/KigCUUjXMQv8WoKVX8IdoRF8MpelDmEUoZur6O+KXWPQ0bLw==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/wordcount": { + "version": "4.57.0", + "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.57.0.tgz", + "integrity": "sha512-V/pTuODLnqrlZFm7kL++EpUX/CFP371JPstswdPQeuE0tu1F+wYLRmSPEazQSNgj9VGJXaAF9VCz7pF7M5INrw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@wordpress/worker-threads": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/worker-threads/-/worker-threads-1.17.0.tgz", + "integrity": "sha512-Pnw5u+BmiY5fNsoyUi7+99BmncNXalhu7nWos83TLX1RSxyWunTouUZagbq0La+DLoc4ogYhJNVtLfMygvwsEw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "comctx": "^1.4.3" + }, + "engines": { + "node": ">=18.12.0" } }, "node_modules/@wp-playground/blueprints": { @@ -9973,6 +15516,19 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", @@ -10282,6 +15838,13 @@ "postcss": "^8.1.0" } }, + "node_modules/autosize": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", + "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==", + "dev": true, + "license": "MIT" + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -10451,6 +16014,49 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-plugin-macros/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", @@ -11530,6 +17136,23 @@ "node": ">=6" } }, + "node_modules/cmdk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", + "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "^1.1.1", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -11569,9 +17192,9 @@ "license": "MIT" }, "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", "dev": true, "license": "MIT" }, @@ -11582,6 +17205,17 @@ "dev": true, "license": "MIT" }, + "node_modules/colorjs.io": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz", + "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -11595,6 +17229,13 @@ "node": ">= 0.8" } }, + "node_modules/comctx": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/comctx/-/comctx-1.7.6.tgz", + "integrity": "sha512-rDhDqh6qfmivZfVOGi4qs8RB3PnVtIAB5zLsWu4JqCoQ1p4IEJSB5pW2JvOhFwCMmCLiei9qpaIMxmVVQRhzyw==", + "dev": true, + "license": "MIT" + }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -11678,6 +17319,12 @@ "dev": true, "license": "MIT" }, + "node_modules/computed-style": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", + "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -12974,9 +18621,9 @@ "license": "MIT" }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, "license": "MIT" }, @@ -13080,6 +18727,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-fns-jalali": { + "version": "4.1.0-0", + "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", + "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==", + "dev": true, + "license": "MIT" + }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -13393,6 +19058,16 @@ "dev": true, "license": "ISC" }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -13448,6 +19123,13 @@ "dev": true, "license": "MIT" }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "dev": true, + "license": "MIT" + }, "node_modules/devtools-protocol": { "version": "0.0.1507524", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz", @@ -13455,6 +19137,16 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -13746,6 +19438,16 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", @@ -13820,6 +19522,13 @@ "node": ">=4" } }, + "node_modules/equivalent-key-map": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz", + "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew==", + "dev": true, + "license": "MIT" + }, "node_modules/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -15494,6 +21203,13 @@ "find-process": "bin/find-process.js" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true, + "license": "MIT" + }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -15678,6 +21394,34 @@ "url": "https://github.com/sponsors/rawify" } }, + "node_modules/framer-motion": { + "version": "11.18.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", + "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "motion-dom": "^11.18.1", + "motion-utils": "^11.18.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -15883,6 +21627,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -15979,6 +21733,17 @@ "node": ">= 14" } }, + "node_modules/gettext-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", + "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.12", + "safe-buffer": "^5.1.1" + } + }, "node_modules/git-hooks-list": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.2.0.tgz", @@ -16205,6 +21970,15 @@ "dev": true, "license": "ISC" }, + "node_modules/gradient-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-1.2.0.tgz", + "integrity": "sha512-6ABGa9CR7WR/0pAJicBy5SJkiikbFM6kf/JjykwX7x+t+s8ORWVnlbi6FkHeFFb36yWsjUpHqSYrygd7ofEUqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -16384,6 +22158,30 @@ "tslib": "^2.0.3" } }, + "node_modules/highlight-words-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz", + "integrity": "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -16490,6 +22288,13 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/hpq": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.4.0.tgz", + "integrity": "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==", + "dev": true, + "license": "MIT" + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -17404,9 +23209,9 @@ } }, "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", "dev": true, "license": "MIT", "engines": { @@ -17420,6 +23225,13 @@ "dev": true, "license": "MIT" }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -17645,6 +23457,17 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic.js": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz", + "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -18835,6 +24658,28 @@ "node": ">= 0.8.0" } }, + "node_modules/lib0": { + "version": "0.2.119", + "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.119.tgz", + "integrity": "sha512-vh+TiejVy8Xm+hCdnRfn9BthGNvNUZdEXltNjVZL3TzRIKP3s1lnQh8pWd/Q0wCgY0FPAGVVjFF4ZiHUV3LFgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isomorphic.js": "^0.2.4" + }, + "bin": { + "0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js", + "0gentesthtml": "bin/gentesthtml.js", + "0serve": "bin/0serve.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + } + }, "node_modules/lighthouse": { "version": "12.8.2", "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz", @@ -19039,6 +24884,19 @@ "url": "https://github.com/sponsors/antonk52" } }, + "node_modules/line-height": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", + "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==", + "dev": true, + "license": "MIT", + "dependencies": { + "computed-style": "~0.1.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -19294,6 +25152,16 @@ "lz-string": "bin/bin.js" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -19492,6 +25360,19 @@ "dev": true, "license": "MIT" }, + "node_modules/marked": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-18.1.1.tgz", + "integrity": "sha512-zEGgrtUG8crk+TrMacJSVABU4DYDDkS8uqgU3ohrn/2fW9C2AEfUrO3m6IhpIpQpl7YcVpiXXC9cSMWDANT3dg==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/marky": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", @@ -19568,6 +25449,13 @@ "node": ">= 4.0.0" } }, + "node_modules/memize": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz", + "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==", + "dev": true, + "license": "MIT" + }, "node_modules/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", @@ -19917,6 +25805,53 @@ "dev": true, "license": "MIT" }, + "node_modules/moment": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz", + "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.48", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", + "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/motion-dom": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", + "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "motion-utils": "^11.18.1" + } + }, + "node_modules/motion-utils": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", + "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==", + "dev": true, + "license": "Apache-2.0 WITH LLVM-exception" + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -20136,6 +26071,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", @@ -21154,6 +27096,23 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/parsel-js": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/parsel-js/-/parsel-js-1.2.3.tgz", + "integrity": "sha512-kJHFmSNnujpusFfVEXjNaoJ09VYHF8Ih0aVUn7Clu+Ug8AFoA2wx7Ezh17JfW4+vhm/lauAd9A+//uFkmydZtQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/LeaVerou" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/leaverou" + } + ], + "license": "MIT" + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -22083,6 +28042,16 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-prefix-selector": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", + "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": ">4 <9" + } + }, "node_modules/postcss-reduce-initial": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", @@ -22224,6 +28193,19 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-urlrebase": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/postcss-urlrebase/-/postcss-urlrebase-1.4.0.tgz", + "integrity": "sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.3.0" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -22274,6 +28256,25 @@ "node": ">=0.10.0" } }, + "node_modules/preact": { + "version": "10.29.8", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.8.tgz", + "integrity": "sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "preact-render-to-string": ">=5" + }, + "peerDependenciesMeta": { + "preact-render-to-string": { + "optional": true + } + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -22713,6 +28714,17 @@ "node": ">=0.10.0" } }, + "node_modules/re-resizable": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz", + "integrity": "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -22726,6 +28738,56 @@ "node": ">=0.10.0" } }, + "node_modules/react-autosize-textarea": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz", + "integrity": "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "autosize": "^4.0.2", + "line-height": "^0.3.1", + "prop-types": "^15.5.6" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0", + "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/react-colorful": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.8.1.tgz", + "integrity": "sha512-oz68bhsnFWnpDf1ZR8daiQbYpXUnM2h2J6hl9Zg2rTpM/DU6vCqe1E+CpqmqLnJucMZetHZeifSAfJ+geN9lcA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-day-picker": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.14.0.tgz", + "integrity": "sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@date-fns/tz": "^1.4.1", + "@tabby_ai/hijri-converter": "1.0.5", + "date-fns": "^4.1.0", + "date-fns-jalali": "4.1.0-0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/gpbl" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -22740,6 +28802,21 @@ "react": "^18.3.1" } }, + "node_modules/react-easy-crop": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.7.tgz", + "integrity": "sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-wheel": "^1.0.1", + "tslib": "^2.0.1" + }, + "peerDependencies": { + "react": ">=16.4.0", + "react-dom": ">=16.4.0" + } + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -22757,6 +28834,78 @@ "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -22897,6 +29046,13 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "dev": true, + "license": "MIT" + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -23019,6 +29175,20 @@ "node": ">=4" } }, + "node_modules/rememo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/rememo/-/rememo-4.0.2.tgz", + "integrity": "sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "dev": true, + "license": "MIT" + }, "node_modules/requestidlecallback": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz", @@ -23085,6 +29255,13 @@ "dev": true, "license": "MIT" }, + "node_modules/reselect": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.3.0.tgz", + "integrity": "sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -23314,6 +29491,13 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rungen": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/rungen/-/rungen-0.3.2.tgz", + "integrity": "sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw==", + "dev": true, + "license": "MIT" + }, "node_modules/rxjs": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", @@ -24090,6 +30274,13 @@ "url": "https://github.com/steveukx/git-js?sponsor=1" } }, + "node_modules/simple-html-tokenizer": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz", + "integrity": "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==", + "dev": true, + "license": "MIT" + }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", @@ -25315,6 +31506,13 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "dev": true, + "license": "MIT" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -25451,6 +31649,13 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tabbable": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", + "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", + "dev": true, + "license": "MIT" + }, "node_modules/table": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", @@ -25492,6 +31697,16 @@ "dev": true, "license": "MIT" }, + "node_modules/tannin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", + "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tannin/plural-forms": "^1.1.0" + } + }, "node_modules/tapable": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", @@ -26487,6 +32702,71 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", + "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -26621,6 +32901,16 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/wasm-vips": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/wasm-vips/-/wasm-vips-0.0.18.tgz", + "integrity": "sha512-AJyCvxZj/3qceKNnh+YyEobu/IaJFoPN7x7SxyyHmYBS3kASMqJqxQEuN0ZHKQDWsCJ8armfx4Tq3uKrNc+nMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=17.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", @@ -27416,6 +33706,27 @@ "node": ">=0.4" } }, + "node_modules/y-protocols": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.7.tgz", + "integrity": "sha512-YSVsLoXxO67J6eE/nV4AtFtT3QEotZf5sK5BHxFBXso7VDUT3Tx07IfA6hsu5Q5OmBdMkQVmFZ9QOA7fikWvnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lib0": "^0.2.85" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + }, + "peerDependencies": { + "yjs": "^13.0.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -27489,6 +33800,24 @@ "fd-slicer": "~1.1.0" } }, + "node_modules/yjs": { + "version": "13.6.33", + "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.33.tgz", + "integrity": "sha512-q/UYvr1gOk4XII+Cu1CW2dINjYqJJFifTzogEaIARznrvX7uOlHsdTEXcnOBMuIsrCGEEKdNxi74kyMLZlKVfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lib0": "^0.2.99" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 1e1420c2..66dcfb5e 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,8 @@ "@babel/preset-react": "^7.25.7", "@testing-library/jest-dom": "^6.1.5", "@testing-library/react": "^14.1.2", + "@wordpress/core-data": "7.32.0", + "@wordpress/data": "10.32.0", "@wordpress/dependency-extraction-webpack-plugin": "^6.20.0", "@wordpress/e2e-test-utils-playwright": "^1.20.0", "@wordpress/env": "^10.39.0", diff --git a/tests/js/bindings/helpers/core-data-environment.js b/tests/js/bindings/helpers/core-data-environment.js new file mode 100644 index 00000000..6c2f82d8 --- /dev/null +++ b/tests/js/bindings/helpers/core-data-environment.js @@ -0,0 +1,8 @@ +/** + * Browser encoding APIs missing from Jest's jsdom environment. + * Import before core-data (whose sync dependency uses TextEncoder at load time). + */ +import { TextEncoder, TextDecoder } from 'util'; + +global.TextEncoder = TextEncoder; +global.TextDecoder = TextDecoder; diff --git a/tests/js/bindings/hooks.integration.test.js b/tests/js/bindings/hooks.integration.test.js new file mode 100644 index 00000000..83ed78ae --- /dev/null +++ b/tests/js/bindings/hooks.integration.test.js @@ -0,0 +1,227 @@ +/** + * Integration tests against real core-data resolvers and a fresh registry. + * The tested path uses real selectors/resolvers with a mocked REST boundary. + * Unrelated editor packages and the metadata side effect retain their mocks. + */ +jest.unmock( '@wordpress/data' ); +jest.unmock( '@wordpress/core-data' ); +jest.unmock( '@wordpress/element' ); +jest.unmock( '@wordpress/compose' ); +jest.unmock( '@wordpress/url' ); +jest.unmock( '@wordpress/i18n' ); +jest.unmock( '@wordpress/hooks' ); + +jest.mock( '../../../assets/src/js/bindings/fieldMetadataCache', () => ( { + addFieldMetadata: jest.fn(), +} ) ); + +import './helpers/core-data-environment'; +import { act, cleanup, render, waitFor } from '@testing-library/react'; +import { createElement } from '@wordpress/element'; +import { createRegistry, RegistryProvider } from '@wordpress/data'; +import { store as coreDataStore } from '@wordpress/core-data'; +import apiFetch from '@wordpress/api-fetch'; +import { useSiteEditorFields } from '../../../assets/src/js/bindings/hooks'; + +const productFields = { field1: { label: 'Field 1', type: 'text' } }; +const bookFields = { bookField: { label: 'Book field', type: 'text' } }; +const delay = () => new Promise( ( resolve ) => setTimeout( resolve, 20 ) ); + +function Consumer( { type, index, results, history } ) { + const result = useSiteEditorFields( type ); + results[ index ] = result; + history.push( result.fields ); + return null; +} + +function mountConsumers( registry, types ) { + const results = Array( types.length ).fill( null ); + const history = []; + const view = render( + createElement( + RegistryProvider, + { value: registry }, + types.map( ( type, index ) => + createElement( Consumer, { + key: index, + type, + index, + results, + history, + } ) + ) + ) + ); + return { ...view, results, history }; +} + +async function expectFields( results, fields ) { + await waitFor( () => { + for ( const result of results ) { + expect( result ).not.toBeNull(); + expect( result.isLoading ).toBe( false ); + expect( result.error ).toBeNull(); + expect( result.fields ).toEqual( fields ); + } + } ); +} + +async function resolveRootConfiguration( registry ) { + // Resolve root configuration normally, including its unrelated settings + // OPTIONS request. No post-type record or resolution is preseeded. + await registry.resolveSelect( coreDataStore ).getEntitiesConfig( 'root' ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + expect( apiFetch ).toHaveBeenCalledWith( { + path: '/wp/v2/settings', + method: 'OPTIONS', + } ); + apiFetch.mockClear(); +} + +describe( 'useSiteEditorFields with real core-data', () => { + let registry; + + beforeEach( async () => { + registry = createRegistry(); + registry.register( coreDataStore ); + apiFetch.mockReset(); + apiFetch.mockImplementation( async ( { path, method, parse } ) => { + await delay(); + if ( path === '/wp/v2/settings' && method === 'OPTIONS' ) { + return { schema: { properties: {} } }; + } + const url = new URL( path, 'https://example.test' ); + const type = url.pathname.split( '/' ).pop(); + if ( ! [ 'product', 'book' ].includes( type ) ) { + throw new Error( `Unexpected REST path: ${ path }` ); + } + const fields = type === 'book' ? bookFields : productFields; + const record = { + slug: type, + scf_field_groups: [ + { + title: 'Group', + fields: Object.entries( fields ).map( + ( [ name, metadata ] ) => ( { name, ...metadata } ) + ), + }, + ], + }; + // The real resolver requests parse:false to read permission headers. + return parse === false ? { json: async () => record } : record; + } ); + await resolveRootConfiguration( registry ); + } ); + + afterEach( cleanup ); + + it.each( [ 1, 10, 200 ] )( + 'shares one edit-schema request across %i consumers', + async ( count ) => { + const { results } = mountConsumers( + registry, + Array( count ).fill( 'product' ) + ); + await expectFields( results, productFields ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + const url = new URL( + apiFetch.mock.calls[ 0 ][ 0 ].path, + 'https://example.test' + ); + expect( url.pathname ).toBe( '/wp/v2/types/product' ); + expect( url.searchParams.get( 'context' ) ).toBe( 'edit' ); + } + ); + + it( 'joins an already pending getPostType request', async () => { + const fetchSchema = apiFetch.getMockImplementation(); + let release; + const gate = new Promise( ( resolve ) => { + release = resolve; + } ); + apiFetch.mockImplementationOnce( async ( options ) => { + await gate; + return fetchSchema( options ); + } ); + const pending = registry + .resolveSelect( coreDataStore ) + .getPostType( 'product' ); + await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 1 ) ); + const { results } = mountConsumers( + registry, + Array( 10 ).fill( 'product' ) + ); + const loading = results.map( ( result ) => result.isLoading ); + await act( async () => { + release(); + await pending; + } ); + expect( loading ).toEqual( Array( 10 ).fill( true ) ); + await expectFields( results, productFields ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + } ); + + it( 'reuses a resolved type on remount', async () => { + const first = mountConsumers( registry, [ 'product' ] ); + await expectFields( first.results, productFields ); + first.unmount(); + const second = mountConsumers( registry, [ 'product' ] ); + await expectFields( second.results, productFields ); + await act( delay ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + } ); + + it( 'resolves a different type once without mixing fields', async () => { + const products = mountConsumers( registry, [ 'product', 'product' ] ); + await expectFields( products.results, productFields ); + const books = mountConsumers( registry, [ 'book', 'book' ] ); + await expectFields( books.results, bookFields ); + await expectFields( products.results, productFields ); + expect( apiFetch ).toHaveBeenCalledTimes( 2 ); + expect( apiFetch.mock.calls[ 1 ][ 0 ].path ).toContain( + '/wp/v2/types/book' + ); + } ); + + it( 'keeps stored fields in every render during an explicit refetch', async () => { + const { results, history } = mountConsumers( + registry, + Array( 10 ).fill( 'product' ) + ); + await expectFields( results, productFields ); + history.length = 0; + act( () => results[ 0 ].refresh() ); + for ( const result of results ) { + expect( result.fields ).toEqual( productFields ); + expect( result.isLoading ).toBe( true ); + } + await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 2 ) ); + await expectFields( results, productFields ); + expect( history.length ).toBeGreaterThan( 0 ); + for ( const fields of history ) { + expect( fields ).toEqual( productFields ); + } + expect( apiFetch ).toHaveBeenCalledTimes( 2 ); + } ); + + it( 'shares a failed resolution without automatically retrying', async () => { + const error = new Error( 'Temporary REST failure' ); + apiFetch.mockImplementationOnce( async () => { + await delay(); + throw error; + } ); + const { results } = mountConsumers( + registry, + Array( 10 ).fill( 'product' ) + ); + await waitFor( () => { + for ( const result of results ) { + expect( result.isLoading ).toBe( false ); + expect( result.error ).toBe( error ); + expect( result.fields ).toEqual( {} ); + } + } ); + await act( delay ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + } ); +} ); diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index b48cbb28..64b01178 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -4,7 +4,6 @@ import { renderHook } from '@testing-library/react'; import { useSelect, useDispatch } from '@wordpress/data'; -import apiFetch from '@wordpress/api-fetch'; // Mock the fieldMetadataCache module jest.mock( '../../../assets/src/js/bindings/fieldMetadataCache', () => ( { @@ -301,21 +300,8 @@ describe( 'Custom Hooks', () => { expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalledWith( result.current.fields ); - expect( apiFetch ).not.toHaveBeenCalled(); } ); - it.each( [ 1, 10, 50, 200 ] )( - 'never starts a private fetch for %i consumers', - ( count ) => { - const consumers = Array.from( { length: count }, () => - renderHook( () => useSiteEditorFields( 'product' ) ) - ); - expect( apiFetch ).not.toHaveBeenCalled(); - consumers.forEach( ( { unmount } ) => unmount() ); - expect( invalidateResolution ).not.toHaveBeenCalled(); - } - ); - it( 'does no lookup or refresh for a null type', () => { const { result } = renderHook( () => useSiteEditorFields( null ) ); result.current.refresh(); From d1bbf3b4f5779b725998abea3c6621163b3a7e08 Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Sat, 17 Oct 2026 17:55:07 +0000 Subject: [PATCH 6/9] Preserve hook regression coverage across shared resolution Restore recognizable behavior test names and explicit metadata, null-type, and empty/missing-group assertions. Retain a dedicated real-resolver request-parameter check. Add controlled pending-request tests for unmounting one shared consumer and changing the type of the same mounted consumer, including late results for its previous type. Verify the surviving consumer completes, remount reuses the result, old fields do not leak, and request counts remain bounded. Test-only change: 39 suites / 976 tests pass. All 12 real-registry cases pass in three repeated runs; both modified test files pass lint and formatting. Production code and dependencies are unchanged. --- tests/js/bindings/hooks.integration.test.js | 117 +++++++++++++++++++- tests/js/bindings/hooks.test.js | 51 ++++++--- 2 files changed, 148 insertions(+), 20 deletions(-) diff --git a/tests/js/bindings/hooks.integration.test.js b/tests/js/bindings/hooks.integration.test.js index 83ed78ae..cbf46a0d 100644 --- a/tests/js/bindings/hooks.integration.test.js +++ b/tests/js/bindings/hooks.integration.test.js @@ -37,11 +37,11 @@ function Consumer( { type, index, results, history } ) { function mountConsumers( registry, types ) { const results = Array( types.length ).fill( null ); const history = []; - const view = render( + const tree = ( nextTypes ) => createElement( RegistryProvider, { value: registry }, - types.map( ( type, index ) => + nextTypes.map( ( type, index ) => createElement( Consumer, { key: index, type, @@ -50,9 +50,27 @@ function mountConsumers( registry, types ) { history, } ) ) - ) - ); - return { ...view, results, history }; + ); + const view = render( tree( types ) ); + return { + ...view, + results, + history, + rerenderTypes: ( nextTypes ) => view.rerender( tree( nextTypes ) ), + }; +} + +function holdNextRequest() { + const fetchSchema = apiFetch.getMockImplementation(); + let release; + const gate = new Promise( ( resolve ) => { + release = resolve; + } ); + apiFetch.mockImplementationOnce( async ( options ) => { + await gate; + return fetchSchema( options ); + } ); + return release; } async function expectFields( results, fields ) { @@ -161,6 +179,95 @@ describe( 'useSiteEditorFields with real core-data', () => { expect( apiFetch ).toHaveBeenCalledTimes( 1 ); } ); + it( 'should call apiFetch with correct parameters', async () => { + const { results } = mountConsumers( registry, [ 'product' ] ); + expect( results[ 0 ].isLoading ).toBe( true ); + await expectFields( results, productFields ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + expect( apiFetch ).toHaveBeenCalledWith( { + path: '/wp/v2/types/product?context=edit', + parse: false, + } ); + } ); + + // Unlike the former per-instance cancellation test, a shared request must + // survive one consumer unmounting so the remaining consumers can finish. + it( 'should preserve a pending shared fetch when one consumer unmounts', async () => { + const release = holdNextRequest(); + const first = mountConsumers( registry, [ 'product' ] ); + await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 1 ) ); + const request = apiFetch.mock.calls[ 0 ][ 0 ]; + const second = mountConsumers( registry, [ 'product' ] ); + expect( first.results[ 0 ].isLoading ).toBe( true ); + expect( second.results[ 0 ].isLoading ).toBe( true ); + first.unmount(); + const renderCount = first.history.length; + expect( request.signal?.aborted ).not.toBe( true ); + const pending = registry + .resolveSelect( coreDataStore ) + .getPostType( 'product' ); + await act( async () => { + release(); + await pending; + } ); + await expectFields( second.results, productFields ); + expect( first.history ).toHaveLength( renderCount ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + const remounted = mountConsumers( registry, [ 'product' ] ); + await expectFields( remounted.results, productFields ); + await act( delay ); + expect( apiFetch ).toHaveBeenCalledTimes( 1 ); + } ); + + it( 'should update when post type changes in the same consumer', async () => { + const consumer = mountConsumers( registry, [ 'product' ] ); + await expectFields( consumer.results, productFields ); + const release = holdNextRequest(); + consumer.history.length = 0; + consumer.rerenderTypes( [ 'book' ] ); + expect( consumer.results[ 0 ].fields ).toEqual( {} ); + expect( consumer.results[ 0 ].isLoading ).toBe( true ); + await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 2 ) ); + const pending = registry + .resolveSelect( coreDataStore ) + .getPostType( 'book' ); + await act( async () => { + release(); + await pending; + } ); + await expectFields( consumer.results, bookFields ); + for ( const fields of consumer.history ) { + expect( fields ).not.toHaveProperty( 'field1' ); + } + consumer.rerenderTypes( [ null ] ); + await expectFields( consumer.results, {} ); + await act( delay ); + expect( apiFetch ).toHaveBeenCalledTimes( 2 ); + } ); + + it( 'should ignore a late response for the previous type in the same consumer', async () => { + const release = holdNextRequest(); + const consumer = mountConsumers( registry, [ 'product' ] ); + await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 1 ) ); + expect( consumer.results[ 0 ].isLoading ).toBe( true ); + const pending = registry + .resolveSelect( coreDataStore ) + .getPostType( 'product' ); + consumer.history.length = 0; + consumer.rerenderTypes( [ 'book' ] ); + expect( consumer.results[ 0 ].fields ).toEqual( {} ); + await expectFields( consumer.results, bookFields ); + await act( async () => { + release(); + await pending; + } ); + await expectFields( consumer.results, bookFields ); + for ( const fields of consumer.history ) { + expect( fields ).not.toHaveProperty( 'field1' ); + } + expect( apiFetch ).toHaveBeenCalledTimes( 2 ); + } ); + it( 'reuses a resolved type on remount', async () => { const first = mountConsumers( registry, [ 'product' ] ); await expectFields( first.results, productFields ); diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index 64b01178..6386b815 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -287,7 +287,7 @@ describe( 'Custom Hooks', () => { ); } ); - it( 'uses the shared edit-context entity and preserves field metadata', () => { + it( 'should fetch fields for a post type', () => { const { result } = renderHook( () => useSiteEditorFields( 'product' ) ); @@ -302,12 +302,23 @@ describe( 'Custom Hooks', () => { ); } ); - it( 'does no lookup or refresh for a null type', () => { + it( 'should store field metadata in cache on successful fetch', () => { + const { result } = renderHook( () => + useSiteEditorFields( 'product' ) + ); + expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalledWith( + result.current.fields + ); + expect( result.current.fields ).toHaveProperty( 'field1' ); + } ); + + it( 'should reset when post type is null', () => { const { result } = renderHook( () => useSiteEditorFields( null ) ); result.current.refresh(); expect( core.getPostType ).not.toHaveBeenCalled(); expect( result.current.fields ).toEqual( {} ); expect( result.current.isLoading ).toBe( false ); + expect( result.current.error ).toBeNull(); expect( invalidateResolution ).not.toHaveBeenCalled(); } ); @@ -336,7 +347,7 @@ describe( 'Custom Hooks', () => { ).not.toHaveBeenCalled(); } ); - it( 'reports a failed resolution as finished without fields', () => { + it( 'should handle API errors', () => { const error = new Error( 'Temporary failure' ); core.getPostType.mockReturnValue( undefined ); core.hasFinishedResolution.mockReturnValue( true ); @@ -367,7 +378,7 @@ describe( 'Custom Hooks', () => { ); } ); - it( 'switches keys immediately and does not apply an old type result', () => { + it( 'should update when post type changes', () => { core.getPostType.mockImplementation( ( type ) => type === 'product' ? { scf_field_groups: groups } : undefined ); @@ -382,9 +393,18 @@ describe( 'Custom Hooks', () => { rerender( { type: 'book' } ); expect( result.current.fields ).toEqual( {} ); expect( result.current.isLoading ).toBe( true ); + } ); + + it( 'should handle post type changing from value to null', () => { + const { result, rerender } = renderHook( + ( { type } ) => useSiteEditorFields( type ), + { initialProps: { type: 'product' } } + ); + expect( result.current.fields ).toHaveProperty( 'field1' ); rerender( { type: null } ); expect( result.current.fields ).toEqual( {} ); expect( result.current.isLoading ).toBe( false ); + expect( result.current.error ).toBeNull(); } ); it( 'keeps valid fields alongside malformed groups without a fetch error', () => { @@ -404,17 +424,18 @@ describe( 'Custom Hooks', () => { ); } ); - it.each( [ {}, { scf_field_groups: [] } ] )( - 'handles empty/missing field groups', - ( record ) => { - core.getPostType.mockReturnValue( record ); - const { result } = renderHook( () => - useSiteEditorFields( 'product' ) - ); - expect( result.current.fields ).toEqual( {} ); - expect( result.current.error ).toBeNull(); - } - ); + it.each( [ + [ 'empty scf_field_groups', { scf_field_groups: [] } ], + [ 'missing scf_field_groups in response', {} ], + ] )( 'should handle %s', ( description, record ) => { + core.getPostType.mockReturnValue( record ); + const { result } = renderHook( () => + useSiteEditorFields( 'product' ) + ); + expect( result.current.fields ).toEqual( {} ); + expect( result.current.isLoading ).toBe( false ); + expect( result.current.error ).toBeNull(); + } ); } ); describe( 'useBoundFields', () => { From 3bd4ac5aed3848cba69d0043254fbf39320acf1e Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Mon, 19 Oct 2026 14:05:41 +0300 Subject: [PATCH 7/9] Revert accidental name change on lock package-lock.json --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 87f4a0ba..2dcde8be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "scf-source-fix", + "name": "secure-custom-fields", "lockfileVersion": 3, "requires": true, "packages": { From 18b0637e21a1e57d4ad39cb7fadfba298db6d5dc Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Tue, 20 Oct 2026 16:42:31 +0300 Subject: [PATCH 8/9] Move real-registry integration tests out of resolver fix Preserve the integration coverage on a separate branch and remove its test file and environment helper from this PR. Restore package.json and package-lock.json to the upstream base, removing the added WordPress test dependencies and their large lockfile diff. Restore mock-based no-private-fetch assertions while retaining the newer hook regression coverage. --- package-lock.json | 7491 ++--------------- package.json | 2 - .../bindings/helpers/core-data-environment.js | 8 - tests/js/bindings/hooks.integration.test.js | 334 - tests/js/bindings/hooks.test.js | 14 + 5 files changed, 595 insertions(+), 7254 deletions(-) delete mode 100644 tests/js/bindings/helpers/core-data-environment.js delete mode 100644 tests/js/bindings/hooks.integration.test.js diff --git a/package-lock.json b/package-lock.json index 2dcde8be..98076750 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,6 @@ "@babel/preset-react": "^7.25.7", "@testing-library/jest-dom": "^6.1.5", "@testing-library/react": "^14.1.2", - "@wordpress/core-data": "7.32.0", - "@wordpress/data": "10.32.0", "@wordpress/dependency-extraction-webpack-plugin": "^6.20.0", "@wordpress/e2e-test-utils-playwright": "^1.20.0", "@wordpress/env": "^10.39.0", @@ -68,101 +66,6 @@ "node": ">=6.0.0" } }, - "node_modules/@ariakit/components": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/@ariakit/components/-/components-0.1.15.tgz", - "integrity": "sha512-Rq8cU/DXURIHbvRPZHXmUd7RHkTG0cXDjkjSWSeQEOQHp8w1bNenYUygoe0MzM0gwWakHrctA78XWGFgHmzUWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ariakit/store": "0.1.11", - "@ariakit/utils": "0.2.2" - } - }, - "node_modules/@ariakit/react": { - "version": "0.4.42", - "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.42.tgz", - "integrity": "sha512-D+nElmWhT2w0TV0BKUh84ox21AaflvMv1dTt6Fn9TEOQIdZmOAqF1B6VAv69L5R1oyLzNV7neLD8cMTku+vbEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ariakit/react-components": "0.7.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ariakit" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@ariakit/react-components": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@ariakit/react-components/-/react-components-0.7.1.tgz", - "integrity": "sha512-HOqqJqwtXYCrdwYRZeIg/hvXCPceGO+Ts+UIu9FIIIeaVqAxgyFYUb8Umbh40Wscek3PrYDdx/r5B5lpByUX8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ariakit/components": "0.1.15", - "@ariakit/react-store": "0.1.13", - "@ariakit/react-utils": "0.2.8", - "@ariakit/store": "0.1.11", - "@ariakit/utils": "0.2.2", - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@ariakit/react-store": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/@ariakit/react-store/-/react-store-0.1.13.tgz", - "integrity": "sha512-/4R0HVcx14RlYCNqffytY9v3E+HLn+kL/Iaef3iOGSSvzr+Po75ZFJzMrNv3jVZsuhXXTilI16XmRT8nSiSUsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ariakit/react-utils": "0.2.8", - "@ariakit/store": "0.1.11", - "@ariakit/utils": "0.2.2", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@ariakit/react-utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@ariakit/react-utils/-/react-utils-0.2.8.tgz", - "integrity": "sha512-F8bQ4tbPxK9oniw/XS2HB0bCvZA0djpkFlFsqx4rGH1RPrhwg17OCf6rOMCo1nMfAqrUT6rpdRkxlocmgaznvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ariakit/store": "0.1.11", - "@ariakit/utils": "0.2.2" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@ariakit/store": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@ariakit/store/-/store-0.1.11.tgz", - "integrity": "sha512-rffsPgyf6MTVK3pZSS86oKIj8370F9229c/7QqCwvbEIl0zM0bfEEdE6K+djnsabwajhWlJ/2syURdD4x30rXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ariakit/utils": "0.2.2" - } - }, - "node_modules/@ariakit/utils": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@ariakit/utils/-/utils-0.2.2.tgz", - "integrity": "sha512-OjdYlnJ8dW6XkBHirX0jx8bzLm577IL9Fe8T9dPrNKgCVvvJJiUL18iA5Oqqq9+FQ5ahhx5t4WgdE+2AaqG3IA==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -472,9 +375,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -482,9 +385,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, "license": "MIT", "engines": { @@ -531,13 +434,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", - "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.8" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -2126,95 +2029,19 @@ } }, "node_modules/@babel/types": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", - "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@base-ui/react": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.9.0.tgz", - "integrity": "sha512-S8CSYosASBKtpL8SWUfS78rFElfLijiCgA7oHOK22jCJ95FULsYyKwBNFOgudt0RA+/7yNc7F81bOvQnRgbBiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7 || ^8.0.0", - "@base-ui/utils": "0.5.0", - "@floating-ui/react-dom": "^2.1.9", - "@floating-ui/utils": "^0.2.12", - "use-sync-external-store": "^1.7.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@date-fns/tz": "^1.2.0", - "@types/react": "^17 || ^18 || ^19", - "date-fns": "^4.0.0", - "react": "^17 || ^18 || ^19", - "react-dom": "^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "@date-fns/tz": { - "optional": true - }, - "@types/react": { - "optional": true - }, - "date-fns": { - "optional": true - } - } - }, - "node_modules/@base-ui/react/node_modules/@babel/runtime": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-8.0.7.tgz", - "integrity": "sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@base-ui/utils": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.5.0.tgz", - "integrity": "sha512-dYGGcEttjkYiMoa5nHm8vLaJ2UcuTWxo3BFAwOYXeRg/q7UVVvA6cacEIXEs3FgBfK1CGtW1ptElqs7wsx+t9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7 || ^8.0.0", - "@floating-ui/utils": "^0.2.12", - "reselect": "^5.3.0", - "use-sync-external-store": "^1.7.0" - }, - "peerDependencies": { - "@types/react": "^17 || ^18 || ^19", - "react": "^17 || ^18 || ^19", - "react-dom": "^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@base-ui/utils/node_modules/@babel/runtime": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-8.0.7.tgz", - "integrity": "sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg==", - "dev": true, - "license": "MIT" - }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", @@ -2343,73 +2170,6 @@ "@csstools/css-tokenizer": "^3.0.1" } }, - "node_modules/@date-fns/tz": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", - "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@date-fns/utc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@date-fns/utc/-/utc-2.1.1.tgz", - "integrity": "sha512-SlJDfG6RPeEX8wEVv6ZB3kak4MmbtyiI2qX/5zuKdordbrhB/iaJ58GVMZgJ6P1sJaM1gMgENFYYeg1JWrCFrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@daypicker/react": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@daypicker/react/-/react-10.0.2.tgz", - "integrity": "sha512-Z/gvGXnc/xjRr5Z6l9OhIey00C7kwbIyJ85Pff9B9EWDkjTlkTQztB3qeylmGJDQ9xmxRJUV1W+02rskqarUBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-day-picker": "10.0.2" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/gpbl" - }, - "peerDependencies": { - "@types/react": ">=16.8.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@daypicker/react/node_modules/react-day-picker": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-10.0.2.tgz", - "integrity": "sha512-QetiKtZWE9Uaw/pM/SYNv6WPYOTRnSJ2puL0GgwkmUFMIwiY0dtjH1W4B7DOVXVNQM0ZOClGpH/heOfBSzWeiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@date-fns/tz": "^1.4.1", - "date-fns": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/gpbl" - }, - "peerDependencies": { - "@types/react": ">=16.8.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -2431,196 +2191,6 @@ "url": "https://github.com/sponsors/JounQin" } }, - "node_modules/@emotion/babel-plugin": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", - "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.3.3", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@emotion/babel-plugin/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", - "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/css": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz", - "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.13.5", - "@emotion/serialize": "^1.3.3", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.2" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", - "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", - "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", - "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.2", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@emotion/styled": { - "version": "11.14.1", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", - "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/is-prop-valid": "^1.3.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", - "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", - "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", - "dev": true, - "license": "MIT" - }, "node_modules/@es-joy/jsdoccomment": { "version": "0.41.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", @@ -2756,48 +2326,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@floating-ui/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", - "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.12" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", - "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.8.0", - "@floating-ui/utils": "^0.2.12" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz", - "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.8.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", - "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", - "dev": true, - "license": "MIT" - }, "node_modules/@formatjs/ecma402-abstract": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", @@ -6543,42 +6071,14 @@ "dev": true, "license": "MIT" }, - "node_modules/@preact/signals": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-1.3.4.tgz", - "integrity": "sha512-TPMkStdT0QpSc8FpB63aOwXoSiZyIrPsP9Uj347KopdS6olZdAYeeird/5FZv/M1Yc1ge5qstub2o8VDbvkT4g==", + "node_modules/@prisma/instrumentation": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz", + "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@preact/signals-core": "^1.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - }, - "peerDependencies": { - "preact": "10.x" - } - }, - "node_modules/@preact/signals-core": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.4.tgz", - "integrity": "sha512-HNB6HYeYKhQbJ1aKl+YRjrS4+QWHLKX6qKoUsfS/m0vqzsVaEBiZiaKbG/e+NKk2ch5ALQr/ihWaMHxiCuuWHA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/@prisma/instrumentation": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz", - "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" + "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" @@ -6620,417 +6120,6 @@ "node": ">=10" } }, - "node_modules/@radix-ui/primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.2.0.tgz", - "integrity": "sha512-KABY+VMIRPJL+Vyzv/335FEhXXD/xDv8BMb1kl48/aXJZMH0LtHCTx5ga5RnxaEP3nZHtmTLf1P9vanmFX46bw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", - "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.3.0.tgz", - "integrity": "sha512-v5AYEocMISkbJ+1fTXzZpiFv7NRr3D2WiYbLIKf+FkmJ8VkP6d503eV2n34MFussHXY1pcoq3yfJiQH77dc4Mg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.3.1.tgz", - "integrity": "sha512-+0E4qvVTwjAWra9sEhJ+9BTsvHE00zkUuNw1VGh7S+Gc13dfYk+S1PVQdchWDj+XYHhAai7Z7IpzXVDCGsDplg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.2.0", - "@radix-ui/react-compose-refs": "1.1.5", - "@radix-ui/react-context": "1.3.0", - "@radix-ui/react-dismissable-layer": "1.2.1", - "@radix-ui/react-focus-guards": "1.2.0", - "@radix-ui/react-focus-scope": "1.3.1", - "@radix-ui/react-id": "1.1.4", - "@radix-ui/react-portal": "1.2.0", - "@radix-ui/react-presence": "1.1.11", - "@radix-ui/react-primitive": "2.2.0", - "@radix-ui/react-slot": "1.5.0", - "@radix-ui/react-use-controllable-state": "1.3.0", - "@radix-ui/react-use-layout-effect": "1.1.4", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.7.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.2.1.tgz", - "integrity": "sha512-KIfDcAsx+oVylFZ4xryVKusJUrLLhTQmfnJW4kwk4Km5myvhHCrj04hnWWUC166+xD4DHdH8tQGylwYX1h6+Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.2.0", - "@radix-ui/react-compose-refs": "1.1.5", - "@radix-ui/react-primitive": "2.2.0", - "@radix-ui/react-use-callback-ref": "1.1.5", - "@radix-ui/react-use-effect-event": "0.0.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.2.0.tgz", - "integrity": "sha512-MPm5R0iRGUDrDnPNxmLBkv+X7pN4XKzt+MbWJEuJQsH3NFH4omrbpXpucyYCCKTSt+na/ZxGhEWQrWTZ0285cA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.3.1.tgz", - "integrity": "sha512-ugeMhbXt4y5S2T1GnIqbWDKEN962PDwnX1fN0eKOOgf5f63Dh2mn8F1FUySlgW0iF6GiVsRF32DzuDIWTUyQJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.5", - "@radix-ui/react-primitive": "2.2.0", - "@radix-ui/react-use-callback-ref": "1.1.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", - "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.2.0.tgz", - "integrity": "sha512-StX7xXnaRU41VvFtMm9zlhVGz8XF6GmWWTXftkQaY+tqVkbs/R9UmAp5mLzHHapk5hM9RMZQvO/3usyIP/g42g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.2.0", - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.11.tgz", - "integrity": "sha512-Z7/atlkab36Z8hm+V8zYc79r0W+tiOB1o0tun1By94JyadkekLQmtEAnBSP9XKXBNQsStoStS4+gX10JpS5akA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.2.0.tgz", - "integrity": "sha512-HCTSPMNqv55Qk0IX4geJbpyXazmqulcimwuyjxTkKi29v+QZbG2Zho9BnbBq4YS2PF+KlNb2CXoLz66uUmblkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.5.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.5.0.tgz", - "integrity": "sha512-tyYd9ddPXAysAbdbD9eYxgwpCSv6f3PncqVSNKQFSR5lcJVLz3cb/pANDoYrLiHBpXv7skortyUgGUWsYuPPFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.5" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.5.tgz", - "integrity": "sha512-Y5GBf4NKeADoXI1geiMlMuMoURT3k9MizzzKhGb/m55H94aGigZ01PIpkvsO6lML13BA6XYAXSJ6gza7vTn5nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.3.0.tgz", - "integrity": "sha512-TAcBI7bw2ljYCbv4+zuTSd6zICu8pRt6SDN2vJ/Z06K2MXh6I9WYFe/A9ovlFDtR5HVHGm5iDxDoABm/++dbKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.2.0", - "@radix-ui/react-use-effect-event": "0.0.5", - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", - "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", - "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@react-spring/animated": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz", - "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-spring/shared": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/core": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz", - "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-spring/animated": "~9.7.5", - "@react-spring/shared": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-spring/donate" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/rafz": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz", - "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@react-spring/shared": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz", - "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-spring/rafz": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/types": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz", - "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@react-spring/web": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.5.tgz", - "integrity": "sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-spring/animated": "~9.7.5", - "@react-spring/core": "~9.7.5", - "@react-spring/shared": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -7510,62 +6599,10 @@ "node": ">=10" } }, - "node_modules/@tabby_ai/hijri-converter": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@tabby_ai/hijri-converter/-/hijri-converter-1.0.5.tgz", - "integrity": "sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@tannin/compile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz", - "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/evaluate": "^1.2.0", - "@tannin/postfix": "^1.1.0" - } - }, - "node_modules/@tannin/evaluate": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz", - "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tannin/plural-forms": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz", - "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/compile": "^1.1.0" - } - }, - "node_modules/@tannin/postfix": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz", - "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tannin/sprintf": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@tannin/sprintf/-/sprintf-1.3.3.tgz", - "integrity": "sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7899,20 +6936,6 @@ "@types/node": "*" } }, - "node_modules/@types/gradient-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-1.1.0.tgz", - "integrity": "sha512-SaEcbgQscHtGJ1QL+ajgDTmmqU2f6T+00jZRcFlVHUW2Asivc84LNUev/UQFyu117AsdyrtI+qpwLvgjJXJxmw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/highlight-words-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/highlight-words-core/-/highlight-words-core-1.2.3.tgz", - "integrity": "sha512-PWNU/NR0CaYEsK38mcCTyDzeS2TlEGK9kRhRMz1i86jVAe836ZlA3gl6QYpu+CG6IpfNKTgWpEnJuRededvC0g==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", @@ -8025,13 +7048,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/mousetrap": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.15.tgz", - "integrity": "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", @@ -8127,14 +7143,14 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", - "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", + "version": "18.3.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz", + "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==", "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", - "csstype": "^3.2.2" + "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { @@ -8557,26 +7573,6 @@ "dev": true, "license": "ISC" }, - "node_modules/@use-gesture/core": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", - "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@use-gesture/react": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz", - "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@use-gesture/core": "10.3.1" - }, - "peerDependencies": { - "react": ">= 16.8.0" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -8785,55 +7781,6 @@ } } }, - "node_modules/@wordpress/a11y": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.57.0.tgz", - "integrity": "sha512-1BhlEYblenx5w5SkHaEdBodcNf93NDt5nd7QmOc1PpDVxWsGc/ARO30puvUlTnc1tq0Z8KEwy/wiPaTJUoprLw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/dom-ready": "^4.57.0", - "@wordpress/i18n": "^6.30.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/api-fetch": { - "version": "7.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.57.0.tgz", - "integrity": "sha512-NM9whtviaDmHmoJORHCZ1TqDRiC0nPooN/IqGEwfr2nX1X8F6d4hvOceiOZJJDTXQzdJoun5c9oUNQ4IrABQ4w==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/i18n": "^6.30.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/url": "^4.57.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/api-fetch/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/autop": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.57.0.tgz", - "integrity": "sha512-qDnGKl9zdGYFPeFXetG7DGjhHLQW2GVlNYqFW2CjSwysRy6lACTGmyvRyGIOdm1EYeDBt5o0mvQxVPnh1TRo9A==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, "node_modules/@wordpress/babel-preset-default": { "version": "8.32.0", "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.32.0.tgz", @@ -9052,5313 +7999,823 @@ "npm": ">=8.19.2" } }, - "node_modules/@wordpress/blob": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.57.0.tgz", - "integrity": "sha512-t1ghgANfEzzSSNyPEIWE8PDX+wgvtzxkQX9yYG8o7jeDDqRS3aveKJS8226HkISqt7pAg+JN7iS7MaoQWT5Fuw==", + "node_modules/@wordpress/browserslist-config": { + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.32.0.tgz", + "integrity": "sha512-8NemosyPrey1yswd6LH8vX9mcRF6Xmqt2mKUCspnmEX4KvayyezmtJPh2EQo3GfySVHGWePzb0yfMYEqDdsC0Q==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/block-editor": { - "version": "15.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-15.23.0.tgz", - "integrity": "sha512-L/oGA/DHwo4s8MzzqaQ+UegehiujXVo184ttmyhgOzj69HT1P403ju6Of8o4tfRh+2xzH6GIjIOt0HPse9ZKpg==", + "node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.32.0.tgz", + "integrity": "sha512-05XLzLx+cTXgid6/qI6XzBclNvkLIi9F0oLAn4htL1ExIXLfc9yBSNcNkVVP7Tr5pmpMq0NUxfM58jqxxmFfCQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@react-spring/web": "^9.4.5", - "@wordpress/a11y": "^4.50.0", - "@wordpress/base-styles": "^10.2.0", - "@wordpress/blob": "^4.50.0", - "@wordpress/block-serialization-default-parser": "^5.50.0", - "@wordpress/blocks": "^15.23.0", - "@wordpress/commands": "^1.50.0", - "@wordpress/components": "^36.1.0", - "@wordpress/compose": "^8.3.0", - "@wordpress/data": "^10.50.0", - "@wordpress/dataviews": "^17.1.0", - "@wordpress/date": "^5.50.0", - "@wordpress/deprecated": "^4.50.0", - "@wordpress/dom": "^4.50.0", - "@wordpress/element": "^8.2.0", - "@wordpress/escape-html": "^3.50.0", - "@wordpress/global-styles-engine": "^1.17.0", - "@wordpress/hooks": "^4.50.0", - "@wordpress/html-entities": "^4.50.0", - "@wordpress/i18n": "^6.23.0", - "@wordpress/icons": "^15.1.0", - "@wordpress/image-cropper": "^1.14.0", - "@wordpress/interactivity": "^6.50.0", - "@wordpress/is-shallow-equal": "^5.50.0", - "@wordpress/keyboard-shortcuts": "^5.50.0", - "@wordpress/keycodes": "^4.50.0", - "@wordpress/notices": "^5.50.0", - "@wordpress/preferences": "^4.50.0", - "@wordpress/priority-queue": "^3.50.0", - "@wordpress/private-apis": "^1.50.0", - "@wordpress/rich-text": "^7.50.0", - "@wordpress/style-engine": "^2.50.0", - "@wordpress/token-list": "^3.50.0", - "@wordpress/ui": "^0.17.0", - "@wordpress/upload-media": "^0.35.0", - "@wordpress/url": "^4.50.0", - "@wordpress/warning": "^3.50.0", - "@wordpress/wordcount": "^4.50.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.3", - "deepmerge": "^4.3.1", - "diff": "^8.0.3", - "fast-deep-equal": "^3.1.3", - "memize": "^2.1.0", - "parsel-js": "^1.1.2", - "postcss": "^8.4.38", - "postcss-prefix-selector": "^1.16.0", - "postcss-urlrebase": "^1.4.0", - "react-autosize-textarea": "^7.1.0", - "react-easy-crop": "^5.4.2", - "remove-accents": "^0.5.0" + "json2php": "^0.0.7" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18.3.27", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/base-styles": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-10.2.0.tgz", - "integrity": "sha512-iDPbyyeUnxLFq4ec+03x87jT8lRoBzK2rDoEg24l2KNAR9ZJ2kwI0z2E/wW0fOZC37A7qr377KJslPHKLtMgyQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "webpack": "^5.0.0" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "node_modules/@wordpress/e2e-test-utils-playwright": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.32.0.tgz", + "integrity": "sha512-w1hE7xDB06SQDfwtbggyU2xTyQ++GyU2wwEc648LL6OYLh7wlDuEzP/7XCrYbxA/GPGFDKCOL3uhU163F2N/Dw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", "change-case": "^4.1.2", - "mousetrap": "^1.6.5" + "form-data": "^4.0.0", + "get-port": "^5.1.1", + "lighthouse": "^12.2.2", + "mime": "^3.0.0", + "web-vitals": "^4.2.1" }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "@playwright/test": ">=1" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/element": { + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.32.0.tgz", + "integrity": "sha512-W/Bw6HXzRBJgYYUdoUBUvtjXNWh8dVK8aqFsqpnEJTAiXdU8Ii0wBQ+E49bI/08yGCwsaXrLbQLXqtAiV6leMw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/escape-html": "^3.57.0", + "@babel/runtime": "7.25.7", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", + "@wordpress/escape-html": "^3.32.0", "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "node_modules/@wordpress/env": { + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.39.0.tgz", + "integrity": "sha512-Hgl2RQAAzXFMqkpegGWT1/KkX88OVikRroPidWkij1WtU8p+AZniTcncWmlWqbdLdfGbPqQS5ZkqDZCzrQjgnA==", "dev": true, "license": "GPL-2.0-or-later", + "dependencies": { + "@inquirer/prompts": "^7.2.0", + "@wp-playground/cli": "^3.0.0", + "chalk": "^4.0.0", + "copy-dir": "^1.3.0", + "cross-spawn": "^7.0.6", + "docker-compose": "^0.24.3", + "extract-zip": "^1.6.7", + "got": "^11.8.5", + "js-yaml": "^3.13.1", + "ora": "^4.0.2", + "rimraf": "^5.0.10", + "simple-git": "^3.5.0", + "terminal-link": "^2.0.0", + "yargs": "^17.3.0" + }, + "bin": { + "wp-env": "bin/wp-env" + }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "node_modules/@wordpress/env/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, + "license": "MIT", "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "node": "18 || 20 || >=22" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/data/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/env/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "node": "18 || 20 || >=22" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "node_modules/@wordpress/env/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "node_modules/@wordpress/env/node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "BSD-2-Clause", "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "bin": { + "extract-zip": "cli.js" } }, - "node_modules/@wordpress/block-editor/node_modules/@wordpress/icons": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", - "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", + "node_modules/@wordpress/env/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, - "license": "GPL-2.0-or-later", + "license": "ISC", "dependencies": { - "@wordpress/element": "^8.6.0", - "@wordpress/primitives": "^4.54.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19" + "bin": { + "glob": "dist/esm/bin.mjs" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@wordpress/block-serialization-default-parser": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.57.0.tgz", - "integrity": "sha512-gxqS1TIMiWcIIsPTPdvztOZNEl7+TkVJ5WHk8BWOe2+WsaEcjL44heSceDl873+WZQ1RIAOBdHDyds8h4FjiaQ==", + "node_modules/@wordpress/env/node_modules/minimatch": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.6.tgz", + "integrity": "sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "ISC", + "dependencies": { + "brace-expansion": "^5.0.2" + }, "engines": { - "node": ">=18.12.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@wordpress/blocks": { - "version": "15.27.0", - "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-15.27.0.tgz", - "integrity": "sha512-HW8SJBMF2HhZn8/9XKxu37Rspm3Oqb5odGHnpcc29jZKbYRzH/7AhEUYAdjuUedVwXB2UvzaybDMFFOZ6lN4FA==", + "node_modules/@wordpress/env/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/env/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "ISC", "dependencies": { - "@wordpress/autop": "^4.54.0", - "@wordpress/blob": "^4.54.0", - "@wordpress/block-serialization-default-parser": "^5.54.0", - "@wordpress/data": "^10.54.0", - "@wordpress/deprecated": "^4.54.0", - "@wordpress/dom": "^4.54.0", - "@wordpress/element": "^8.6.0", - "@wordpress/hooks": "^4.54.0", - "@wordpress/html-entities": "^4.54.0", - "@wordpress/i18n": "^6.27.0", - "@wordpress/is-shallow-equal": "^5.54.0", - "@wordpress/keycodes": "^4.54.0", - "@wordpress/private-apis": "^1.54.0", - "@wordpress/rich-text": "^7.54.0", - "@wordpress/shortcode": "^4.54.0", - "@wordpress/warning": "^3.54.0", - "change-case": "^4.1.2", - "colord": "^2.9.3", - "fast-deep-equal": "^3.1.3", - "hpq": "^1.4.0", - "is-plain-object": "^5.1.0", - "marked": "^18.0.3", - "memize": "^2.1.1", - "react-is": "^18.3.0", - "remove-accents": "^0.5.0", - "simple-html-tokenizer": "^0.5.7", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "glob": "^10.3.7" }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19" + "bin": { + "rimraf": "dist/esm/bin.mjs" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@wordpress/blocks/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "node_modules/@wordpress/escape-html": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.32.0.tgz", + "integrity": "sha512-pT5wZmg9ob/u8RuSXgfZv8Kfd8zpvtBcCdcFE/UHasjtxJSecxDHFb0uI4eXQrSiTrsthbDZDlK/GIAagmt75Q==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" + "@babel/runtime": "7.25.7" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/blocks/node_modules/@wordpress/data/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "node_modules/@wordpress/eslint-plugin": { + "version": "22.18.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.18.0.tgz", + "integrity": "sha512-1w4bhax+vg3xFDXs/z2jNRaCO/kagpK0ZZ6PGWH5Anlp+e9MuzQHMbcU6Xpd/+ZU118z0rJeXDvjb3QgEfvEOg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" + "@babel/eslint-parser": "7.25.7", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", + "@wordpress/babel-preset-default": "^8.32.0", + "@wordpress/prettier-config": "^4.32.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.4.3", + "eslint-plugin-jsdoc": "^46.4.6", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-playwright": "^0.15.3", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=3", + "typescript": ">=5" }, "peerDependenciesMeta": { - "@types/react": { + "prettier": { "optional": true }, - "@types/react-dom": { + "typescript": { "optional": true } } }, - "node_modules/@wordpress/blocks/node_modules/@wordpress/data/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "node": ">=10" } }, - "node_modules/@wordpress/blocks/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "node_modules/@wordpress/eslint-plugin/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "ISC", "engines": { - "node": ">=18.12.0" + "node": ">= 6" } }, - "node_modules/@wordpress/blocks/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "node_modules/@wordpress/icons": { + "version": "10.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.32.0.tgz", + "integrity": "sha512-1WvJdT361X1LnetYBpBWUjAVXZzl+pBdIwHbYRAp8ej47EI/igPmNxmq81nFd40s8fer/9qtipielcqSI6H2rA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" + "@babel/runtime": "7.25.7", + "@wordpress/element": "^6.32.0", + "@wordpress/primitives": "^4.32.0" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/blocks/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/browserslist-config": { - "version": "6.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.32.0.tgz", - "integrity": "sha512-8NemosyPrey1yswd6LH8vX9mcRF6Xmqt2mKUCspnmEX4KvayyezmtJPh2EQo3GfySVHGWePzb0yfMYEqDdsC0Q==", + "node_modules/@wordpress/jest-console": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.32.0.tgz", + "integrity": "sha512-Sq4Ss0gJNmLzpJ9K/5Nto/FTV5L7ALvmdfA7b8JpmuKh32CETN4uIGDSfqS2a5Pfcg4KepwnL6jF9790uM54QA==", "dev": true, "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "jest-matcher-utils": "^29.6.2" + }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" + }, + "peerDependencies": { + "jest": ">=29" } }, - "node_modules/@wordpress/commands": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.57.0.tgz", - "integrity": "sha512-3RuolvhR3+jeTlYgb/PAQfRCAKOBPTLuvnggnH5XLShE1qKzTjJugXgWdcrquym9VP3b4TSgs5YHxDrwjmGv3w==", + "node_modules/@wordpress/jest-preset-default": { + "version": "12.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.32.0.tgz", + "integrity": "sha512-Y8X+0KCjUiB1MxxwridiY0Ku3iJVOTJSsutSReu+rM/hS/1azlBMctC0bqUyC0mQyBqPF0SNlpHjYdsAoVEznQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/base-styles": "^13.3.0", - "@wordpress/components": "^42.0.0", - "@wordpress/data": "^10.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/keyboard-shortcuts": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/preferences": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "clsx": "^2.1.1", - "cmdk": "^1.0.0" + "@wordpress/jest-console": "^8.32.0", + "babel-jest": "29.7.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "@babel/core": ">=7", + "jest": ">=29" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/base-styles": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", - "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", + "node_modules/@wordpress/npm-package-json-lint-config": { + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.32.0.tgz", + "integrity": "sha512-X3D9g0m0OIM6FfdHfmyGENOZG53kc+i49WuHnDnC1gZWV5Ai0SD/CNfRcPZOYw7Ld9CScrM3kqXAKG7nd1fGFg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "npm-package-json-lint": ">=6.0.0" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/components": { - "version": "42.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", - "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", + "node_modules/@wordpress/postcss-plugins-preset": { + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.32.0.tgz", + "integrity": "sha512-cJGgp8Z3o8dKfUWQZtQ/gNceYwLQET1z7RqkOAaSI5O0lelGit8gqpWeA7qYyZb9K1kWwhz8GGVWUIsQhCo2sQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@ariakit/react": "^0.4.40", - "@date-fns/utc": "^2.1.1", - "@emotion/cache": "^11.14.0", - "@emotion/css": "^11.13.5", - "@emotion/react": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/styled": "^11.14.1", - "@emotion/utils": "^1.4.2", - "@floating-ui/react-dom": "^2.1.9", - "@types/gradient-parser": "^1.1.0", - "@types/highlight-words-core": "^1.2.1", - "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/base-styles": "^13.3.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/date": "^5.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/escape-html": "^3.57.0", - "@wordpress/hooks": "^4.57.0", - "@wordpress/html-entities": "^4.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/kebab-case": "^1.4.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/rich-text": "^7.57.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/ui": "^0.24.0", - "@wordpress/warning": "^3.57.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.4", - "csstype": "^3.2.3", - "date-fns": "^4.4.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "framer-motion": "^11.15.0", - "gradient-parser": "^1.1.1", - "highlight-words-core": "^1.2.2", - "is-plain-object": "^5.1.0", - "memize": "^2.1.1", - "path-to-regexp": "^6.2.1", - "re-resizable": "^6.11.2", - "react-colorful": "^5.6.1", - "remove-accents": "^0.5.0", - "uuid": "^14.0.0" + "@wordpress/base-styles": "^6.8.0", + "autoprefixer": "^10.4.20" }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "postcss": "^8.0.0" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "node_modules/@wordpress/prettier-config": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.32.0.tgz", + "integrity": "sha512-fS4Z5hXewajLKxbMQY4rdq3fSpUnwHHfLWqOJHXlu3u4rjqVf0VMJsLsSsSM8tV78rU6x6dWIEugG6CnDygYjA==", "dev": true, "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "prettier": ">=3" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "node_modules/@wordpress/primitives": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.32.0.tgz", + "integrity": "sha512-pf46CU5qQaGOULlAMNQTi+Jkwf1vwfrGYmkRtuTP68/Y8yOI19v5JZg/Vwq5nCHOs/L750mX1wMp4WvGWoPhFg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" + "@babel/runtime": "7.25.7", + "@wordpress/element": "^6.32.0", + "clsx": "^2.1.1" }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "react": "^18.0.0" } }, - "node_modules/@wordpress/commands/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/priority-queue": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.32.0.tgz", + "integrity": "sha512-LXlkiXxRSv35FBvjfAqn+rHH7KF4mw2wVl57SVzWglZAUdfvrcjrinRlEsqgMZxeAVeLPiutRV1qlkueZl7E8w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/commands/node_modules/@wordpress/icons": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", - "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "@wordpress/primitives": "^4.57.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/commands/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/commands/node_modules/@wordpress/style-runtime": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", - "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0" - } - }, - "node_modules/@wordpress/commands/node_modules/@wordpress/theme": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", - "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "@jridgewell/trace-mapping": "^0.3.31", - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/style-runtime": "^0.13.0", - "colorjs.io": "^0.7.1", - "magic-string": "^0.30.21", - "memize": "^2.1.1" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "esbuild": ">=0.27.2 <1.0.0", - "lightningcss": ">=1.33.0 <2.0.0", - "postcss": "^8.0.0", - "react": "^18 || ^19", - "react-dom": "^18 || ^19", - "stylelint": "^16 || ^17", - "vite": "^7 || ^8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@wordpress/commands/node_modules/@wordpress/ui": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", - "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@base-ui/react": "^1.8.0", - "@daypicker/react": "^10.0.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/theme": "^2.3.0", - "@wordpress/warning": "^3.57.0", - "clsx": "^2.1.1", - "date-fns": "^4.4.0", - "tabbable": "^6.4.0" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/commands/node_modules/colorjs.io": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", - "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" - } - }, - "node_modules/@wordpress/commands/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/commands/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/components": { - "version": "36.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-36.1.0.tgz", - "integrity": "sha512-EapV2VXhNIDhWA+yTukQz++IfpqY8gVDvQ9bU8g1RKJqK3dhaVJ9NG2Rqk3TPsFxrmEGNHJwdb+SRUdLFAr3Zg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@ariakit/react": "^0.4.29", - "@date-fns/utc": "^2.1.1", - "@emotion/cache": "^11.14.0", - "@emotion/css": "^11.13.5", - "@emotion/react": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/styled": "^11.14.1", - "@emotion/utils": "^1.4.2", - "@floating-ui/react-dom": "^2.0.8", - "@types/gradient-parser": "^1.1.0", - "@types/highlight-words-core": "^1.2.1", - "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.50.0", - "@wordpress/base-styles": "^10.2.0", - "@wordpress/compose": "^8.3.0", - "@wordpress/date": "^5.50.0", - "@wordpress/deprecated": "^4.50.0", - "@wordpress/dom": "^4.50.0", - "@wordpress/element": "^8.2.0", - "@wordpress/escape-html": "^3.50.0", - "@wordpress/hooks": "^4.50.0", - "@wordpress/html-entities": "^4.50.0", - "@wordpress/i18n": "^6.23.0", - "@wordpress/icons": "^15.1.0", - "@wordpress/is-shallow-equal": "^5.50.0", - "@wordpress/keycodes": "^4.50.0", - "@wordpress/primitives": "^4.50.0", - "@wordpress/private-apis": "^1.50.0", - "@wordpress/rich-text": "^7.50.0", - "@wordpress/style-runtime": "^0.6.0", - "@wordpress/ui": "^0.17.0", - "@wordpress/warning": "^3.50.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.3", - "csstype": "^3.2.3", - "date-fns": "^4.1.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "framer-motion": "^11.15.0", - "gradient-parser": "^1.1.1", - "highlight-words-core": "^1.2.2", - "is-plain-object": "^5.0.0", - "memize": "^2.1.0", - "path-to-regexp": "^6.2.1", - "re-resizable": "^6.4.0", - "react-colorful": "^5.6.1", - "react-day-picker": "^9.7.0", - "remove-accents": "^0.5.0", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18.3.27", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/components/node_modules/@wordpress/base-styles": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-10.2.0.tgz", - "integrity": "sha512-iDPbyyeUnxLFq4ec+03x87jT8lRoBzK2rDoEg24l2KNAR9ZJ2kwI0z2E/wW0fOZC37A7qr377KJslPHKLtMgyQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/components/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/components/node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/components/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/components/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/components/node_modules/@wordpress/icons": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", - "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^8.6.0", - "@wordpress/primitives": "^4.54.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/components/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/components/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/compose": { - "version": "7.46.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.46.0.tgz", - "integrity": "sha512-6Yv9Wb6tlA4JYU9bdWWuIWpTTzBAVA1zrYu1GY9x2/mCOckk9iLcEEfbKULxdjwwcMo3SKqvyby4f6kEUw/Wsw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.46.0", - "@wordpress/dom": "^4.46.0", - "@wordpress/element": "^6.46.0", - "@wordpress/is-shallow-equal": "^5.46.0", - "@wordpress/keycodes": "^4.46.0", - "@wordpress/priority-queue": "^3.46.0", - "@wordpress/undo-manager": "^1.46.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5", - "use-memo-one": "^1.1.1" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "6.46.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", - "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/react": "^18.3.27", - "@types/react-dom": "^18.3.1", - "@wordpress/escape-html": "^3.46.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.0.0", - "react": "^18.3.0", - "react-dom": "^18.3.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/core-data": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-7.32.0.tgz", - "integrity": "sha512-cHcEhoucu5YhPTpo2I+NVlxINPMTnh8cXcfrBmrqAnwFA5MttMhF8av9lnz6k3ieY9eB99rY+BDcE09+jkRl7w==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "7.25.7", - "@wordpress/api-fetch": "^7.32.0", - "@wordpress/block-editor": "^15.5.0", - "@wordpress/blocks": "^15.5.0", - "@wordpress/compose": "^7.32.0", - "@wordpress/data": "^10.32.0", - "@wordpress/deprecated": "^4.32.0", - "@wordpress/element": "^6.32.0", - "@wordpress/html-entities": "^4.32.0", - "@wordpress/i18n": "^6.5.0", - "@wordpress/is-shallow-equal": "^5.32.0", - "@wordpress/private-apis": "^1.32.0", - "@wordpress/rich-text": "^7.32.0", - "@wordpress/sync": "^1.32.0", - "@wordpress/undo-manager": "^1.32.0", - "@wordpress/url": "^4.32.0", - "@wordpress/warning": "^3.32.0", - "change-case": "^4.1.2", - "equivalent-key-map": "^0.2.2", - "fast-deep-equal": "^3.1.3", - "memize": "^2.1.0", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@wordpress/core-data/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@wordpress/data": { - "version": "10.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.32.0.tgz", - "integrity": "sha512-7lReC2/qVxlQVYVlqIYfZ9Irbzo6W30iuiD67xaXqVxiD9BA8CePY2dTBpCsykBkczoT0ryerVp648SvY82R9Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "7.25.7", - "@wordpress/compose": "^7.32.0", - "@wordpress/deprecated": "^4.32.0", - "@wordpress/element": "^6.32.0", - "@wordpress/is-shallow-equal": "^5.32.0", - "@wordpress/priority-queue": "^3.32.0", - "@wordpress/private-apis": "^1.32.0", - "@wordpress/redux-routine": "^5.32.0", - "deepmerge": "^4.3.0", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.0.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2", - "use-memo-one": "^1.1.1" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/@wordpress/dataviews": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/dataviews/-/dataviews-17.3.0.tgz", - "integrity": "sha512-9U50IPnaYWUbkdVl2J2eRkkT0x83nGxmsVkkNVBSGQFpnWHhCAN7TqZOOSVYM+ppMBQnVwDhml6URIc4iejZ8A==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@ariakit/react": "^0.4.32", - "@wordpress/a11y": "^4.52.0", - "@wordpress/base-styles": "^12.0.0", - "@wordpress/components": "^38.0.0", - "@wordpress/compose": "^8.5.0", - "@wordpress/data": "^10.52.0", - "@wordpress/date": "^5.52.0", - "@wordpress/deprecated": "^4.52.0", - "@wordpress/element": "^8.4.0", - "@wordpress/i18n": "^6.25.0", - "@wordpress/icons": "^15.3.0", - "@wordpress/keycodes": "^4.52.0", - "@wordpress/primitives": "^4.52.0", - "@wordpress/private-apis": "^1.52.0", - "@wordpress/rich-text": "^7.52.0", - "@wordpress/ui": "^0.19.0", - "@wordpress/warning": "^3.52.0", - "clsx": "^2.1.1", - "colord": "^2.9.3", - "date-fns": "^4.4.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "remove-accents": "^0.5.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/base-styles": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-12.1.0.tgz", - "integrity": "sha512-B8Ab7dU574B1lNtjnTolO340nnW+WeaztR4RFpoL6tyqWrvDU1hK6xcjQnuNtQYJc2ngH/MO/rZOVFaFa7HFxw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/components": { - "version": "38.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-38.0.0.tgz", - "integrity": "sha512-FdmfeLB0cUH8Vwmp1Sz0o7mnhmg0kir2oouuvkcVtPgwHfCnsOgvg1ZelYdaQz+F6MyAsCY1mKQn100A9npUDA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@ariakit/react": "^0.4.32", - "@date-fns/utc": "^2.1.1", - "@emotion/cache": "^11.14.0", - "@emotion/css": "^11.13.5", - "@emotion/react": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/styled": "^11.14.1", - "@emotion/utils": "^1.4.2", - "@floating-ui/react-dom": "^2.0.8", - "@types/gradient-parser": "^1.1.0", - "@types/highlight-words-core": "^1.2.1", - "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.52.0", - "@wordpress/base-styles": "^12.0.0", - "@wordpress/compose": "^8.5.0", - "@wordpress/date": "^5.52.0", - "@wordpress/deprecated": "^4.52.0", - "@wordpress/dom": "^4.52.0", - "@wordpress/element": "^8.4.0", - "@wordpress/escape-html": "^3.52.0", - "@wordpress/hooks": "^4.52.0", - "@wordpress/html-entities": "^4.52.0", - "@wordpress/i18n": "^6.25.0", - "@wordpress/icons": "^15.3.0", - "@wordpress/is-shallow-equal": "^5.52.0", - "@wordpress/keycodes": "^4.52.0", - "@wordpress/primitives": "^4.52.0", - "@wordpress/private-apis": "^1.52.0", - "@wordpress/rich-text": "^7.52.0", - "@wordpress/style-runtime": "^0.8.0", - "@wordpress/ui": "^0.19.0", - "@wordpress/warning": "^3.52.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.3", - "csstype": "^3.2.3", - "date-fns": "^4.4.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "framer-motion": "^11.15.0", - "gradient-parser": "^1.1.1", - "highlight-words-core": "^1.2.2", - "is-plain-object": "^5.0.0", - "memize": "^2.1.1", - "path-to-regexp": "^6.2.1", - "re-resizable": "^6.4.0", - "react-colorful": "^5.6.1", - "react-day-picker": "^9.7.0", - "remove-accents": "^0.5.0", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/data/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/icons": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", - "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^8.6.0", - "@wordpress/primitives": "^4.54.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/style-runtime": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.8.0.tgz", - "integrity": "sha512-gqe5cnsDLwH2NQ//VyUtzS4pcht0iR64hP+3u6p5/pPvwA2ySGn71mJ/7+O2X7sUG5drxNp6+4Kl3LWOzkKYng==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0", - "npm": ">=10.2.3" - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/theme": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-1.2.0.tgz", - "integrity": "sha512-pILS4ytGGiASrpJ8sLp+pRbcBspFYeMTr5LdM4fWBv/EN2CIKhBLpX3qGlXwKzS+HzjrbXZwj60Bfbg/PxvQew==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.6.0", - "@wordpress/deprecated": "^4.53.0", - "@wordpress/element": "^8.5.0", - "@wordpress/private-apis": "^1.53.0", - "@wordpress/style-runtime": "^0.9.0", - "colorjs.io": "^0.7.1", - "memize": "^2.1.1" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0", - "npm": ">=10.2.3" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "esbuild": ">=0.27.2 <1.0.0", - "postcss": "^8.0.0", - "react": "^18 || ^19", - "react-dom": "^18 || ^19", - "stylelint": "^16 || ^17", - "vite": "^7 || ^8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "postcss": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/theme/node_modules/@wordpress/style-runtime": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.9.0.tgz", - "integrity": "sha512-K2T4OfVbqgsp07zi7C6UemlJK7fF78EPmxFYuxSjnbbB14fJcOxX+Tqi/4y24hn9ECahoGjCKHZCY2U2kts8dQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0", - "npm": ">=10.2.3" - } - }, - "node_modules/@wordpress/dataviews/node_modules/@wordpress/ui": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.19.0.tgz", - "integrity": "sha512-ck0BcuWu96vbpim0rFUI0kDLaUgLyRmbhkgfhgYFyHm2klzyRxhbakNTc6qqj7xCQ0Wsy9SwCqDCuCHltZpXkA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@base-ui/react": "^1.6.0", - "@wordpress/a11y": "^4.52.0", - "@wordpress/compose": "^8.5.0", - "@wordpress/element": "^8.4.0", - "@wordpress/i18n": "^6.25.0", - "@wordpress/icons": "^15.3.0", - "@wordpress/keycodes": "^4.52.0", - "@wordpress/primitives": "^4.52.0", - "@wordpress/private-apis": "^1.52.0", - "@wordpress/style-runtime": "^0.8.0", - "@wordpress/theme": "^1.1.0", - "clsx": "^2.1.1", - "tabbable": "^6.4.0" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0", - "npm": ">=10.2.3" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/dataviews/node_modules/colorjs.io": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", - "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" - } - }, - "node_modules/@wordpress/dataviews/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/dataviews/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/date": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.57.0.tgz", - "integrity": "sha512-mT+Yd+ADpT74G/VsarsaiUNb7E61MjS+Ry6lq5f6Q4T8V0AVMLEQ2O06KskE4lW+q6z6hbnN2+reWiZzfkYeVw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/deprecated": "^4.57.0", - "moment": "^2.29.4", - "moment-timezone": "^0.5.40" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "6.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.32.0.tgz", - "integrity": "sha512-05XLzLx+cTXgid6/qI6XzBclNvkLIi9F0oLAn4htL1ExIXLfc9yBSNcNkVVP7Tr5pmpMq0NUxfM58jqxxmFfCQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "json2php": "^0.0.7" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/@wordpress/deprecated": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.57.0.tgz", - "integrity": "sha512-eRjYiN5wE8cmV+sehqGTHpb2VxwSqv/FMkcQ+0po4G3JK+Y1V0StqZRDhsgcwUocPRKuAtTO7E28fcdo615DFw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/hooks": "^4.57.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/dom": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.57.0.tgz", - "integrity": "sha512-KjnGUcxtdh8+Gvi0zUhh4iDRE8fsvVJkd798aS65HL6ysZYLuOVsdHwy5Qh6LT//tB3juSn1EMJ/TzdgtIOg6A==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/deprecated": "^4.57.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/dom-ready": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.57.0.tgz", - "integrity": "sha512-3UVrsq4LQxnPO7N28H2s0jdUbOb6+jJKT5EJVgwPJnZpCw2RLvpaN0u+P+6yZWIl8ytPwayTHuLHGnKBnIXZKQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.32.0.tgz", - "integrity": "sha512-w1hE7xDB06SQDfwtbggyU2xTyQ++GyU2wwEc648LL6OYLh7wlDuEzP/7XCrYbxA/GPGFDKCOL3uhU163F2N/Dw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "change-case": "^4.1.2", - "form-data": "^4.0.0", - "get-port": "^5.1.1", - "lighthouse": "^12.2.2", - "mime": "^3.0.0", - "web-vitals": "^4.2.1" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@playwright/test": ">=1" - } - }, - "node_modules/@wordpress/element": { - "version": "6.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.32.0.tgz", - "integrity": "sha512-W/Bw6HXzRBJgYYUdoUBUvtjXNWh8dVK8aqFsqpnEJTAiXdU8Ii0wBQ+E49bI/08yGCwsaXrLbQLXqtAiV6leMw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "7.25.7", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", - "@wordpress/escape-html": "^3.32.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.0.0", - "react": "^18.3.0", - "react-dom": "^18.3.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/env": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.39.0.tgz", - "integrity": "sha512-Hgl2RQAAzXFMqkpegGWT1/KkX88OVikRroPidWkij1WtU8p+AZniTcncWmlWqbdLdfGbPqQS5ZkqDZCzrQjgnA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@inquirer/prompts": "^7.2.0", - "@wp-playground/cli": "^3.0.0", - "chalk": "^4.0.0", - "copy-dir": "^1.3.0", - "cross-spawn": "^7.0.6", - "docker-compose": "^0.24.3", - "extract-zip": "^1.6.7", - "got": "^11.8.5", - "js-yaml": "^3.13.1", - "ora": "^4.0.2", - "rimraf": "^5.0.10", - "simple-git": "^3.5.0", - "terminal-link": "^2.0.0", - "yargs": "^17.3.0" - }, - "bin": { - "wp-env": "bin/wp-env" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/env/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@wordpress/env/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@wordpress/env/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@wordpress/env/node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/@wordpress/env/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@wordpress/env/node_modules/minimatch": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.6.tgz", - "integrity": "sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@wordpress/env/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/env/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@wordpress/escape-html": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.57.0.tgz", - "integrity": "sha512-QT0x2X39blQjLHru11Dp00DAR0LLRMKMC6ATSWidliD3xQfKz+BjiPzTJd/LyhPLEE8C9li7ylKUlseIO2EYjQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/eslint-plugin": { - "version": "22.18.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.18.0.tgz", - "integrity": "sha512-1w4bhax+vg3xFDXs/z2jNRaCO/kagpK0ZZ6PGWH5Anlp+e9MuzQHMbcU6Xpd/+ZU118z0rJeXDvjb3QgEfvEOg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/eslint-parser": "7.25.7", - "@typescript-eslint/eslint-plugin": "^6.4.1", - "@typescript-eslint/parser": "^6.4.1", - "@wordpress/babel-preset-default": "^8.32.0", - "@wordpress/prettier-config": "^4.32.0", - "cosmiconfig": "^7.0.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-jest": "^27.4.3", - "eslint-plugin-jsdoc": "^46.4.6", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-playwright": "^0.15.3", - "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-react": "^7.27.0", - "eslint-plugin-react-hooks": "^4.3.0", - "globals": "^13.12.0", - "requireindex": "^1.2.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@babel/core": ">=7", - "eslint": ">=8", - "prettier": ">=3", - "typescript": ">=5" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@wordpress/global-styles-engine": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.24.0.tgz", - "integrity": "sha512-gr6/lc6pWi7SjpmLwsRiJJfUOY4Xp3poyfouLD7+2QbA2bK7m2yhUWx9FR6T7YMGAG5fgUKQq5pQgiQkC5iyag==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/blocks": "^16.2.0", - "@wordpress/data": "^10.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/style-engine": "^2.57.0", - "colord": "^2.9.4", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "is-plain-object": "^5.1.0", - "memize": "^2.1.1" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/blocks": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-16.2.0.tgz", - "integrity": "sha512-Ga1MWeUNUSs3pDdiBL4uTrdt0mVnnx+eE83LZOweqjxeVmsqWjg1cwsOUrI+eDos1ffxeYqzgI+uxsSJ4mkcjQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/autop": "^4.57.0", - "@wordpress/blob": "^4.57.0", - "@wordpress/block-serialization-default-parser": "^5.57.0", - "@wordpress/data": "^10.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/hooks": "^4.57.0", - "@wordpress/html-entities": "^4.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/rich-text": "^7.57.0", - "@wordpress/shortcode": "^4.57.0", - "@wordpress/warning": "^3.57.0", - "change-case": "^4.1.2", - "colord": "^2.9.4", - "fast-deep-equal": "^3.1.3", - "hpq": "^1.4.0", - "is-plain-object": "^5.1.0", - "marked": "^18.0.3", - "memize": "^2.1.1", - "react-is": "^19.3.0", - "remove-accents": "^0.5.0", - "simple-html-tokenizer": "^0.5.7", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/global-styles-engine/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/global-styles-engine/node_modules/react-is": { - "version": "19.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.1.tgz", - "integrity": "sha512-RRieF6IyxQBkcK6pP8xOHprLTPW6QjRkbGdImtqNme+/hYVwCZkLQLdlZGOhUqXwkS9IEynaGvPJtv6XB/cz0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/global-styles-engine/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/hooks": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.57.0.tgz", - "integrity": "sha512-vRJxRhOj+a19RvdW6u0ZBmiQc/t/ueVGsIP3IbS9zuvfLJILtvMSWXU8Fe3m/W+mBK5ZEOfm72LYBhWGPse0DA==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/html-entities": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.57.0.tgz", - "integrity": "sha512-1g6qT2mnpe1ZGUDNFF8+AfeUDEqGuJgVJsiYz7Z+QPi0tl2kNF2mvSunuZTu6bBuHR9cabwTfD4z9k4CEioQrQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/i18n": { - "version": "6.30.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.30.0.tgz", - "integrity": "sha512-Q8ivagc2aG+Qe5dTzmiohR+pDo4xDcD746fGI2dq+JIbTibYRnkFoN1VyGFZX/Q+g98I80ZJLJ5Vk3svSXb9ag==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@tannin/sprintf": "^1.3.2", - "@wordpress/hooks": "^4.57.0", - "gettext-parser": "^1.3.1", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/icons": { - "version": "10.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.32.0.tgz", - "integrity": "sha512-1WvJdT361X1LnetYBpBWUjAVXZzl+pBdIwHbYRAp8ej47EI/igPmNxmq81nFd40s8fer/9qtipielcqSI6H2rA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "7.25.7", - "@wordpress/element": "^6.32.0", - "@wordpress/primitives": "^4.32.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/image-cropper": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.21.0.tgz", - "integrity": "sha512-v+vbwKih9Wwfn713BNMLAROxxfylqha4Vn/bcrKK+a8RplZrgtTcsMbWx2DTMlG9lzQhv6on9+eC6v/M3Cdi/w==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/components": "^42.0.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "dequal": "^2.0.3", - "react-easy-crop": "^5.4.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/base-styles": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", - "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components": { - "version": "42.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", - "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@ariakit/react": "^0.4.40", - "@date-fns/utc": "^2.1.1", - "@emotion/cache": "^11.14.0", - "@emotion/css": "^11.13.5", - "@emotion/react": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/styled": "^11.14.1", - "@emotion/utils": "^1.4.2", - "@floating-ui/react-dom": "^2.1.9", - "@types/gradient-parser": "^1.1.0", - "@types/highlight-words-core": "^1.2.1", - "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/base-styles": "^13.3.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/date": "^5.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/escape-html": "^3.57.0", - "@wordpress/hooks": "^4.57.0", - "@wordpress/html-entities": "^4.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/kebab-case": "^1.4.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/rich-text": "^7.57.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/ui": "^0.24.0", - "@wordpress/warning": "^3.57.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.4", - "csstype": "^3.2.3", - "date-fns": "^4.4.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "framer-motion": "^11.15.0", - "gradient-parser": "^1.1.1", - "highlight-words-core": "^1.2.2", - "is-plain-object": "^5.1.0", - "memize": "^2.1.1", - "path-to-regexp": "^6.2.1", - "re-resizable": "^6.11.2", - "react-colorful": "^5.6.1", - "remove-accents": "^0.5.0", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components/node_modules/@wordpress/icons": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", - "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "@wordpress/primitives": "^4.57.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/style-runtime": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", - "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0" - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/theme": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", - "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "@jridgewell/trace-mapping": "^0.3.31", - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/style-runtime": "^0.13.0", - "colorjs.io": "^0.7.1", - "magic-string": "^0.30.21", - "memize": "^2.1.1" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "esbuild": ">=0.27.2 <1.0.0", - "lightningcss": ">=1.33.0 <2.0.0", - "postcss": "^8.0.0", - "react": "^18 || ^19", - "react-dom": "^18 || ^19", - "stylelint": "^16 || ^17", - "vite": "^7 || ^8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/theme/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/ui": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", - "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@base-ui/react": "^1.8.0", - "@daypicker/react": "^10.0.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/theme": "^2.3.0", - "@wordpress/warning": "^3.57.0", - "clsx": "^2.1.1", - "date-fns": "^4.4.0", - "tabbable": "^6.4.0" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/ui/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/@wordpress/ui/node_modules/@wordpress/icons": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", - "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "@wordpress/primitives": "^4.57.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/image-cropper/node_modules/colorjs.io": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", - "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" - } - }, - "node_modules/@wordpress/image-cropper/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/image-cropper/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/interactivity": { - "version": "6.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.56.0.tgz", - "integrity": "sha512-wUbJ0CQttTit5Z4VcQkcr5nJUA8Roqi1q5l7pOcUpr5pPUEDzIWrqTEYewiVbwh089sSry0IT6PN5c3vpNVGGA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@preact/signals": "^1.3.0", - "@preact/signals-core": "^1.7.0", - "preact": "^10.29.1" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/is-shallow-equal": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.57.0.tgz", - "integrity": "sha512-QoIVWgnkKHAgrFB9hfpnmGvrAbutsa53DNl08i98guhtVVTSLzttlxgJxA3wpIepmR8FYiLNGB2Kfa49NdyIwg==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/jest-console": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.32.0.tgz", - "integrity": "sha512-Sq4Ss0gJNmLzpJ9K/5Nto/FTV5L7ALvmdfA7b8JpmuKh32CETN4uIGDSfqS2a5Pfcg4KepwnL6jF9790uM54QA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "7.25.7", - "jest-matcher-utils": "^29.6.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "jest": ">=29" - } - }, - "node_modules/@wordpress/jest-preset-default": { - "version": "12.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.32.0.tgz", - "integrity": "sha512-Y8X+0KCjUiB1MxxwridiY0Ku3iJVOTJSsutSReu+rM/hS/1azlBMctC0bqUyC0mQyBqPF0SNlpHjYdsAoVEznQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/jest-console": "^8.32.0", - "babel-jest": "29.7.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@babel/core": ">=7", - "jest": ">=29" - } - }, - "node_modules/@wordpress/kebab-case": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@wordpress/kebab-case/-/kebab-case-1.4.0.tgz", - "integrity": "sha512-JPKIhuGPJD4NE4HBK4+lviDCi2SgBWcOLpmggBCpbeHKI4ogTKmzaeTL1RYFlMOjKkrkjAPJ0R1v7r5aX0YkLQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=20.10.0" - } - }, - "node_modules/@wordpress/keyboard-shortcuts": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.57.0.tgz", - "integrity": "sha512-vmA9pHbrZvI9jZHEU7rqjFIwuyEUR0azuPtgjvMXB00FXiQIjCdEWJCJSdpAzKdSJPiZmqgan7//ypjyd00k1g==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/data": "^10.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/keycodes": "^4.57.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/keycodes": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.57.0.tgz", - "integrity": "sha512-IhPt1cAy00wxGECraOlWJMT+PwgLdh1CqS57RDsdhXMCs//AbIKFBMNxvEjPyq9aeU3looVJzcBR1zVhWkDErQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/i18n": "^6.30.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.57.0.tgz", - "integrity": "sha512-h9JgAqeO3jlnfxRHrn9VwxYmBTWaShLTBGepAQdRqnkc54WteYAW+3lkKUTc8ORIKTwKsKbg8ncyelrf6Jdw6w==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/a11y": "^4.57.0", - "@wordpress/components": "^42.0.0", - "@wordpress/data": "^10.57.0", - "clsx": "^2.1.1" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/base-styles": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", - "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/components": { - "version": "42.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", - "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@ariakit/react": "^0.4.40", - "@date-fns/utc": "^2.1.1", - "@emotion/cache": "^11.14.0", - "@emotion/css": "^11.13.5", - "@emotion/react": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/styled": "^11.14.1", - "@emotion/utils": "^1.4.2", - "@floating-ui/react-dom": "^2.1.9", - "@types/gradient-parser": "^1.1.0", - "@types/highlight-words-core": "^1.2.1", - "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/base-styles": "^13.3.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/date": "^5.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/escape-html": "^3.57.0", - "@wordpress/hooks": "^4.57.0", - "@wordpress/html-entities": "^4.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/kebab-case": "^1.4.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/rich-text": "^7.57.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/ui": "^0.24.0", - "@wordpress/warning": "^3.57.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.4", - "csstype": "^3.2.3", - "date-fns": "^4.4.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "framer-motion": "^11.15.0", - "gradient-parser": "^1.1.1", - "highlight-words-core": "^1.2.2", - "is-plain-object": "^5.1.0", - "memize": "^2.1.1", - "path-to-regexp": "^6.2.1", - "re-resizable": "^6.11.2", - "react-colorful": "^5.6.1", - "remove-accents": "^0.5.0", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/components/node_modules/@wordpress/icons": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", - "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "@wordpress/primitives": "^4.57.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/style-runtime": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", - "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0" - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/theme": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", - "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "@jridgewell/trace-mapping": "^0.3.31", - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/style-runtime": "^0.13.0", - "colorjs.io": "^0.7.1", - "magic-string": "^0.30.21", - "memize": "^2.1.1" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "esbuild": ">=0.27.2 <1.0.0", - "lightningcss": ">=1.33.0 <2.0.0", - "postcss": "^8.0.0", - "react": "^18 || ^19", - "react-dom": "^18 || ^19", - "stylelint": "^16 || ^17", - "vite": "^7 || ^8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/ui": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", - "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@base-ui/react": "^1.8.0", - "@daypicker/react": "^10.0.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/theme": "^2.3.0", - "@wordpress/warning": "^3.57.0", - "clsx": "^2.1.1", - "date-fns": "^4.4.0", - "tabbable": "^6.4.0" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/@wordpress/ui/node_modules/@wordpress/icons": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", - "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "@wordpress/primitives": "^4.57.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/notices/node_modules/colorjs.io": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", - "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" - } - }, - "node_modules/@wordpress/notices/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/notices/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.32.0.tgz", - "integrity": "sha512-X3D9g0m0OIM6FfdHfmyGENOZG53kc+i49WuHnDnC1gZWV5Ai0SD/CNfRcPZOYw7Ld9CScrM3kqXAKG7nd1fGFg==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "npm-package-json-lint": ">=6.0.0" - } - }, - "node_modules/@wordpress/postcss-plugins-preset": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.32.0.tgz", - "integrity": "sha512-cJGgp8Z3o8dKfUWQZtQ/gNceYwLQET1z7RqkOAaSI5O0lelGit8gqpWeA7qYyZb9K1kWwhz8GGVWUIsQhCo2sQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/base-styles": "^6.8.0", - "autoprefixer": "^10.4.20" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/@wordpress/preferences": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.57.0.tgz", - "integrity": "sha512-whB6UYV80wLuGGZ7hlqV67jRIXIfPocZVBy59OfXgy/dLmr6rhCdApXiAIF8gdRRwd55B4Nn+oCgfEzCrn5ehg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/a11y": "^4.57.0", - "@wordpress/base-styles": "^13.3.0", - "@wordpress/components": "^42.0.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/data": "^10.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/private-apis": "^2.0.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/base-styles": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-13.3.0.tgz", - "integrity": "sha512-Uzq0wdx9JtQtoxUVSSajV9QN8wE+H6DRxL0Fk1zQrVtwKn/0q6v6UaS9qcu3JEiFmoS1m+YZuawO9hZRnznJ0g==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/components": { - "version": "42.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-42.0.0.tgz", - "integrity": "sha512-cSFeqIkPSlLXU2hlxJ1dtnIwJxoU8K7DmOJw6qK7DsbFaVla1Peseyr6nrZKhZv39UfbHfWpvvM/08v0wDNe6g==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@ariakit/react": "^0.4.40", - "@date-fns/utc": "^2.1.1", - "@emotion/cache": "^11.14.0", - "@emotion/css": "^11.13.5", - "@emotion/react": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/styled": "^11.14.1", - "@emotion/utils": "^1.4.2", - "@floating-ui/react-dom": "^2.1.9", - "@types/gradient-parser": "^1.1.0", - "@types/highlight-words-core": "^1.2.1", - "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/base-styles": "^13.3.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/date": "^5.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/escape-html": "^3.57.0", - "@wordpress/hooks": "^4.57.0", - "@wordpress/html-entities": "^4.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/kebab-case": "^1.4.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/rich-text": "^7.57.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/ui": "^0.24.0", - "@wordpress/warning": "^3.57.0", - "change-case": "^4.1.2", - "clsx": "^2.1.1", - "colord": "^2.9.4", - "csstype": "^3.2.3", - "date-fns": "^4.4.0", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "framer-motion": "^11.15.0", - "gradient-parser": "^1.1.1", - "highlight-words-core": "^1.2.2", - "is-plain-object": "^5.1.0", - "memize": "^2.1.1", - "path-to-regexp": "^6.2.1", - "re-resizable": "^6.11.2", - "react-colorful": "^5.6.1", - "remove-accents": "^0.5.0", - "uuid": "^14.0.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/icons": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-18.0.0.tgz", - "integrity": "sha512-83UkY3h5dOMkCPUfk47q82n29GUOOxsiwyEKxJys2wCmPm1BfGKmfdtBmeKfmD4k2KvXsS6/73DbcOqF1R1aCw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "@wordpress/primitives": "^4.57.0", - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/style-runtime": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.13.0.tgz", - "integrity": "sha512-P8/7C0NLt+0r6Ks7csJPRUvTgdPccI51AMs05h8/LEJdVtW2k1nSdAgSpgC/lFAsZCPlCeicxjnelJChNRhXZQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0" - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/theme": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-2.3.0.tgz", - "integrity": "sha512-rPIBgKLq3WE0OiwNMBUGQcIpweLGYUjjt6IBn30J1i/Jvxpz8bE/SVMMZxN5R40orq3oswWXvjsuB1L61Bqvkg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "@jridgewell/trace-mapping": "^0.3.31", - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/style-runtime": "^0.13.0", - "colorjs.io": "^0.7.1", - "magic-string": "^0.30.21", - "memize": "^2.1.1" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "esbuild": ">=0.27.2 <1.0.0", - "lightningcss": ">=1.33.0 <2.0.0", - "postcss": "^8.0.0", - "react": "^18 || ^19", - "react-dom": "^18 || ^19", - "stylelint": "^16 || ^17", - "vite": "^7 || ^8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/@wordpress/ui": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.24.0.tgz", - "integrity": "sha512-UpfBEzfu5OSuniCsQyC/ex2pz8jRUWRP02F5j4T6b8SqfAJKq6XX2zX0V7WYMlyZbuQW7/Q1dP71Ok86N3f8Bg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@base-ui/react": "^1.8.0", - "@daypicker/react": "^10.0.1", - "@wordpress/a11y": "^4.57.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/element": "^9.0.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/icons": "^18.0.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/primitives": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/react-inert-value": "^1.0.0", - "@wordpress/style-runtime": "^0.13.0", - "@wordpress/theme": "^2.3.0", - "@wordpress/warning": "^3.57.0", - "clsx": "^2.1.1", - "date-fns": "^4.4.0", - "tabbable": "^6.4.0" - }, - "engines": { - "node": "^20.19.0 || >=22.13.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/preferences/node_modules/colorjs.io": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", - "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" - } - }, - "node_modules/@wordpress/preferences/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/preferences/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/@wordpress/prettier-config": { - "version": "4.32.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.32.0.tgz", - "integrity": "sha512-fS4Z5hXewajLKxbMQY4rdq3fSpUnwHHfLWqOJHXlu3u4rjqVf0VMJsLsSsSM8tV78rU6x6dWIEugG6CnDygYjA==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "prettier": ">=3" - } - }, - "node_modules/@wordpress/primitives": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.57.0.tgz", - "integrity": "sha512-TP4t+RTe7krEIhdl4oiqkmuKHAkRj3FAlCYfTjutrYHNGzBeYCkNdRd4QcMl2l+uSabLVQZ7XXDyFcKSzZJNdA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^9.0.0", - "clsx": "^2.1.1" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/primitives/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/priority-queue": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.57.0.tgz", - "integrity": "sha512-ZIfR49tJ8MKEARh/Ucy18QsVQXzeriFXcR0q+urvnCwaPwgpAY1bQo1a5oA0Mw5wO+uDvjGt7m5uZZeSxfHzxg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "requestidlecallback": "^0.3.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/private-apis": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.56.0.tgz", - "integrity": "sha512-LwtJallQ1xT1ABbulaW9lYswuMS20s/sQCX71Rf9s37M9qQBZ0Pw7hkkeCU6ik6jPkorHsLhbGCeThcAcHYr2w==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/react-inert-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/react-inert-value/-/react-inert-value-1.0.0.tgz", - "integrity": "sha512-7B8vdjQhqdeyblzL/RldlWpaJuCidRq5TrY0s33brpONmayMLlc4na+o4qckKONxEoZKg3KN1cm81A3WeSnOzw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/redux-routine": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.57.0.tgz", - "integrity": "sha512-k28mJoPzwJaIWtpM6kSSEXG3bggqMbFtaRm9tu9uDYtIc268NYb0j9/wAR8Zi8IZ7Gw2bP3So3r0hv0RoXVIPA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "rungen": "^0.3.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "redux": ">=4" - } - }, - "node_modules/@wordpress/rich-text": { - "version": "7.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.57.0.tgz", - "integrity": "sha512-7Qlh8jynGsaagfOUA3t8bourV+r6F8CN5EOanj6MIrsqZaasLT80zhGZeBBR21V77HVNFFCMlDIFNjxmvgmmxA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/a11y": "^4.57.0", - "@wordpress/compose": "^8.10.0", - "@wordpress/data": "^10.57.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/escape-html": "^3.57.0", - "@wordpress/i18n": "^6.30.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/private-apis": "^2.0.0", - "colord": "^2.9.4" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/rich-text/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/rich-text/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/rich-text/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/rich-text/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/scripts": { - "version": "30.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.25.0.tgz", - "integrity": "sha512-sUL6R4aYzdvrg8V7W49RxLsLavv7ZuQ4/6gIb/ZCYZDwhzT4feqdMXyViwmlyaQMIxTMJy93zD+7jFrUGy07Sw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/core": "7.25.7", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", - "@svgr/webpack": "^8.0.1", - "@wordpress/babel-preset-default": "^8.32.0", - "@wordpress/browserslist-config": "^6.32.0", - "@wordpress/dependency-extraction-webpack-plugin": "^6.32.0", - "@wordpress/e2e-test-utils-playwright": "^1.32.0", - "@wordpress/eslint-plugin": "^22.18.0", - "@wordpress/jest-preset-default": "^12.32.0", - "@wordpress/npm-package-json-lint-config": "^5.32.0", - "@wordpress/postcss-plugins-preset": "^5.32.0", - "@wordpress/prettier-config": "^4.32.0", - "@wordpress/stylelint-config": "^23.24.0", - "adm-zip": "^0.5.9", - "babel-jest": "29.7.0", - "babel-loader": "9.2.1", - "browserslist": "^4.21.10", - "chalk": "^4.0.0", - "check-node-version": "^4.1.0", - "copy-webpack-plugin": "^10.2.0", - "cross-spawn": "^7.0.6", - "css-loader": "^6.2.0", - "cssnano": "^6.0.1", - "cwd": "^0.10.0", - "dir-glob": "^3.0.1", - "eslint": "^8.3.0", - "expect-puppeteer": "^4.4.0", - "fast-glob": "^3.2.7", - "filenamify": "^4.2.0", - "jest": "^29.6.2", - "jest-dev-server": "^10.1.4", - "jest-environment-jsdom": "^29.6.2", - "jest-environment-node": "^29.6.2", - "json2php": "^0.0.9", - "markdownlint-cli": "^0.31.1", - "merge-deep": "^3.0.3", - "mini-css-extract-plugin": "^2.9.2", - "minimist": "^1.2.0", - "npm-package-json-lint": "^6.4.0", - "npm-packlist": "^3.0.0", - "postcss": "^8.4.5", - "postcss-loader": "^6.2.1", - "prettier": "npm:wp-prettier@3.0.3", - "puppeteer-core": "^23.10.1", - "react-refresh": "^0.14.0", - "read-pkg-up": "^7.0.1", - "resolve-bin": "^0.4.0", - "rtlcss": "^4.3.0", - "sass": "^1.54.0", - "sass-loader": "^16.0.3", - "schema-utils": "^4.2.0", - "source-map-loader": "^3.0.0", - "stylelint": "^16.8.2", - "terser-webpack-plugin": "^5.3.10", - "url-loader": "^4.1.1", - "webpack": "^5.97.0", - "webpack-bundle-analyzer": "^4.9.1", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" - }, - "bin": { - "wp-scripts": "bin/wp-scripts.js" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@playwright/test": "^1.55.0", - "@wordpress/env": "^10.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "peerDependenciesMeta": { - "@wordpress/env": { - "optional": true - } - } - }, - "node_modules/@wordpress/scripts/node_modules/@babel/core": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", - "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@wordpress/scripts/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/@wordpress/scripts/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@wordpress/scripts/node_modules/commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/@wordpress/scripts/node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@wordpress/scripts/node_modules/css-loader/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@wordpress/scripts/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@wordpress/scripts/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@wordpress/scripts/node_modules/ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@wordpress/scripts/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@wordpress/scripts/node_modules/json2php": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz", - "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==", - "dev": true, - "license": "BSD" - }, - "node_modules/@wordpress/scripts/node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/scripts/node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/@wordpress/scripts/node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/@wordpress/scripts/node_modules/markdownlint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", - "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", - "dev": true, - "license": "MIT", - "dependencies": { - "markdown-it": "12.3.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/scripts/node_modules/markdownlint-cli": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", - "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "~9.0.0", - "get-stdin": "~9.0.0", - "glob": "~7.2.0", - "ignore": "~5.2.0", - "js-yaml": "^4.1.0", - "jsonc-parser": "~3.0.0", - "markdownlint": "~0.25.1", - "markdownlint-rule-helpers": "~0.16.0", - "minimatch": "~3.0.5", - "run-con": "~1.2.10" - }, - "bin": { - "markdownlint": "markdownlint.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/scripts/node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/scripts/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@wordpress/scripts/node_modules/run-con": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", - "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~3.0.0", - "minimist": "^1.2.8", - "strip-json-comments": "~3.1.1" - }, - "bin": { - "run-con": "cli.js" - } - }, - "node_modules/@wordpress/scripts/node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@wordpress/shortcode": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.57.0.tgz", - "integrity": "sha512-FQvDTVC6XS/Q8RYxgCLCo/akf/UlgUwHvI8zga0bzKzyuyXHprx4ujQkGO8w4uM4uDSxLVaO/ISYW9KGSNvhpA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "memize": "^2.1.1" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/style-engine": { - "version": "2.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.57.0.tgz", - "integrity": "sha512-CmBwZjdWJkqOlPIkEgbyOczd8jn7hrg/lwXhNji0ICs4IgZFh6bk1z10njFFs02v4rBh/rJ0OWUBDrc+C6LtsQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "change-case": "^4.1.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@wordpress/style-runtime": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.6.0.tgz", - "integrity": "sha512-PSNzFecFRJ7gmah5YxHFv0a0ZUwZOdeO9/B8GNyv2LgC/ZLXS8CtsAblOKVRO3W7ExwazbHwexaTAOzU/+7Mug==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0", - "npm": ">=10.2.3" - } - }, - "node_modules/@wordpress/stylelint-config": { - "version": "23.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.24.0.tgz", - "integrity": "sha512-qF0zRv/fLK29/jEjQnY0xy1hrP5Cv6ReG10QkVAtSlaBvu07Hu+RWNIVrSznwlrbzzP+2JM61lO2oAeX/3LD+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@stylistic/stylelint-plugin": "^3.0.1", - "stylelint-config-recommended": "^14.0.1", - "stylelint-config-recommended-scss": "^14.1.0" + "@babel/runtime": "7.25.7", + "requestidlecallback": "^0.3.0" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" - }, - "peerDependencies": { - "stylelint": "^16.8.2", - "stylelint-scss": "^6.4.0" } }, - "node_modules/@wordpress/sync": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/@wordpress/sync/-/sync-1.56.0.tgz", - "integrity": "sha512-vqhlXSfIkbTLV9UFolu7NWIaZNThDBJz4zlmUAEiPo+5eEIHGaPvkbvj3pgNjlLXQYjNeHurgxqc6uVot/zLiw==", + "node_modules/@wordpress/scripts": { + "version": "30.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.25.0.tgz", + "integrity": "sha512-sUL6R4aYzdvrg8V7W49RxLsLavv7ZuQ4/6gIb/ZCYZDwhzT4feqdMXyViwmlyaQMIxTMJy93zD+7jFrUGy07Sw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/api-fetch": "^7.56.0", - "@wordpress/hooks": "^4.56.0", - "@wordpress/private-apis": "^1.56.0", - "@wordpress/undo-manager": "^1.56.0", - "diff": "^8.0.3", - "fast-deep-equal": "^3.1.3", - "lib0": "^0.2.99", - "y-protocols": "^1.0.7", - "yjs": "^13.6.29" + "@babel/core": "7.25.7", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", + "@svgr/webpack": "^8.0.1", + "@wordpress/babel-preset-default": "^8.32.0", + "@wordpress/browserslist-config": "^6.32.0", + "@wordpress/dependency-extraction-webpack-plugin": "^6.32.0", + "@wordpress/e2e-test-utils-playwright": "^1.32.0", + "@wordpress/eslint-plugin": "^22.18.0", + "@wordpress/jest-preset-default": "^12.32.0", + "@wordpress/npm-package-json-lint-config": "^5.32.0", + "@wordpress/postcss-plugins-preset": "^5.32.0", + "@wordpress/prettier-config": "^4.32.0", + "@wordpress/stylelint-config": "^23.24.0", + "adm-zip": "^0.5.9", + "babel-jest": "29.7.0", + "babel-loader": "9.2.1", + "browserslist": "^4.21.10", + "chalk": "^4.0.0", + "check-node-version": "^4.1.0", + "copy-webpack-plugin": "^10.2.0", + "cross-spawn": "^7.0.6", + "css-loader": "^6.2.0", + "cssnano": "^6.0.1", + "cwd": "^0.10.0", + "dir-glob": "^3.0.1", + "eslint": "^8.3.0", + "expect-puppeteer": "^4.4.0", + "fast-glob": "^3.2.7", + "filenamify": "^4.2.0", + "jest": "^29.6.2", + "jest-dev-server": "^10.1.4", + "jest-environment-jsdom": "^29.6.2", + "jest-environment-node": "^29.6.2", + "json2php": "^0.0.9", + "markdownlint-cli": "^0.31.1", + "merge-deep": "^3.0.3", + "mini-css-extract-plugin": "^2.9.2", + "minimist": "^1.2.0", + "npm-package-json-lint": "^6.4.0", + "npm-packlist": "^3.0.0", + "postcss": "^8.4.5", + "postcss-loader": "^6.2.1", + "prettier": "npm:wp-prettier@3.0.3", + "puppeteer-core": "^23.10.1", + "react-refresh": "^0.14.0", + "read-pkg-up": "^7.0.1", + "resolve-bin": "^0.4.0", + "rtlcss": "^4.3.0", + "sass": "^1.54.0", + "sass-loader": "^16.0.3", + "schema-utils": "^4.2.0", + "source-map-loader": "^3.0.0", + "stylelint": "^16.8.2", + "terser-webpack-plugin": "^5.3.10", + "url-loader": "^4.1.1", + "webpack": "^5.97.0", + "webpack-bundle-analyzer": "^4.9.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/theme": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.17.0.tgz", - "integrity": "sha512-BU+PLBLxMBM4WJYrd1QEwy+IA64vUP+8IEEB9lLx2NfB+3/45vvuvXx9o3qPKRDHvtMtEaRArld4Kn05UIW9IA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/compose": "^8.2.0", - "@wordpress/deprecated": "^4.49.0", - "@wordpress/element": "^8.1.0", - "@wordpress/private-apis": "^1.49.0", - "@wordpress/style-runtime": "^0.5.0", - "colorjs.io": "^0.6.0", - "memize": "^2.1.0" + "bin": { + "wp-scripts": "bin/wp-scripts.js" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" }, "peerDependencies": { - "@types/react": "^18.3.27", - "esbuild": "^0.27.2", - "postcss": "^8.0.0", + "@playwright/test": "^1.55.0", + "@wordpress/env": "^10.0.0", "react": "^18.0.0", - "react-dom": "^18.0.0", - "stylelint": "^16.8.2", - "vite": "^7.3.2" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "postcss": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@wordpress/theme/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/theme/node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@wordpress/theme/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/theme/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "react-dom": "^18.0.0" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { + "@wordpress/env": { "optional": true } } }, - "node_modules/@wordpress/theme/node_modules/@wordpress/style-runtime": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.5.0.tgz", - "integrity": "sha512-hrXvdDUJpOzT1KIomgtysysgbc5bkkwAuJyEUAXiOCgVBXBeMkZlgfN19W0PuNY51j53K7VQ42txfayxgVmfgA==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0", - "npm": ">=10.2.3" - } - }, - "node_modules/@wordpress/token-list": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.57.0.tgz", - "integrity": "sha512-K8CNdJRHjQzKAL0HYSxab/pNJVQZTv0xV/cbssaf2WwiDy3jVCNvWGg7S886rRPr2yLgoVMhv12B6IAhJ1SSFw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/ui": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.17.0.tgz", - "integrity": "sha512-+mMnJmkvFjTk7veIioU/idaPfb6HJCcBV408v1gKsbpLa+dxG+rLdlrpzJILLlZmHUyCrJXk9EmYZi6MkFoL9A==", + "node_modules/@wordpress/scripts/node_modules/@babel/core": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@base-ui/react": "^1.5.0", - "@wordpress/a11y": "^4.50.0", - "@wordpress/compose": "^8.3.0", - "@wordpress/element": "^8.2.0", - "@wordpress/i18n": "^6.23.0", - "@wordpress/icons": "^15.1.0", - "@wordpress/keycodes": "^4.50.0", - "@wordpress/primitives": "^4.50.0", - "@wordpress/private-apis": "^1.50.0", - "@wordpress/style-runtime": "^0.6.0", - "@wordpress/theme": "^0.17.0", - "clsx": "^2.1.1", - "tabbable": "^6.4.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">=20.10.0", - "npm": ">=10.2.3" - }, - "peerDependencies": { - "@types/react": "^18.3.27", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@wordpress/ui/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "node_modules/@wordpress/scripts/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } + "license": "Python-2.0" }, - "node_modules/@wordpress/ui/node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/scripts/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@wordpress/ui/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "node_modules/@wordpress/scripts/node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": "^12.20.0 || >=14" } }, - "node_modules/@wordpress/ui/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "node_modules/@wordpress/scripts/node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=18.12.0" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "@types/react": { + "@rspack/core": { "optional": true }, - "@types/react-dom": { + "webpack": { "optional": true } } }, - "node_modules/@wordpress/ui/node_modules/@wordpress/icons": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-15.5.0.tgz", - "integrity": "sha512-ES/PmxhDyBvx5Z+SqMXJCO1hLJ6XLs4L6FZNQLfqhFDn/xppjkFtFw6B0EnfumpdcZX/tSYDU3PfcicFilIGKQ==", + "node_modules/@wordpress/scripts/node_modules/css-loader/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^8.6.0", - "@wordpress/primitives": "^4.54.0", - "change-case": "^4.1.2" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=10" } }, - "node_modules/@wordpress/undo-manager": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.57.0.tgz", - "integrity": "sha512-LGTnpgeuRKDiEMrfzfAxkivlhN6apCsIVx3v7lyRb3vcr1rM9j8JL34W/+sLDLaUafb4I1f/LEBFRB18F55/Gg==", + "node_modules/@wordpress/scripts/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/is-shallow-equal": "^5.57.0" - }, - "engines": { - "node": ">=18.12.0" + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/@wordpress/upload-media": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.35.0.tgz", - "integrity": "sha512-Xpka03EVJZd0BORFsgYZhGnrSHwolwXkDR+g4S+VQoWOCbhZSX9VRPgEiPSxzp3i4HTCvgXyeEo6sEKNrhlllg==", + "node_modules/@wordpress/scripts/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/blob": "^4.50.0", - "@wordpress/compose": "^8.3.0", - "@wordpress/data": "^10.50.0", - "@wordpress/element": "^8.2.0", - "@wordpress/i18n": "^6.23.0", - "@wordpress/preferences": "^4.50.0", - "@wordpress/private-apis": "^1.50.0", - "@wordpress/url": "^4.50.0", - "@wordpress/vips": "^2.3.0", - "uuid": "^14.0.0" - }, + "license": "MIT", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@types/react": "^18.3.27", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">= 4" } }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/compose": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.10.0.tgz", - "integrity": "sha512-ilezxcwhnlCLBZHYjgRgVf4+QxIKb373WLrab47EVFck9GwdLlq1rBWcWCnXME6r1MJ1r8q30RTGSbA5shub6Q==", + "node_modules/@wordpress/scripts/node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/dom": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/keycodes": "^4.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/undo-manager": "^1.57.0", - "change-case": "^4.1.2", - "mousetrap": "^1.6.5" - }, + "license": "ISC", "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/scripts/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "argparse": "^2.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/compose/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "node_modules/@wordpress/scripts/node_modules/json2php": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz", + "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==", "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } + "license": "BSD" }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/data": { - "version": "10.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.57.0.tgz", - "integrity": "sha512-R/b8HUJu+XxyPgbOiY62UySzsRNf1gcVXw4vB4lyOyraVrXzK1tbxOXnSugpZLHKJFRvyipV0/m3o/M4DpZmzQ==", + "node_modules/@wordpress/scripts/node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT" + }, + "node_modules/@wordpress/scripts/node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@wordpress/compose": "^8.10.0", - "@wordpress/deprecated": "^4.57.0", - "@wordpress/element": "^9.0.0", - "@wordpress/is-shallow-equal": "^5.57.0", - "@wordpress/priority-queue": "^3.57.0", - "@wordpress/private-apis": "^2.0.0", - "@wordpress/redux-routine": "^5.57.0", - "deepmerge": "^4.3.1", - "equivalent-key-map": "^0.2.2", - "is-plain-object": "^5.1.0", - "is-promise": "^4.0.0", - "redux": "^5.0.1", - "rememo": "^4.0.2" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "uc.micro": "^1.0.1" } }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/data/node_modules/@wordpress/element": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-9.0.0.tgz", - "integrity": "sha512-o4m80wTlAkqbdJ7F7vkmFzWx6B46fJ3eyG9dWu5BJ1adjL1tA1wv0xStTkFzKuU1iPHCRN0dhauS9G9rfdF3jw==", + "node_modules/@wordpress/scripts/node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.57.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-2.0.0.tgz", - "integrity": "sha512-VmGwebQZoebF5t1xFMXbj6z/dTtAca4d8YaO3IPN2aP8IT+eOrUBvoAthC5BmLPU4JLN5m3r8vbrid3mcli6vw==", + "node_modules/@wordpress/scripts/node_modules/markdownlint": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", + "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", + "dependencies": { + "markdown-it": "12.3.2" + }, "engines": { - "node": ">=18.12.0" + "node": ">=12" } }, - "node_modules/@wordpress/upload-media/node_modules/@wordpress/element": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.8.0.tgz", - "integrity": "sha512-cMQ32/FbQVwwa10+R1QUjJwXM+FSnNtL0t1ZOmY/rdtjm8sZh1A6idpQEC0JFCoBGx61ZXYA2EUyjqJoLyU9QQ==", + "node_modules/@wordpress/scripts/node_modules/markdownlint-cli": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", + "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/escape-html": "^3.56.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.1.0" - }, - "engines": { - "node": ">=18.12.0" + "commander": "~9.0.0", + "get-stdin": "~9.0.0", + "glob": "~7.2.0", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.0.0", + "markdownlint": "~0.25.1", + "markdownlint-rule-helpers": "~0.16.0", + "minimatch": "~3.0.5", + "run-con": "~1.2.10" }, - "peerDependencies": { - "@types/react": "^18 || ^19", - "@types/react-dom": "^18 || ^19", - "react": "^18 || ^19", - "react-dom": "^18 || ^19" + "bin": { + "markdownlint": "markdownlint.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=12" } }, - "node_modules/@wordpress/upload-media/node_modules/uuid": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.3.tgz", - "integrity": "sha512-Sc5u1VVln93y1Xnz4R+CunOZc7R9LUcTmhj7Rc7Eg3HVcf7rVn2FOoa812fe0W8p3jD7xeoGSYbfqCGGH2B6xw==", + "node_modules/@wordpress/scripts/node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } + "license": "MIT" }, - "node_modules/@wordpress/url": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.57.0.tgz", - "integrity": "sha512-2y8No4z7GNlrNjR7hUTThSG7hVRDAQixwFxPj8JUydjMS9nv02PBgZhy7XakFXVZFw2PsmajTW56+BdQFKp96A==", + "node_modules/@wordpress/scripts/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "ISC", "dependencies": { - "remove-accents": "^0.5.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=18.12.0" + "node": "*" + } + }, + "node_modules/@wordpress/scripts/node_modules/run-con": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", + "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" } }, - "node_modules/@wordpress/vips": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@wordpress/vips/-/vips-2.4.0.tgz", - "integrity": "sha512-VOpP5RK+FyuxB3uzNsruAl9Np71pgzpLcUuz7LSoh4UUL+S2xI1UEPU9Dki6/3COSca/2vqocwjOrAYFEf/Y1w==", + "node_modules/@wordpress/scripts/node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT" + }, + "node_modules/@wordpress/stylelint-config": { + "version": "23.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.24.0.tgz", + "integrity": "sha512-qF0zRv/fLK29/jEjQnY0xy1hrP5Cv6ReG10QkVAtSlaBvu07Hu+RWNIVrSznwlrbzzP+2JM61lO2oAeX/3LD+g==", + "dev": true, + "license": "MIT", "dependencies": { - "@wordpress/worker-threads": "^1.11.0", - "wasm-vips": "^0.0.18" + "@stylistic/stylelint-plugin": "^3.0.1", + "stylelint-config-recommended": "^14.0.1", + "stylelint-config-recommended-scss": "^14.1.0" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" + }, + "peerDependencies": { + "stylelint": "^16.8.2", + "stylelint-scss": "^6.4.0" } }, "node_modules/@wordpress/warning": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.57.0.tgz", - "integrity": "sha512-QZiohW7oPbHci796qcfz6i4jw1ybNwQqCaFk7/KigCUUjXMQv8WoKVX8IdoRF8MpelDmEUoZur6O+KXWPQ0bLw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/wordcount": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.57.0.tgz", - "integrity": "sha512-V/pTuODLnqrlZFm7kL++EpUX/CFP371JPstswdPQeuE0tu1F+wYLRmSPEazQSNgj9VGJXaAF9VCz7pF7M5INrw==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/worker-threads": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/worker-threads/-/worker-threads-1.17.0.tgz", - "integrity": "sha512-Pnw5u+BmiY5fNsoyUi7+99BmncNXalhu7nWos83TLX1RSxyWunTouUZagbq0La+DLoc4ogYhJNVtLfMygvwsEw==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.32.0.tgz", + "integrity": "sha512-6dPNKfJAOXijIMi9k/QdS/IQvHXcl5ErNM10y5dIhhLDuGmsZlQER06VrVmQIVAkbsmL49OfrqkqMOQidp61JA==", "dev": true, "license": "GPL-2.0-or-later", - "dependencies": { - "comctx": "^1.4.3" - }, "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, "node_modules/@wp-playground/blueprints": { @@ -15516,19 +9973,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/aria-hidden": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", @@ -15838,13 +10282,6 @@ "postcss": "^8.1.0" } }, - "node_modules/autosize": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", - "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==", - "dev": true, - "license": "MIT" - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -16014,49 +10451,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/babel-plugin-macros/node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", @@ -17136,23 +11530,6 @@ "node": ">=6" } }, - "node_modules/cmdk": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", - "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.6", - "@radix-ui/react-id": "^1.1.0", - "@radix-ui/react-primitive": "^2.0.2" - }, - "peerDependencies": { - "react": "^18 || ^19 || ^19.0.0-rc", - "react-dom": "^18 || ^19 || ^19.0.0-rc" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -17192,9 +11569,9 @@ "license": "MIT" }, "node_modules/colord": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", - "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true, "license": "MIT" }, @@ -17205,17 +11582,6 @@ "dev": true, "license": "MIT" }, - "node_modules/colorjs.io": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz", - "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -17229,13 +11595,6 @@ "node": ">= 0.8" } }, - "node_modules/comctx": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/comctx/-/comctx-1.7.6.tgz", - "integrity": "sha512-rDhDqh6qfmivZfVOGi4qs8RB3PnVtIAB5zLsWu4JqCoQ1p4IEJSB5pW2JvOhFwCMmCLiei9qpaIMxmVVQRhzyw==", - "dev": true, - "license": "MIT" - }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -17319,12 +11678,6 @@ "dev": true, "license": "MIT" }, - "node_modules/computed-style": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", - "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -18621,9 +12974,9 @@ "license": "MIT" }, "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true, "license": "MIT" }, @@ -18727,24 +13080,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-fns": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", - "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/date-fns-jalali": { - "version": "4.1.0-0", - "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", - "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==", - "dev": true, - "license": "MIT" - }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -19058,16 +13393,6 @@ "dev": true, "license": "ISC" }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -19123,13 +13448,6 @@ "dev": true, "license": "MIT" }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "dev": true, - "license": "MIT" - }, "node_modules/devtools-protocol": { "version": "0.0.1507524", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz", @@ -19137,16 +13455,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/diff": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", - "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -19438,16 +13746,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", @@ -19522,13 +13820,6 @@ "node": ">=4" } }, - "node_modules/equivalent-key-map": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz", - "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew==", - "dev": true, - "license": "MIT" - }, "node_modules/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -21203,13 +15494,6 @@ "find-process": "bin/find-process.js" } }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true, - "license": "MIT" - }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -21394,34 +15678,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/framer-motion": { - "version": "11.18.2", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", - "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "motion-dom": "^11.18.1", - "motion-utils": "^11.18.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -21627,16 +15883,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -21733,17 +15979,6 @@ "node": ">= 14" } }, - "node_modules/gettext-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", - "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "encoding": "^0.1.12", - "safe-buffer": "^5.1.1" - } - }, "node_modules/git-hooks-list": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.2.0.tgz", @@ -21970,15 +16205,6 @@ "dev": true, "license": "ISC" }, - "node_modules/gradient-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-1.2.0.tgz", - "integrity": "sha512-6ABGa9CR7WR/0pAJicBy5SJkiikbFM6kf/JjykwX7x+t+s8ORWVnlbi6FkHeFFb36yWsjUpHqSYrygd7ofEUqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -22158,30 +16384,6 @@ "tslib": "^2.0.3" } }, - "node_modules/highlight-words-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz", - "integrity": "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -22288,13 +16490,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/hpq": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.4.0.tgz", - "integrity": "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==", - "dev": true, - "license": "MIT" - }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -23209,9 +17404,9 @@ } }, "node_modules/is-plain-object": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", - "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "license": "MIT", "engines": { @@ -23225,13 +17420,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -23457,17 +17645,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic.js": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz", - "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "GitHub Sponsors ❤", - "url": "https://github.com/sponsors/dmonad" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -24658,28 +18835,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lib0": { - "version": "0.2.119", - "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.119.tgz", - "integrity": "sha512-vh+TiejVy8Xm+hCdnRfn9BthGNvNUZdEXltNjVZL3TzRIKP3s1lnQh8pWd/Q0wCgY0FPAGVVjFF4ZiHUV3LFgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "isomorphic.js": "^0.2.4" - }, - "bin": { - "0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js", - "0gentesthtml": "bin/gentesthtml.js", - "0serve": "bin/0serve.js" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "GitHub Sponsors ❤", - "url": "https://github.com/sponsors/dmonad" - } - }, "node_modules/lighthouse": { "version": "12.8.2", "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz", @@ -24884,19 +19039,6 @@ "url": "https://github.com/sponsors/antonk52" } }, - "node_modules/line-height": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", - "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==", - "dev": true, - "license": "MIT", - "dependencies": { - "computed-style": "~0.1.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -25152,16 +19294,6 @@ "lz-string": "bin/bin.js" } }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -25360,19 +19492,6 @@ "dev": true, "license": "MIT" }, - "node_modules/marked": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-18.1.1.tgz", - "integrity": "sha512-zEGgrtUG8crk+TrMacJSVABU4DYDDkS8uqgU3ohrn/2fW9C2AEfUrO3m6IhpIpQpl7YcVpiXXC9cSMWDANT3dg==", - "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 20" - } - }, "node_modules/marky": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", @@ -25445,16 +19564,9 @@ "dependencies": { "fs-monkey": "^1.0.4" }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memize": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz", - "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==", - "dev": true, - "license": "MIT" + "engines": { + "node": ">= 4.0.0" + } }, "node_modules/meow": { "version": "9.0.0", @@ -25805,53 +19917,6 @@ "dev": true, "license": "MIT" }, - "node_modules/moment": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz", - "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.48", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", - "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "moment": "^2.29.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/motion-dom": { - "version": "11.18.1", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", - "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "motion-utils": "^11.18.1" - } - }, - "node_modules/motion-utils": { - "version": "11.18.1", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", - "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==", - "dev": true, - "license": "Apache-2.0 WITH LLVM-exception" - }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -26071,13 +20136,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-wheel": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", - "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", @@ -27096,23 +21154,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/parsel-js": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/parsel-js/-/parsel-js-1.2.3.tgz", - "integrity": "sha512-kJHFmSNnujpusFfVEXjNaoJ09VYHF8Ih0aVUn7Clu+Ug8AFoA2wx7Ezh17JfW4+vhm/lauAd9A+//uFkmydZtQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/LeaVerou" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/leaverou" - } - ], - "license": "MIT" - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -28042,16 +22083,6 @@ "postcss": "^8.4.31" } }, - "node_modules/postcss-prefix-selector": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", - "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": ">4 <9" - } - }, "node_modules/postcss-reduce-initial": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", @@ -28193,19 +22224,6 @@ "postcss": "^8.4.31" } }, - "node_modules/postcss-urlrebase": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/postcss-urlrebase/-/postcss-urlrebase-1.4.0.tgz", - "integrity": "sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.3.0" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -28256,25 +22274,6 @@ "node": ">=0.10.0" } }, - "node_modules/preact": { - "version": "10.29.8", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.8.tgz", - "integrity": "sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - }, - "peerDependencies": { - "preact-render-to-string": ">=5" - }, - "peerDependenciesMeta": { - "preact-render-to-string": { - "optional": true - } - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -28714,17 +22713,6 @@ "node": ">=0.10.0" } }, - "node_modules/re-resizable": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz", - "integrity": "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -28738,56 +22726,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-autosize-textarea": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz", - "integrity": "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "autosize": "^4.0.2", - "line-height": "^0.3.1", - "prop-types": "^15.5.6" - }, - "peerDependencies": { - "react": "^0.14.0 || ^15.0.0 || ^16.0.0", - "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/react-colorful": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.8.1.tgz", - "integrity": "sha512-oz68bhsnFWnpDf1ZR8daiQbYpXUnM2h2J6hl9Zg2rTpM/DU6vCqe1E+CpqmqLnJucMZetHZeifSAfJ+geN9lcA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-day-picker": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.14.0.tgz", - "integrity": "sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@date-fns/tz": "^1.4.1", - "@tabby_ai/hijri-converter": "1.0.5", - "date-fns": "^4.1.0", - "date-fns-jalali": "4.1.0-0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/gpbl" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -28802,21 +22740,6 @@ "react": "^18.3.1" } }, - "node_modules/react-easy-crop": { - "version": "5.5.7", - "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.7.tgz", - "integrity": "sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "normalize-wheel": "^1.0.1", - "tslib": "^2.0.1" - }, - "peerDependencies": { - "react": ">=16.4.0", - "react-dom": ">=16.4.0" - } - }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -28834,78 +22757,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", - "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -29046,13 +22897,6 @@ "node": ">=8" } }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "dev": true, - "license": "MIT" - }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -29175,20 +23019,6 @@ "node": ">=4" } }, - "node_modules/rememo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/rememo/-/rememo-4.0.2.tgz", - "integrity": "sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/remove-accents": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", - "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", - "dev": true, - "license": "MIT" - }, "node_modules/requestidlecallback": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz", @@ -29255,13 +23085,6 @@ "dev": true, "license": "MIT" }, - "node_modules/reselect": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.3.0.tgz", - "integrity": "sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==", - "dev": true, - "license": "MIT" - }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -29491,13 +23314,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rungen": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/rungen/-/rungen-0.3.2.tgz", - "integrity": "sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw==", - "dev": true, - "license": "MIT" - }, "node_modules/rxjs": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", @@ -30274,13 +24090,6 @@ "url": "https://github.com/steveukx/git-js?sponsor=1" } }, - "node_modules/simple-html-tokenizer": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz", - "integrity": "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==", - "dev": true, - "license": "MIT" - }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", @@ -31506,13 +25315,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "dev": true, - "license": "MIT" - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -31649,13 +25451,6 @@ "url": "https://opencollective.com/synckit" } }, - "node_modules/tabbable": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", - "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", - "dev": true, - "license": "MIT" - }, "node_modules/table": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", @@ -31697,16 +25492,6 @@ "dev": true, "license": "MIT" }, - "node_modules/tannin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", - "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/plural-forms": "^1.1.0" - } - }, "node_modules/tapable": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", @@ -32702,71 +26487,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-memo-one": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", - "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", - "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -32901,16 +26621,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/wasm-vips": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/wasm-vips/-/wasm-vips-0.0.18.tgz", - "integrity": "sha512-AJyCvxZj/3qceKNnh+YyEobu/IaJFoPN7x7SxyyHmYBS3kASMqJqxQEuN0ZHKQDWsCJ8armfx4Tq3uKrNc+nMA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=17.0.0" - } - }, "node_modules/watchpack": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", @@ -33706,27 +27416,6 @@ "node": ">=0.4" } }, - "node_modules/y-protocols": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.7.tgz", - "integrity": "sha512-YSVsLoXxO67J6eE/nV4AtFtT3QEotZf5sK5BHxFBXso7VDUT3Tx07IfA6hsu5Q5OmBdMkQVmFZ9QOA7fikWvnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lib0": "^0.2.85" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=8.0.0" - }, - "funding": { - "type": "GitHub Sponsors ❤", - "url": "https://github.com/sponsors/dmonad" - }, - "peerDependencies": { - "yjs": "^13.0.0" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -33800,24 +27489,6 @@ "fd-slicer": "~1.1.0" } }, - "node_modules/yjs": { - "version": "13.6.33", - "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.33.tgz", - "integrity": "sha512-q/UYvr1gOk4XII+Cu1CW2dINjYqJJFifTzogEaIARznrvX7uOlHsdTEXcnOBMuIsrCGEEKdNxi74kyMLZlKVfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lib0": "^0.2.99" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=8.0.0" - }, - "funding": { - "type": "GitHub Sponsors ❤", - "url": "https://github.com/sponsors/dmonad" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 66dcfb5e..1e1420c2 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,6 @@ "@babel/preset-react": "^7.25.7", "@testing-library/jest-dom": "^6.1.5", "@testing-library/react": "^14.1.2", - "@wordpress/core-data": "7.32.0", - "@wordpress/data": "10.32.0", "@wordpress/dependency-extraction-webpack-plugin": "^6.20.0", "@wordpress/e2e-test-utils-playwright": "^1.20.0", "@wordpress/env": "^10.39.0", diff --git a/tests/js/bindings/helpers/core-data-environment.js b/tests/js/bindings/helpers/core-data-environment.js deleted file mode 100644 index 6c2f82d8..00000000 --- a/tests/js/bindings/helpers/core-data-environment.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Browser encoding APIs missing from Jest's jsdom environment. - * Import before core-data (whose sync dependency uses TextEncoder at load time). - */ -import { TextEncoder, TextDecoder } from 'util'; - -global.TextEncoder = TextEncoder; -global.TextDecoder = TextDecoder; diff --git a/tests/js/bindings/hooks.integration.test.js b/tests/js/bindings/hooks.integration.test.js deleted file mode 100644 index cbf46a0d..00000000 --- a/tests/js/bindings/hooks.integration.test.js +++ /dev/null @@ -1,334 +0,0 @@ -/** - * Integration tests against real core-data resolvers and a fresh registry. - * The tested path uses real selectors/resolvers with a mocked REST boundary. - * Unrelated editor packages and the metadata side effect retain their mocks. - */ -jest.unmock( '@wordpress/data' ); -jest.unmock( '@wordpress/core-data' ); -jest.unmock( '@wordpress/element' ); -jest.unmock( '@wordpress/compose' ); -jest.unmock( '@wordpress/url' ); -jest.unmock( '@wordpress/i18n' ); -jest.unmock( '@wordpress/hooks' ); - -jest.mock( '../../../assets/src/js/bindings/fieldMetadataCache', () => ( { - addFieldMetadata: jest.fn(), -} ) ); - -import './helpers/core-data-environment'; -import { act, cleanup, render, waitFor } from '@testing-library/react'; -import { createElement } from '@wordpress/element'; -import { createRegistry, RegistryProvider } from '@wordpress/data'; -import { store as coreDataStore } from '@wordpress/core-data'; -import apiFetch from '@wordpress/api-fetch'; -import { useSiteEditorFields } from '../../../assets/src/js/bindings/hooks'; - -const productFields = { field1: { label: 'Field 1', type: 'text' } }; -const bookFields = { bookField: { label: 'Book field', type: 'text' } }; -const delay = () => new Promise( ( resolve ) => setTimeout( resolve, 20 ) ); - -function Consumer( { type, index, results, history } ) { - const result = useSiteEditorFields( type ); - results[ index ] = result; - history.push( result.fields ); - return null; -} - -function mountConsumers( registry, types ) { - const results = Array( types.length ).fill( null ); - const history = []; - const tree = ( nextTypes ) => - createElement( - RegistryProvider, - { value: registry }, - nextTypes.map( ( type, index ) => - createElement( Consumer, { - key: index, - type, - index, - results, - history, - } ) - ) - ); - const view = render( tree( types ) ); - return { - ...view, - results, - history, - rerenderTypes: ( nextTypes ) => view.rerender( tree( nextTypes ) ), - }; -} - -function holdNextRequest() { - const fetchSchema = apiFetch.getMockImplementation(); - let release; - const gate = new Promise( ( resolve ) => { - release = resolve; - } ); - apiFetch.mockImplementationOnce( async ( options ) => { - await gate; - return fetchSchema( options ); - } ); - return release; -} - -async function expectFields( results, fields ) { - await waitFor( () => { - for ( const result of results ) { - expect( result ).not.toBeNull(); - expect( result.isLoading ).toBe( false ); - expect( result.error ).toBeNull(); - expect( result.fields ).toEqual( fields ); - } - } ); -} - -async function resolveRootConfiguration( registry ) { - // Resolve root configuration normally, including its unrelated settings - // OPTIONS request. No post-type record or resolution is preseeded. - await registry.resolveSelect( coreDataStore ).getEntitiesConfig( 'root' ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - expect( apiFetch ).toHaveBeenCalledWith( { - path: '/wp/v2/settings', - method: 'OPTIONS', - } ); - apiFetch.mockClear(); -} - -describe( 'useSiteEditorFields with real core-data', () => { - let registry; - - beforeEach( async () => { - registry = createRegistry(); - registry.register( coreDataStore ); - apiFetch.mockReset(); - apiFetch.mockImplementation( async ( { path, method, parse } ) => { - await delay(); - if ( path === '/wp/v2/settings' && method === 'OPTIONS' ) { - return { schema: { properties: {} } }; - } - const url = new URL( path, 'https://example.test' ); - const type = url.pathname.split( '/' ).pop(); - if ( ! [ 'product', 'book' ].includes( type ) ) { - throw new Error( `Unexpected REST path: ${ path }` ); - } - const fields = type === 'book' ? bookFields : productFields; - const record = { - slug: type, - scf_field_groups: [ - { - title: 'Group', - fields: Object.entries( fields ).map( - ( [ name, metadata ] ) => ( { name, ...metadata } ) - ), - }, - ], - }; - // The real resolver requests parse:false to read permission headers. - return parse === false ? { json: async () => record } : record; - } ); - await resolveRootConfiguration( registry ); - } ); - - afterEach( cleanup ); - - it.each( [ 1, 10, 200 ] )( - 'shares one edit-schema request across %i consumers', - async ( count ) => { - const { results } = mountConsumers( - registry, - Array( count ).fill( 'product' ) - ); - await expectFields( results, productFields ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - const url = new URL( - apiFetch.mock.calls[ 0 ][ 0 ].path, - 'https://example.test' - ); - expect( url.pathname ).toBe( '/wp/v2/types/product' ); - expect( url.searchParams.get( 'context' ) ).toBe( 'edit' ); - } - ); - - it( 'joins an already pending getPostType request', async () => { - const fetchSchema = apiFetch.getMockImplementation(); - let release; - const gate = new Promise( ( resolve ) => { - release = resolve; - } ); - apiFetch.mockImplementationOnce( async ( options ) => { - await gate; - return fetchSchema( options ); - } ); - const pending = registry - .resolveSelect( coreDataStore ) - .getPostType( 'product' ); - await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 1 ) ); - const { results } = mountConsumers( - registry, - Array( 10 ).fill( 'product' ) - ); - const loading = results.map( ( result ) => result.isLoading ); - await act( async () => { - release(); - await pending; - } ); - expect( loading ).toEqual( Array( 10 ).fill( true ) ); - await expectFields( results, productFields ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - } ); - - it( 'should call apiFetch with correct parameters', async () => { - const { results } = mountConsumers( registry, [ 'product' ] ); - expect( results[ 0 ].isLoading ).toBe( true ); - await expectFields( results, productFields ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - expect( apiFetch ).toHaveBeenCalledWith( { - path: '/wp/v2/types/product?context=edit', - parse: false, - } ); - } ); - - // Unlike the former per-instance cancellation test, a shared request must - // survive one consumer unmounting so the remaining consumers can finish. - it( 'should preserve a pending shared fetch when one consumer unmounts', async () => { - const release = holdNextRequest(); - const first = mountConsumers( registry, [ 'product' ] ); - await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 1 ) ); - const request = apiFetch.mock.calls[ 0 ][ 0 ]; - const second = mountConsumers( registry, [ 'product' ] ); - expect( first.results[ 0 ].isLoading ).toBe( true ); - expect( second.results[ 0 ].isLoading ).toBe( true ); - first.unmount(); - const renderCount = first.history.length; - expect( request.signal?.aborted ).not.toBe( true ); - const pending = registry - .resolveSelect( coreDataStore ) - .getPostType( 'product' ); - await act( async () => { - release(); - await pending; - } ); - await expectFields( second.results, productFields ); - expect( first.history ).toHaveLength( renderCount ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - const remounted = mountConsumers( registry, [ 'product' ] ); - await expectFields( remounted.results, productFields ); - await act( delay ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - } ); - - it( 'should update when post type changes in the same consumer', async () => { - const consumer = mountConsumers( registry, [ 'product' ] ); - await expectFields( consumer.results, productFields ); - const release = holdNextRequest(); - consumer.history.length = 0; - consumer.rerenderTypes( [ 'book' ] ); - expect( consumer.results[ 0 ].fields ).toEqual( {} ); - expect( consumer.results[ 0 ].isLoading ).toBe( true ); - await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 2 ) ); - const pending = registry - .resolveSelect( coreDataStore ) - .getPostType( 'book' ); - await act( async () => { - release(); - await pending; - } ); - await expectFields( consumer.results, bookFields ); - for ( const fields of consumer.history ) { - expect( fields ).not.toHaveProperty( 'field1' ); - } - consumer.rerenderTypes( [ null ] ); - await expectFields( consumer.results, {} ); - await act( delay ); - expect( apiFetch ).toHaveBeenCalledTimes( 2 ); - } ); - - it( 'should ignore a late response for the previous type in the same consumer', async () => { - const release = holdNextRequest(); - const consumer = mountConsumers( registry, [ 'product' ] ); - await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 1 ) ); - expect( consumer.results[ 0 ].isLoading ).toBe( true ); - const pending = registry - .resolveSelect( coreDataStore ) - .getPostType( 'product' ); - consumer.history.length = 0; - consumer.rerenderTypes( [ 'book' ] ); - expect( consumer.results[ 0 ].fields ).toEqual( {} ); - await expectFields( consumer.results, bookFields ); - await act( async () => { - release(); - await pending; - } ); - await expectFields( consumer.results, bookFields ); - for ( const fields of consumer.history ) { - expect( fields ).not.toHaveProperty( 'field1' ); - } - expect( apiFetch ).toHaveBeenCalledTimes( 2 ); - } ); - - it( 'reuses a resolved type on remount', async () => { - const first = mountConsumers( registry, [ 'product' ] ); - await expectFields( first.results, productFields ); - first.unmount(); - const second = mountConsumers( registry, [ 'product' ] ); - await expectFields( second.results, productFields ); - await act( delay ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - } ); - - it( 'resolves a different type once without mixing fields', async () => { - const products = mountConsumers( registry, [ 'product', 'product' ] ); - await expectFields( products.results, productFields ); - const books = mountConsumers( registry, [ 'book', 'book' ] ); - await expectFields( books.results, bookFields ); - await expectFields( products.results, productFields ); - expect( apiFetch ).toHaveBeenCalledTimes( 2 ); - expect( apiFetch.mock.calls[ 1 ][ 0 ].path ).toContain( - '/wp/v2/types/book' - ); - } ); - - it( 'keeps stored fields in every render during an explicit refetch', async () => { - const { results, history } = mountConsumers( - registry, - Array( 10 ).fill( 'product' ) - ); - await expectFields( results, productFields ); - history.length = 0; - act( () => results[ 0 ].refresh() ); - for ( const result of results ) { - expect( result.fields ).toEqual( productFields ); - expect( result.isLoading ).toBe( true ); - } - await waitFor( () => expect( apiFetch ).toHaveBeenCalledTimes( 2 ) ); - await expectFields( results, productFields ); - expect( history.length ).toBeGreaterThan( 0 ); - for ( const fields of history ) { - expect( fields ).toEqual( productFields ); - } - expect( apiFetch ).toHaveBeenCalledTimes( 2 ); - } ); - - it( 'shares a failed resolution without automatically retrying', async () => { - const error = new Error( 'Temporary REST failure' ); - apiFetch.mockImplementationOnce( async () => { - await delay(); - throw error; - } ); - const { results } = mountConsumers( - registry, - Array( 10 ).fill( 'product' ) - ); - await waitFor( () => { - for ( const result of results ) { - expect( result.isLoading ).toBe( false ); - expect( result.error ).toBe( error ); - expect( result.fields ).toEqual( {} ); - } - } ); - await act( delay ); - expect( apiFetch ).toHaveBeenCalledTimes( 1 ); - } ); -} ); diff --git a/tests/js/bindings/hooks.test.js b/tests/js/bindings/hooks.test.js index 6386b815..d6c65150 100644 --- a/tests/js/bindings/hooks.test.js +++ b/tests/js/bindings/hooks.test.js @@ -4,6 +4,7 @@ import { renderHook } from '@testing-library/react'; import { useSelect, useDispatch } from '@wordpress/data'; +import apiFetch from '@wordpress/api-fetch'; // Mock the fieldMetadataCache module jest.mock( '../../../assets/src/js/bindings/fieldMetadataCache', () => ( { @@ -300,6 +301,7 @@ describe( 'Custom Hooks', () => { expect( fieldMetadataCache.addFieldMetadata ).toHaveBeenCalledWith( result.current.fields ); + expect( apiFetch ).not.toHaveBeenCalled(); } ); it( 'should store field metadata in cache on successful fetch', () => { @@ -312,6 +314,18 @@ describe( 'Custom Hooks', () => { expect( result.current.fields ).toHaveProperty( 'field1' ); } ); + it.each( [ 1, 10, 50, 200 ] )( + 'never starts a private fetch for %i consumers', + ( count ) => { + const consumers = Array.from( { length: count }, () => + renderHook( () => useSiteEditorFields( 'product' ) ) + ); + expect( apiFetch ).not.toHaveBeenCalled(); + consumers.forEach( ( { unmount } ) => unmount() ); + expect( invalidateResolution ).not.toHaveBeenCalled(); + } + ); + it( 'should reset when post type is null', () => { const { result } = renderHook( () => useSiteEditorFields( null ) ); result.current.refresh(); From 40216cde100b5e50dc4746b76b09038e30a21d98 Mon Sep 17 00:00:00 2001 From: Jarkko Saltiola Date: Tue, 20 Oct 2026 16:56:35 +0300 Subject: [PATCH 9/9] Add explicit retry for Site Editor field-loading failures Sharing the core-data resolver also caches failed resolutions, so mounting another block no longer retries a transient schema-fetch failure. The hook exposed refresh(), but the inspector did not consume it, leaving users without a recovery action short of reloading the editor. Show a generic error notice with a Retry button that invalidates the shared resolution through refresh(). Disable retry while loading and preserve cached field options. Keep retries user-triggered to avoid reintroducing per-block request storms. Add tests for error display, explicit retry, loading state, successful recovery, and Post Editor isolation. Validation: 39 suites / 972 tests pass; build, formatting, and new test lint pass. Existing experimental ToolsPanel import lint errors are unchanged. No dependency or lockfile changes. --- assets/src/js/bindings/block-editor.js | 28 +++- .../js/bindings/block-editor-recovery.test.js | 120 ++++++++++++++++++ 2 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 tests/js/bindings/block-editor-recovery.test.js diff --git a/assets/src/js/bindings/block-editor.js b/assets/src/js/bindings/block-editor.js index 8b8464b2..792719e3 100644 --- a/assets/src/js/bindings/block-editor.js +++ b/assets/src/js/bindings/block-editor.js @@ -9,6 +9,8 @@ import { useBlockBindingsUtils, } from '@wordpress/block-editor'; import { + Button, + Notice, ComboboxControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, @@ -48,8 +50,12 @@ const withCustomControls = createHigherOrderComponent( ( BlockEdit ) => { // Get fields based on editor context const postEditorFields = usePostEditorFields(); - const { fields: siteEditorFields } = - useSiteEditorFields( templatePostType ); + const { + fields: siteEditorFields, + isLoading: isLoadingSiteEditorFields, + error: siteEditorFieldsError, + refresh: refreshSiteEditorFields, + } = useSiteEditorFields( templatePostType ); // Use appropriate fields based on context const activeFields = isSiteEditor ? siteEditorFields : postEditorFields; @@ -156,6 +162,24 @@ const withCustomControls = createHigherOrderComponent( ( BlockEdit ) => { ) } resetAll={ handleReset } > + { isSiteEditor && siteEditorFieldsError && ( + +

+ { __( + 'Unable to load custom fields. Please try again.', + 'secure-custom-fields' + ) } +

+ +
+ ) } { canUseAllAttributesMode ? ( diff --git a/tests/js/bindings/block-editor-recovery.test.js b/tests/js/bindings/block-editor-recovery.test.js new file mode 100644 index 00000000..4dc474c1 --- /dev/null +++ b/tests/js/bindings/block-editor-recovery.test.js @@ -0,0 +1,120 @@ +/** + * Inspector recovery from shared Site Editor schema failures. + */ +import { fireEvent, render, screen } from '@testing-library/react'; +import { addFilter } from '@wordpress/hooks'; +import { + useSiteEditorContext, + useSiteEditorFields, +} from '../../../assets/src/js/bindings/hooks'; + +jest.mock( '@wordpress/hooks', () => ( { addFilter: jest.fn() } ) ); +jest.mock( '@wordpress/compose', () => ( { + createHigherOrderComponent: ( callback ) => callback, +} ) ); +jest.mock( '@wordpress/block-editor', () => ( { + InspectorControls: ( { children } ) =>
{ children }
, + useBlockBindingsUtils: () => ( { + updateBlockBindings: jest.fn(), + removeAllBlockBindings: jest.fn(), + } ), +} ) ); +jest.mock( '@wordpress/components', () => ( { + Notice: ( { children } ) =>
{ children }
, + Button: ( { children, onClick, disabled, isBusy } ) => ( + + ), + ComboboxControl: ( { options } ) => ( +
    + { options.map( ( option ) => ( +
  • { option.label }
  • + ) ) } +
+ ), + __experimentalToolsPanel: ( { children } ) =>
{ children }
, + __experimentalToolsPanelItem: ( { children } ) =>
{ children }
, +} ) ); +jest.mock( '../../../assets/src/js/bindings/hooks', () => ( { + useSiteEditorContext: jest.fn(), + useSiteEditorFields: jest.fn(), + usePostEditorFields: () => ( { + field1: { label: 'Field 1', type: 'text' }, + } ), + useBoundFields: () => ( { boundFields: {}, setBoundFields: jest.fn() } ), +} ) ); + +require( '../../../assets/src/js/bindings/block-editor' ); +const withControls = addFilter.mock.calls[ 0 ][ 2 ]; +const BlockEdit = () =>
Block content
; +const EnhancedBlock = withControls( BlockEdit ); +const renderBlock = () => ( + +); + +describe( 'Site Editor field recovery', () => { + let state; + + beforeEach( () => { + state = { + fields: {}, + isLoading: false, + error: new Error( 'Private REST error details' ), + refresh: jest.fn(), + }; + useSiteEditorFields.mockImplementation( () => state ); + useSiteEditorContext.mockReturnValue( { + isSiteEditor: true, + templatePostType: 'product', + } ); + } ); + + it( 'shows a generic error and retries only on user action', () => { + const { rerender } = render( renderBlock() ); + expect( screen.getByRole( 'alert' ).textContent ).toContain( + 'Unable to load custom fields. Please try again.' + ); + expect( screen.queryByText( 'Private REST error details' ) ).toBeNull(); + rerender( renderBlock() ); + expect( state.refresh ).not.toHaveBeenCalled(); + fireEvent.click( screen.getByRole( 'button', { name: 'Retry' } ) ); + expect( state.refresh ).toHaveBeenCalledTimes( 1 ); + } ); + + it( 'disables retry while loading and keeps cached field options', () => { + state.isLoading = true; + state.fields = { field1: { label: 'Field 1', type: 'text' } }; + render( renderBlock() ); + const retry = screen.getByRole( 'button', { name: 'Retry' } ); + expect( retry.disabled ).toBe( true ); + expect( retry.getAttribute( 'aria-busy' ) ).toBe( 'true' ); + fireEvent.click( retry ); + expect( state.refresh ).not.toHaveBeenCalled(); + expect( screen.getByText( 'Field 1' ) ).toBeTruthy(); + } ); + + it( 'removes the notice and shows field options after successful recovery', () => { + const { rerender } = render( renderBlock() ); + fireEvent.click( screen.getByRole( 'button', { name: 'Retry' } ) ); + state.error = null; + state.fields = { field1: { label: 'Field 1', type: 'text' } }; + rerender( renderBlock() ); + expect( screen.queryByRole( 'alert' ) ).toBeNull(); + expect( screen.queryByRole( 'button', { name: 'Retry' } ) ).toBeNull(); + expect( screen.getByText( 'Field 1' ) ).toBeTruthy(); + expect( state.refresh ).toHaveBeenCalledTimes( 1 ); + } ); + + it( 'does not show the Site Editor error in the Post Editor', () => { + useSiteEditorContext.mockReturnValue( { + isSiteEditor: false, + templatePostType: null, + } ); + render( renderBlock() ); + expect( screen.queryByRole( 'alert' ) ).toBeNull(); + expect( screen.queryByRole( 'button', { name: 'Retry' } ) ).toBeNull(); + expect( screen.getByText( 'Field 1' ) ).toBeTruthy(); + expect( state.refresh ).not.toHaveBeenCalled(); + } ); +} );