@wordpress/edit-widgets 6.10.0 → 6.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 6.11.0 (2024-10-30)
6
+
5
7
  ## 6.10.0 (2024-10-16)
6
8
 
7
9
  ## 6.9.0 (2024-10-03)
@@ -69,7 +69,6 @@ function SidebarContent({
69
69
  // We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`
70
70
  // out of the dep array because we want this effect to run based on
71
71
  // block selection changes, not sidebar state changes.
72
- // eslint-disable-next-line react-hooks/exhaustive-deps
73
72
  }, [hasSelectedNonAreaBlock, enableComplementaryArea]);
74
73
  const tabsContextValue = (0, _element.useContext)(Tabs.Context);
75
74
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_interface.ComplementaryArea, {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_interface","_blockEditor","_icons","_components","_data","_widgetAreas","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","SIDEBAR_ACTIVE_BY_DEFAULT","Platform","select","web","native","BLOCK_INSPECTOR_IDENTIFIER","WIDGET_AREAS_IDENTIFIER","Tabs","unlock","componentsPrivateApis","SidebarHeader","selectedWidgetAreaBlock","jsxs","TabList","children","jsx","Tab","tabId","attributes","name","__","SidebarContent","hasSelectedNonAreaBlock","currentArea","isGeneralSidebarOpen","enableComplementaryArea","useDispatch","interfaceStore","useEffect","tabsContextValue","useContext","Context","ComplementaryArea","className","header","Provider","value","headerClassName","title","closeLabel","scope","identifier","icon","isRTL","drawerLeft","drawerRight","isActiveByDefault","TabPanel","focusable","default","selectedWidgetAreaId","id","BlockInspector","Sidebar","useSelect","getSelectedBlock","getBlock","getBlockParentsByBlockName","blockEditorStore","getActiveComplementaryArea","selectedBlock","activeArea","editWidgetsStore","currentSelection","widgetAreaBlock","clientId","onTabSelect","useCallback","newSelectedTabId","selectedTabId","onSelect","selectOnMove"],"sources":["@wordpress/edit-widgets/src/components/sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseEffect,\n\tPlatform,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were once called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction SidebarHeader( { selectedWidgetAreaBlock } ) {\n\treturn (\n\t\t<Tabs.TabList>\n\t\t\t<Tabs.Tab tabId={ WIDGET_AREAS_IDENTIFIER }>\n\t\t\t\t{ selectedWidgetAreaBlock\n\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t: __( 'Widget Areas' ) }\n\t\t\t</Tabs.Tab>\n\t\t\t<Tabs.Tab tabId={ BLOCK_INSPECTOR_IDENTIFIER }>\n\t\t\t\t{ __( 'Block' ) }\n\t\t\t</Tabs.Tab>\n\t\t</Tabs.TabList>\n\t);\n}\n\nfunction SidebarContent( {\n\thasSelectedNonAreaBlock,\n\tcurrentArea,\n\tisGeneralSidebarOpen,\n\tselectedWidgetAreaBlock,\n} ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\t// We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`\n\t\t// out of the dep array because we want this effect to run based on\n\t\t// block selection changes, not sidebar state changes.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\tconst tabsContextValue = useContext( Tabs.Context );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader\n\t\t\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t<WidgetAreas\n\t\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t{ hasSelectedNonAreaBlock ? (\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</ComplementaryArea>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock, getBlock, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\t// `newSelectedTabId` could technically be falsy if no tab is selected (i.e.\n\t// the initial render) or when we don't want a tab displayed (i.e. the\n\t// sidebar is closed). These cases should both be covered by the `!!` check\n\t// below, so we shouldn't need any additional falsy handling.\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea(\n\t\t\t\t\teditWidgetsStore.name,\n\t\t\t\t\tnewSelectedTabId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\t// Due to how this component is controlled (via a value from the\n\t\t\t// `interfaceStore`), when the sidebar closes the currently selected\n\t\t\t// tab can't be found. This causes the component to continuously reset\n\t\t\t// the selection to `null` in an infinite loop. Proactively setting\n\t\t\t// the selected tab to `null` avoids that.\n\t\t\tselectedTabId={ isGeneralSidebarOpen ? currentArea : null }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\thasSelectedNonAreaBlock={ hasSelectedNonAreaBlock }\n\t\t\t\tcurrentArea={ currentArea }\n\t\t\t\tisGeneralSidebarOpen={ isGeneralSidebarOpen }\n\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_i18n","_interface","_blockEditor","_icons","_components","_data","_widgetAreas","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","SIDEBAR_ACTIVE_BY_DEFAULT","Platform","select","web","native","BLOCK_INSPECTOR_IDENTIFIER","WIDGET_AREAS_IDENTIFIER","Tabs","unlock","componentsPrivateApis","SidebarHeader","selectedWidgetAreaBlock","jsxs","TabList","children","jsx","Tab","tabId","attributes","name","__","SidebarContent","hasSelectedNonAreaBlock","currentArea","isGeneralSidebarOpen","enableComplementaryArea","useDispatch","interfaceStore","useEffect","tabsContextValue","useContext","Context","ComplementaryArea","className","header","Provider","value","headerClassName","title","closeLabel","scope","identifier","icon","isRTL","drawerLeft","drawerRight","isActiveByDefault","TabPanel","focusable","default","selectedWidgetAreaId","id","BlockInspector","Sidebar","useSelect","getSelectedBlock","getBlock","getBlockParentsByBlockName","blockEditorStore","getActiveComplementaryArea","selectedBlock","activeArea","editWidgetsStore","currentSelection","widgetAreaBlock","clientId","onTabSelect","useCallback","newSelectedTabId","selectedTabId","onSelect","selectOnMove"],"sources":["@wordpress/edit-widgets/src/components/sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseEffect,\n\tPlatform,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were once called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction SidebarHeader( { selectedWidgetAreaBlock } ) {\n\treturn (\n\t\t<Tabs.TabList>\n\t\t\t<Tabs.Tab tabId={ WIDGET_AREAS_IDENTIFIER }>\n\t\t\t\t{ selectedWidgetAreaBlock\n\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t: __( 'Widget Areas' ) }\n\t\t\t</Tabs.Tab>\n\t\t\t<Tabs.Tab tabId={ BLOCK_INSPECTOR_IDENTIFIER }>\n\t\t\t\t{ __( 'Block' ) }\n\t\t\t</Tabs.Tab>\n\t\t</Tabs.TabList>\n\t);\n}\n\nfunction SidebarContent( {\n\thasSelectedNonAreaBlock,\n\tcurrentArea,\n\tisGeneralSidebarOpen,\n\tselectedWidgetAreaBlock,\n} ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\t// We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`\n\t\t// out of the dep array because we want this effect to run based on\n\t\t// block selection changes, not sidebar state changes.\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\tconst tabsContextValue = useContext( Tabs.Context );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader\n\t\t\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t<WidgetAreas\n\t\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t{ hasSelectedNonAreaBlock ? (\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</ComplementaryArea>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock, getBlock, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\t// `newSelectedTabId` could technically be falsy if no tab is selected (i.e.\n\t// the initial render) or when we don't want a tab displayed (i.e. the\n\t// sidebar is closed). These cases should both be covered by the `!!` check\n\t// below, so we shouldn't need any additional falsy handling.\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea(\n\t\t\t\t\teditWidgetsStore.name,\n\t\t\t\t\tnewSelectedTabId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\t// Due to how this component is controlled (via a value from the\n\t\t\t// `interfaceStore`), when the sidebar closes the currently selected\n\t\t\t// tab can't be found. This causes the component to continuously reset\n\t\t\t// the selection to `null` in an infinite loop. Proactively setting\n\t\t\t// the selected tab to `null` avoids that.\n\t\t\tselectedTabId={ isGeneralSidebarOpen ? currentArea : null }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\thasSelectedNonAreaBlock={ hasSelectedNonAreaBlock }\n\t\t\t\tcurrentArea={ currentArea }\n\t\t\t\tisGeneralSidebarOpen={ isGeneralSidebarOpen }\n\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -60,7 +60,6 @@ function SidebarContent({
60
60
  // We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`
61
61
  // out of the dep array because we want this effect to run based on
62
62
  // block selection changes, not sidebar state changes.
63
- // eslint-disable-next-line react-hooks/exhaustive-deps
64
63
  }, [hasSelectedNonAreaBlock, enableComplementaryArea]);
65
64
  const tabsContextValue = useContext(Tabs.Context);
66
65
  return /*#__PURE__*/_jsx(ComplementaryArea, {
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","Platform","useContext","useCallback","isRTL","__","ComplementaryArea","store","interfaceStore","BlockInspector","blockEditorStore","drawerLeft","drawerRight","privateApis","componentsPrivateApis","useSelect","useDispatch","SIDEBAR_ACTIVE_BY_DEFAULT","select","web","native","BLOCK_INSPECTOR_IDENTIFIER","WIDGET_AREAS_IDENTIFIER","WidgetAreas","editWidgetsStore","unlock","jsx","_jsx","jsxs","_jsxs","Tabs","SidebarHeader","selectedWidgetAreaBlock","TabList","children","Tab","tabId","attributes","name","SidebarContent","hasSelectedNonAreaBlock","currentArea","isGeneralSidebarOpen","enableComplementaryArea","tabsContextValue","Context","className","header","Provider","value","headerClassName","title","closeLabel","scope","identifier","icon","isActiveByDefault","TabPanel","focusable","selectedWidgetAreaId","id","Sidebar","getSelectedBlock","getBlock","getBlockParentsByBlockName","getActiveComplementaryArea","selectedBlock","activeArea","currentSelection","widgetAreaBlock","clientId","onTabSelect","newSelectedTabId","selectedTabId","onSelect","selectOnMove"],"sources":["@wordpress/edit-widgets/src/components/sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseEffect,\n\tPlatform,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were once called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction SidebarHeader( { selectedWidgetAreaBlock } ) {\n\treturn (\n\t\t<Tabs.TabList>\n\t\t\t<Tabs.Tab tabId={ WIDGET_AREAS_IDENTIFIER }>\n\t\t\t\t{ selectedWidgetAreaBlock\n\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t: __( 'Widget Areas' ) }\n\t\t\t</Tabs.Tab>\n\t\t\t<Tabs.Tab tabId={ BLOCK_INSPECTOR_IDENTIFIER }>\n\t\t\t\t{ __( 'Block' ) }\n\t\t\t</Tabs.Tab>\n\t\t</Tabs.TabList>\n\t);\n}\n\nfunction SidebarContent( {\n\thasSelectedNonAreaBlock,\n\tcurrentArea,\n\tisGeneralSidebarOpen,\n\tselectedWidgetAreaBlock,\n} ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\t// We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`\n\t\t// out of the dep array because we want this effect to run based on\n\t\t// block selection changes, not sidebar state changes.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\tconst tabsContextValue = useContext( Tabs.Context );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader\n\t\t\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t<WidgetAreas\n\t\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t{ hasSelectedNonAreaBlock ? (\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</ComplementaryArea>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock, getBlock, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\t// `newSelectedTabId` could technically be falsy if no tab is selected (i.e.\n\t// the initial render) or when we don't want a tab displayed (i.e. the\n\t// sidebar is closed). These cases should both be covered by the `!!` check\n\t// below, so we shouldn't need any additional falsy handling.\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea(\n\t\t\t\t\teditWidgetsStore.name,\n\t\t\t\t\tnewSelectedTabId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\t// Due to how this component is controlled (via a value from the\n\t\t\t// `interfaceStore`), when the sidebar closes the currently selected\n\t\t\t// tab can't be found. This causes the component to continuously reset\n\t\t\t// the selection to `null` in an infinite loop. Proactively setting\n\t\t\t// the selected tab to `null` avoids that.\n\t\t\tselectedTabId={ isGeneralSidebarOpen ? currentArea : null }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\thasSelectedNonAreaBlock={ hasSelectedNonAreaBlock }\n\t\t\t\tcurrentArea={ currentArea }\n\t\t\t\tisGeneralSidebarOpen={ isGeneralSidebarOpen }\n\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","Platform","useContext","useCallback","isRTL","__","ComplementaryArea","store","interfaceStore","BlockInspector","blockEditorStore","drawerLeft","drawerRight","privateApis","componentsPrivateApis","useSelect","useDispatch","SIDEBAR_ACTIVE_BY_DEFAULT","select","web","native","BLOCK_INSPECTOR_IDENTIFIER","WIDGET_AREAS_IDENTIFIER","WidgetAreas","editWidgetsStore","unlock","jsx","_jsx","jsxs","_jsxs","Tabs","SidebarHeader","selectedWidgetAreaBlock","TabList","children","Tab","tabId","attributes","name","SidebarContent","hasSelectedNonAreaBlock","currentArea","isGeneralSidebarOpen","enableComplementaryArea","tabsContextValue","Context","className","header","Provider","value","headerClassName","title","closeLabel","scope","identifier","icon","isActiveByDefault","TabPanel","focusable","selectedWidgetAreaId","id","Sidebar","getSelectedBlock","getBlock","getBlockParentsByBlockName","getActiveComplementaryArea","selectedBlock","activeArea","currentSelection","widgetAreaBlock","clientId","onTabSelect","newSelectedTabId","selectedTabId","onSelect","selectOnMove"],"sources":["@wordpress/edit-widgets/src/components/sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseEffect,\n\tPlatform,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were once called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction SidebarHeader( { selectedWidgetAreaBlock } ) {\n\treturn (\n\t\t<Tabs.TabList>\n\t\t\t<Tabs.Tab tabId={ WIDGET_AREAS_IDENTIFIER }>\n\t\t\t\t{ selectedWidgetAreaBlock\n\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t: __( 'Widget Areas' ) }\n\t\t\t</Tabs.Tab>\n\t\t\t<Tabs.Tab tabId={ BLOCK_INSPECTOR_IDENTIFIER }>\n\t\t\t\t{ __( 'Block' ) }\n\t\t\t</Tabs.Tab>\n\t\t</Tabs.TabList>\n\t);\n}\n\nfunction SidebarContent( {\n\thasSelectedNonAreaBlock,\n\tcurrentArea,\n\tisGeneralSidebarOpen,\n\tselectedWidgetAreaBlock,\n} ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\t// We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`\n\t\t// out of the dep array because we want this effect to run based on\n\t\t// block selection changes, not sidebar state changes.\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\tconst tabsContextValue = useContext( Tabs.Context );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader\n\t\t\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t<WidgetAreas\n\t\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t{ hasSelectedNonAreaBlock ? (\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</ComplementaryArea>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock, getBlock, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\t// `newSelectedTabId` could technically be falsy if no tab is selected (i.e.\n\t// the initial render) or when we don't want a tab displayed (i.e. the\n\t// sidebar is closed). These cases should both be covered by the `!!` check\n\t// below, so we shouldn't need any additional falsy handling.\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea(\n\t\t\t\t\teditWidgetsStore.name,\n\t\t\t\t\tnewSelectedTabId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\t// Due to how this component is controlled (via a value from the\n\t\t\t// `interfaceStore`), when the sidebar closes the currently selected\n\t\t\t// tab can't be found. This causes the component to continuously reset\n\t\t\t// the selection to `null` in an infinite loop. Proactively setting\n\t\t\t// the selected tab to `null` avoids that.\n\t\t\tselectedTabId={ isGeneralSidebarOpen ? currentArea : null }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\thasSelectedNonAreaBlock={ hasSelectedNonAreaBlock }\n\t\t\t\tcurrentArea={ currentArea }\n\t\t\t\tisGeneralSidebarOpen={ isGeneralSidebarOpen }\n\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -116,23 +116,6 @@
116
116
  }
117
117
  }
118
118
 
119
- .components-panel__header.interface-complementary-area-header__small {
120
- background: #fff;
121
- padding-left: 4px;
122
- }
123
- .components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title {
124
- overflow: hidden;
125
- text-overflow: ellipsis;
126
- white-space: nowrap;
127
- width: 100%;
128
- margin: 0;
129
- }
130
- @media (min-width: 782px) {
131
- .components-panel__header.interface-complementary-area-header__small {
132
- display: none;
133
- }
134
- }
135
-
136
119
  .interface-complementary-area-header {
137
120
  background: #fff;
138
121
  padding-left: 12px;
@@ -141,18 +124,6 @@
141
124
  .interface-complementary-area-header .interface-complementary-area-header__title {
142
125
  margin: 0;
143
126
  }
144
- .interface-complementary-area-header .components-button.has-icon {
145
- display: none;
146
- margin-right: auto;
147
- }
148
- .interface-complementary-area-header .components-button.has-icon ~ .components-button {
149
- margin-right: 0;
150
- }
151
- @media (min-width: 782px) {
152
- .interface-complementary-area-header .components-button.has-icon {
153
- display: flex;
154
- }
155
- }
156
127
 
157
128
  .interface-complementary-area {
158
129
  background: #fff;
@@ -181,12 +152,7 @@
181
152
  z-index: 1;
182
153
  }
183
154
  .interface-complementary-area .components-panel__header.editor-sidebar__panel-tabs {
184
- top: 48px;
185
- }
186
- @media (min-width: 782px) {
187
- .interface-complementary-area .components-panel__header.editor-sidebar__panel-tabs {
188
- top: 0;
189
- }
155
+ top: 0;
190
156
  }
191
157
  .interface-complementary-area p:not(.components-base-control__help, .components-form-token-field__help) {
192
158
  margin-top: 0;
@@ -116,23 +116,6 @@
116
116
  }
117
117
  }
118
118
 
119
- .components-panel__header.interface-complementary-area-header__small {
120
- background: #fff;
121
- padding-right: 4px;
122
- }
123
- .components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title {
124
- overflow: hidden;
125
- text-overflow: ellipsis;
126
- white-space: nowrap;
127
- width: 100%;
128
- margin: 0;
129
- }
130
- @media (min-width: 782px) {
131
- .components-panel__header.interface-complementary-area-header__small {
132
- display: none;
133
- }
134
- }
135
-
136
119
  .interface-complementary-area-header {
137
120
  background: #fff;
138
121
  padding-right: 12px;
@@ -141,18 +124,6 @@
141
124
  .interface-complementary-area-header .interface-complementary-area-header__title {
142
125
  margin: 0;
143
126
  }
144
- .interface-complementary-area-header .components-button.has-icon {
145
- display: none;
146
- margin-left: auto;
147
- }
148
- .interface-complementary-area-header .components-button.has-icon ~ .components-button {
149
- margin-left: 0;
150
- }
151
- @media (min-width: 782px) {
152
- .interface-complementary-area-header .components-button.has-icon {
153
- display: flex;
154
- }
155
- }
156
127
 
157
128
  .interface-complementary-area {
158
129
  background: #fff;
@@ -181,12 +152,7 @@
181
152
  z-index: 1;
182
153
  }
183
154
  .interface-complementary-area .components-panel__header.editor-sidebar__panel-tabs {
184
- top: 48px;
185
- }
186
- @media (min-width: 782px) {
187
- .interface-complementary-area .components-panel__header.editor-sidebar__panel-tabs {
188
- top: 0;
189
- }
155
+ top: 0;
190
156
  }
191
157
  .interface-complementary-area p:not(.components-base-control__help, .components-form-token-field__help) {
192
158
  margin-top: 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-widgets",
3
- "version": "6.10.0",
3
+ "version": "6.11.0",
4
4
  "description": "Widgets Page module for WordPress..",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,33 +28,33 @@
28
28
  "react-native": "src/index",
29
29
  "dependencies": {
30
30
  "@babel/runtime": "7.25.7",
31
- "@wordpress/api-fetch": "^7.10.0",
32
- "@wordpress/block-editor": "^14.5.0",
33
- "@wordpress/block-library": "^9.10.0",
34
- "@wordpress/blocks": "^13.10.0",
35
- "@wordpress/components": "^28.10.0",
36
- "@wordpress/compose": "^7.10.0",
37
- "@wordpress/core-data": "^7.10.0",
38
- "@wordpress/data": "^10.10.0",
39
- "@wordpress/deprecated": "^4.10.0",
40
- "@wordpress/dom": "^4.10.0",
41
- "@wordpress/editor": "^14.10.0",
42
- "@wordpress/element": "^6.10.0",
43
- "@wordpress/hooks": "^4.10.0",
44
- "@wordpress/i18n": "^5.10.0",
45
- "@wordpress/icons": "^10.10.0",
46
- "@wordpress/interface": "^7.0.0",
47
- "@wordpress/keyboard-shortcuts": "^5.10.0",
48
- "@wordpress/keycodes": "^4.10.0",
49
- "@wordpress/media-utils": "^5.10.0",
50
- "@wordpress/notices": "^5.10.0",
51
- "@wordpress/patterns": "^2.10.0",
52
- "@wordpress/plugins": "^7.10.0",
53
- "@wordpress/preferences": "^4.10.0",
54
- "@wordpress/private-apis": "^1.10.0",
55
- "@wordpress/reusable-blocks": "^5.10.0",
56
- "@wordpress/url": "^4.10.0",
57
- "@wordpress/widgets": "^4.10.0",
31
+ "@wordpress/api-fetch": "*",
32
+ "@wordpress/block-editor": "*",
33
+ "@wordpress/block-library": "*",
34
+ "@wordpress/blocks": "*",
35
+ "@wordpress/components": "*",
36
+ "@wordpress/compose": "*",
37
+ "@wordpress/core-data": "*",
38
+ "@wordpress/data": "*",
39
+ "@wordpress/deprecated": "*",
40
+ "@wordpress/dom": "*",
41
+ "@wordpress/editor": "*",
42
+ "@wordpress/element": "*",
43
+ "@wordpress/hooks": "*",
44
+ "@wordpress/i18n": "*",
45
+ "@wordpress/icons": "*",
46
+ "@wordpress/interface": "*",
47
+ "@wordpress/keyboard-shortcuts": "*",
48
+ "@wordpress/keycodes": "*",
49
+ "@wordpress/media-utils": "*",
50
+ "@wordpress/notices": "*",
51
+ "@wordpress/patterns": "*",
52
+ "@wordpress/plugins": "*",
53
+ "@wordpress/preferences": "*",
54
+ "@wordpress/private-apis": "*",
55
+ "@wordpress/reusable-blocks": "*",
56
+ "@wordpress/url": "*",
57
+ "@wordpress/widgets": "*",
58
58
  "clsx": "^2.1.1"
59
59
  },
60
60
  "peerDependencies": {
@@ -64,5 +64,6 @@
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "gitHead": "ab34a7ac935fd1478eac63b596242d83270897ee"
67
+ "wpScript": true,
68
+ "gitHead": "dcf4613b33b0eda14e203ac30f700ed0db70347f"
68
69
  }
@@ -88,7 +88,6 @@ function SidebarContent( {
88
88
  // We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`
89
89
  // out of the dep array because we want this effect to run based on
90
90
  // block selection changes, not sidebar state changes.
91
- // eslint-disable-next-line react-hooks/exhaustive-deps
92
91
  }, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );
93
92
 
94
93
  const tabsContextValue = useContext( Tabs.Context );