@wordpress/commands 0.25.0 → 0.26.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 +2 -0
- package/build/components/command-menu.js +4 -4
- package/build/components/command-menu.js.map +1 -1
- package/build-module/components/command-menu.js +4 -4
- package/build-module/components/command-menu.js.map +1 -1
- package/build-style/style-rtl.css +12 -9
- package/build-style/style.css +12 -9
- package/package.json +9 -9
- package/src/components/command-menu.js +2 -2
- package/src/components/style.scss +14 -9
package/CHANGELOG.md
CHANGED
|
@@ -29,7 +29,7 @@ var _store = require("../store");
|
|
|
29
29
|
* Internal dependencies
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
-
const inputLabel = (0, _i18n.__)('Search
|
|
32
|
+
const inputLabel = (0, _i18n.__)('Search commands and settings');
|
|
33
33
|
function CommandMenuLoader({
|
|
34
34
|
name,
|
|
35
35
|
search,
|
|
@@ -258,12 +258,12 @@ function CommandMenu() {
|
|
|
258
258
|
onKeyDown: onKeyDown
|
|
259
259
|
}, (0, _react.createElement)("div", {
|
|
260
260
|
className: "commands-command-menu__header"
|
|
261
|
-
}, (0, _react.createElement)(
|
|
262
|
-
icon: _icons.search
|
|
263
|
-
}), (0, _react.createElement)(CommandInput, {
|
|
261
|
+
}, (0, _react.createElement)(CommandInput, {
|
|
264
262
|
search: search,
|
|
265
263
|
setSearch: setSearch,
|
|
266
264
|
isOpen: isOpen
|
|
265
|
+
}), (0, _react.createElement)(_icons.Icon, {
|
|
266
|
+
icon: _icons.search
|
|
267
267
|
})), (0, _react.createElement)(_cmdk.Command.List, {
|
|
268
268
|
ref: commandListRef
|
|
269
269
|
}, search && !isLoading && (0, _react.createElement)(_cmdk.Command.Empty, null, (0, _i18n.__)('No results found.')), (0, _react.createElement)(CommandMenuGroup, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cmdk","require","_classnames","_interopRequireDefault","_data","_element","_i18n","_components","_keyboardShortcuts","_icons","_store","inputLabel","__","CommandMenuLoader","name","search","hook","setLoader","close","_hook","isLoading","commands","useEffect","length","_react","createElement","Fragment","map","command","_command$searchLabel","Command","Item","key","value","searchLabel","label","onSelect","callback","id","__experimentalHStack","alignment","className","classnames","icon","Icon","TextHighlight","text","highlight","CommandMenuLoaderWrapper","currentLoader","useRef","setKey","useState","current","prevKey","CommandMenuGroup","isContextual","loaders","useSelect","select","getCommands","getCommandLoaders","commandsStore","Group","_command$searchLabel2","loader","CommandInput","isOpen","setSearch","commandMenuInput","_value","useCommandState","state","selectedItemId","useMemo","item","document","querySelector","getAttribute","focus","Input","ref","onValueChange","placeholder","CommandMenu","registerShortcut","useDispatch","keyboardShortcutsStore","open","setLoaders","commandListRef","category","description","keyCombination","modifier","character","removeAttribute","setAttribute","useShortcut","event","defaultPrevented","preventDefault","bindGlobal","useCallback","closeAndReset","onKeyDown","nativeEvent","isComposing","keyCode","Object","values","some","Boolean","Modal","overlayClassName","onRequestClose","__experimentalHideHeader","contentLabel","inputIcon","List","Empty"],"sources":["@wordpress/commands/src/components/command-menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Command, useCommandState } from 'cmdk';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tTextHighlight,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as keyboardShortcutsStore,\n\tuseShortcut,\n} from '@wordpress/keyboard-shortcuts';\nimport { Icon, search as inputIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\nconst inputLabel = __( 'Search for commands' );\n\nfunction CommandMenuLoader( { name, search, hook, setLoader, close } ) {\n\tconst { isLoading, commands = [] } = hook( { search } ) ?? {};\n\tuseEffect( () => {\n\t\tsetLoader( name, isLoading );\n\t}, [ setLoader, name, isLoading ] );\n\n\tif ( ! commands.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nexport function CommandMenuLoaderWrapper( { hook, search, setLoader, close } ) {\n\t// The \"hook\" prop is actually a custom React hook\n\t// so to avoid breaking the rules of hooks\n\t// the CommandMenuLoaderWrapper component need to be\n\t// remounted on each hook prop change\n\t// We use the key state to make sure we do that properly.\n\tconst currentLoader = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoader.current !== hook ) {\n\t\t\tcurrentLoader.current = hook;\n\t\t\tsetKey( ( prevKey ) => prevKey + 1 );\n\t\t}\n\t}, [ hook ] );\n\n\treturn (\n\t\t<CommandMenuLoader\n\t\t\tkey={ key }\n\t\t\thook={ currentLoader.current }\n\t\t\tsearch={ search }\n\t\t\tsetLoader={ setLoader }\n\t\t\tclose={ close }\n\t\t/>\n\t);\n}\n\nexport function CommandMenuGroup( { isContextual, search, setLoader, close } ) {\n\tconst { commands, loaders } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCommands, getCommandLoaders } = select( commandsStore );\n\t\t\treturn {\n\t\t\t\tcommands: getCommands( isContextual ),\n\t\t\t\tloaders: getCommandLoaders( isContextual ),\n\t\t\t};\n\t\t},\n\t\t[ isContextual ]\n\t);\n\n\tif ( ! commands.length && ! loaders.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Command.Group>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t\t{ loaders.map( ( loader ) => (\n\t\t\t\t<CommandMenuLoaderWrapper\n\t\t\t\t\tkey={ loader.name }\n\t\t\t\t\thook={ loader.hook }\n\t\t\t\t\tsearch={ search }\n\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\tclose={ close }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Command.Group>\n\t);\n}\n\nfunction CommandInput( { isOpen, search, setSearch } ) {\n\tconst commandMenuInput = useRef();\n\tconst _value = useCommandState( ( state ) => state.value );\n\tconst selectedItemId = useMemo( () => {\n\t\tconst item = document.querySelector(\n\t\t\t`[cmdk-item=\"\"][data-value=\"${ _value }\"]`\n\t\t);\n\t\treturn item?.getAttribute( 'id' );\n\t}, [ _value ] );\n\tuseEffect( () => {\n\t\t// Focus the command palette input when mounting the modal.\n\t\tif ( isOpen ) {\n\t\t\tcommandMenuInput.current.focus();\n\t\t}\n\t}, [ isOpen ] );\n\treturn (\n\t\t<Command.Input\n\t\t\tref={ commandMenuInput }\n\t\t\tvalue={ search }\n\t\t\tonValueChange={ setSearch }\n\t\t\tplaceholder={ inputLabel }\n\t\t\taria-activedescendant={ selectedItemId }\n\t\t\ticon={ search }\n\t\t/>\n\t);\n}\n\n/**\n * @ignore\n */\nexport function CommandMenu() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst isOpen = useSelect(\n\t\t( select ) => select( commandsStore ).isOpen(),\n\t\t[]\n\t);\n\tconst { open, close } = useDispatch( commandsStore );\n\tconst [ loaders, setLoaders ] = useState( {} );\n\tconst commandListRef = useRef();\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/commands',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Open the command palette.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'k',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\t// Temporary fix for the suggestions Listbox labeling.\n\t// See https://github.com/pacocoursey/cmdk/issues/196\n\tuseEffect( () => {\n\t\tcommandListRef.current?.removeAttribute( 'aria-labelledby' );\n\t\tcommandListRef.current?.setAttribute(\n\t\t\t'aria-label',\n\t\t\t__( 'Command suggestions' )\n\t\t);\n\t}, [ commandListRef.current ] );\n\n\tuseShortcut(\n\t\t'core/commands',\n\t\t/** @type {import('react').KeyboardEventHandler} */\n\t\t( event ) => {\n\t\t\t// Bails to avoid obscuring the effect of the preceding handler(s).\n\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tif ( isOpen ) {\n\t\t\t\tclose();\n\t\t\t} else {\n\t\t\t\topen();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tbindGlobal: true,\n\t\t}\n\t);\n\n\tconst setLoader = useCallback(\n\t\t( name, value ) =>\n\t\t\tsetLoaders( ( current ) => ( {\n\t\t\t\t...current,\n\t\t\t\t[ name ]: value,\n\t\t\t} ) ),\n\t\t[]\n\t);\n\tconst closeAndReset = () => {\n\t\tsetSearch( '' );\n\t\tclose();\n\t};\n\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst isLoading = Object.values( loaders ).some( Boolean );\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"commands-command-menu\"\n\t\t\toverlayClassName=\"commands-command-menu__overlay\"\n\t\t\tonRequestClose={ closeAndReset }\n\t\t\t__experimentalHideHeader\n\t\t\tcontentLabel={ __( 'Command palette' ) }\n\t\t>\n\t\t\t<div className=\"commands-command-menu__container\">\n\t\t\t\t<Command label={ inputLabel } onKeyDown={ onKeyDown }>\n\t\t\t\t\t<div className=\"commands-command-menu__header\">\n\t\t\t\t\t\t<Icon icon={ inputIcon } />\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetSearch={ setSearch }\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Command.List ref={ commandListRef }>\n\t\t\t\t\t\t{ search && ! isLoading && (\n\t\t\t\t\t\t\t<Command.Empty>\n\t\t\t\t\t\t\t\t{ __( 'No results found.' ) }\n\t\t\t\t\t\t\t</Command.Empty>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\tisContextual\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Command.List>\n\t\t\t\t</Command>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_cmdk","require","_classnames","_interopRequireDefault","_data","_element","_i18n","_components","_keyboardShortcuts","_icons","_store","inputLabel","__","CommandMenuLoader","name","search","hook","setLoader","close","_hook","isLoading","commands","useEffect","length","_react","createElement","Fragment","map","command","_command$searchLabel","Command","Item","key","value","searchLabel","label","onSelect","callback","id","__experimentalHStack","alignment","className","classnames","icon","Icon","TextHighlight","text","highlight","CommandMenuLoaderWrapper","currentLoader","useRef","setKey","useState","current","prevKey","CommandMenuGroup","isContextual","loaders","useSelect","select","getCommands","getCommandLoaders","commandsStore","Group","_command$searchLabel2","loader","CommandInput","isOpen","setSearch","commandMenuInput","_value","useCommandState","state","selectedItemId","useMemo","item","document","querySelector","getAttribute","focus","Input","ref","onValueChange","placeholder","CommandMenu","registerShortcut","useDispatch","keyboardShortcutsStore","open","setLoaders","commandListRef","category","description","keyCombination","modifier","character","removeAttribute","setAttribute","useShortcut","event","defaultPrevented","preventDefault","bindGlobal","useCallback","closeAndReset","onKeyDown","nativeEvent","isComposing","keyCode","Object","values","some","Boolean","Modal","overlayClassName","onRequestClose","__experimentalHideHeader","contentLabel","inputIcon","List","Empty"],"sources":["@wordpress/commands/src/components/command-menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Command, useCommandState } from 'cmdk';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tTextHighlight,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as keyboardShortcutsStore,\n\tuseShortcut,\n} from '@wordpress/keyboard-shortcuts';\nimport { Icon, search as inputIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\nconst inputLabel = __( 'Search commands and settings' );\n\nfunction CommandMenuLoader( { name, search, hook, setLoader, close } ) {\n\tconst { isLoading, commands = [] } = hook( { search } ) ?? {};\n\tuseEffect( () => {\n\t\tsetLoader( name, isLoading );\n\t}, [ setLoader, name, isLoading ] );\n\n\tif ( ! commands.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nexport function CommandMenuLoaderWrapper( { hook, search, setLoader, close } ) {\n\t// The \"hook\" prop is actually a custom React hook\n\t// so to avoid breaking the rules of hooks\n\t// the CommandMenuLoaderWrapper component need to be\n\t// remounted on each hook prop change\n\t// We use the key state to make sure we do that properly.\n\tconst currentLoader = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoader.current !== hook ) {\n\t\t\tcurrentLoader.current = hook;\n\t\t\tsetKey( ( prevKey ) => prevKey + 1 );\n\t\t}\n\t}, [ hook ] );\n\n\treturn (\n\t\t<CommandMenuLoader\n\t\t\tkey={ key }\n\t\t\thook={ currentLoader.current }\n\t\t\tsearch={ search }\n\t\t\tsetLoader={ setLoader }\n\t\t\tclose={ close }\n\t\t/>\n\t);\n}\n\nexport function CommandMenuGroup( { isContextual, search, setLoader, close } ) {\n\tconst { commands, loaders } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCommands, getCommandLoaders } = select( commandsStore );\n\t\t\treturn {\n\t\t\t\tcommands: getCommands( isContextual ),\n\t\t\t\tloaders: getCommandLoaders( isContextual ),\n\t\t\t};\n\t\t},\n\t\t[ isContextual ]\n\t);\n\n\tif ( ! commands.length && ! loaders.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Command.Group>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t\t{ loaders.map( ( loader ) => (\n\t\t\t\t<CommandMenuLoaderWrapper\n\t\t\t\t\tkey={ loader.name }\n\t\t\t\t\thook={ loader.hook }\n\t\t\t\t\tsearch={ search }\n\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\tclose={ close }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Command.Group>\n\t);\n}\n\nfunction CommandInput( { isOpen, search, setSearch } ) {\n\tconst commandMenuInput = useRef();\n\tconst _value = useCommandState( ( state ) => state.value );\n\tconst selectedItemId = useMemo( () => {\n\t\tconst item = document.querySelector(\n\t\t\t`[cmdk-item=\"\"][data-value=\"${ _value }\"]`\n\t\t);\n\t\treturn item?.getAttribute( 'id' );\n\t}, [ _value ] );\n\tuseEffect( () => {\n\t\t// Focus the command palette input when mounting the modal.\n\t\tif ( isOpen ) {\n\t\t\tcommandMenuInput.current.focus();\n\t\t}\n\t}, [ isOpen ] );\n\treturn (\n\t\t<Command.Input\n\t\t\tref={ commandMenuInput }\n\t\t\tvalue={ search }\n\t\t\tonValueChange={ setSearch }\n\t\t\tplaceholder={ inputLabel }\n\t\t\taria-activedescendant={ selectedItemId }\n\t\t\ticon={ search }\n\t\t/>\n\t);\n}\n\n/**\n * @ignore\n */\nexport function CommandMenu() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst isOpen = useSelect(\n\t\t( select ) => select( commandsStore ).isOpen(),\n\t\t[]\n\t);\n\tconst { open, close } = useDispatch( commandsStore );\n\tconst [ loaders, setLoaders ] = useState( {} );\n\tconst commandListRef = useRef();\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/commands',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Open the command palette.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'k',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\t// Temporary fix for the suggestions Listbox labeling.\n\t// See https://github.com/pacocoursey/cmdk/issues/196\n\tuseEffect( () => {\n\t\tcommandListRef.current?.removeAttribute( 'aria-labelledby' );\n\t\tcommandListRef.current?.setAttribute(\n\t\t\t'aria-label',\n\t\t\t__( 'Command suggestions' )\n\t\t);\n\t}, [ commandListRef.current ] );\n\n\tuseShortcut(\n\t\t'core/commands',\n\t\t/** @type {import('react').KeyboardEventHandler} */\n\t\t( event ) => {\n\t\t\t// Bails to avoid obscuring the effect of the preceding handler(s).\n\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tif ( isOpen ) {\n\t\t\t\tclose();\n\t\t\t} else {\n\t\t\t\topen();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tbindGlobal: true,\n\t\t}\n\t);\n\n\tconst setLoader = useCallback(\n\t\t( name, value ) =>\n\t\t\tsetLoaders( ( current ) => ( {\n\t\t\t\t...current,\n\t\t\t\t[ name ]: value,\n\t\t\t} ) ),\n\t\t[]\n\t);\n\tconst closeAndReset = () => {\n\t\tsetSearch( '' );\n\t\tclose();\n\t};\n\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst isLoading = Object.values( loaders ).some( Boolean );\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"commands-command-menu\"\n\t\t\toverlayClassName=\"commands-command-menu__overlay\"\n\t\t\tonRequestClose={ closeAndReset }\n\t\t\t__experimentalHideHeader\n\t\t\tcontentLabel={ __( 'Command palette' ) }\n\t\t>\n\t\t\t<div className=\"commands-command-menu__container\">\n\t\t\t\t<Command label={ inputLabel } onKeyDown={ onKeyDown }>\n\t\t\t\t\t<div className=\"commands-command-menu__header\">\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetSearch={ setSearch }\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ inputIcon } />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Command.List ref={ commandListRef }>\n\t\t\t\t\t\t{ search && ! isLoading && (\n\t\t\t\t\t\t\t<Command.Empty>\n\t\t\t\t\t\t\t\t{ __( 'No results found.' ) }\n\t\t\t\t\t\t\t</Command.Empty>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\tisContextual\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Command.List>\n\t\t\t\t</Command>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import { Icon, search as inputIcon } from '@wordpress/icons';
|
|
|
19
19
|
* Internal dependencies
|
|
20
20
|
*/
|
|
21
21
|
import { store as commandsStore } from '../store';
|
|
22
|
-
const inputLabel = __('Search
|
|
22
|
+
const inputLabel = __('Search commands and settings');
|
|
23
23
|
function CommandMenuLoader({
|
|
24
24
|
name,
|
|
25
25
|
search,
|
|
@@ -248,12 +248,12 @@ export function CommandMenu() {
|
|
|
248
248
|
onKeyDown: onKeyDown
|
|
249
249
|
}, createElement("div", {
|
|
250
250
|
className: "commands-command-menu__header"
|
|
251
|
-
}, createElement(
|
|
252
|
-
icon: inputIcon
|
|
253
|
-
}), createElement(CommandInput, {
|
|
251
|
+
}, createElement(CommandInput, {
|
|
254
252
|
search: search,
|
|
255
253
|
setSearch: setSearch,
|
|
256
254
|
isOpen: isOpen
|
|
255
|
+
}), createElement(Icon, {
|
|
256
|
+
icon: inputIcon
|
|
257
257
|
})), createElement(Command.List, {
|
|
258
258
|
ref: commandListRef
|
|
259
259
|
}, search && !isLoading && createElement(Command.Empty, null, __('No results found.')), createElement(CommandMenuGroup, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Command","useCommandState","classnames","useSelect","useDispatch","useState","useEffect","useRef","useCallback","useMemo","__","Modal","TextHighlight","__experimentalHStack","HStack","store","keyboardShortcutsStore","useShortcut","Icon","search","inputIcon","commandsStore","inputLabel","CommandMenuLoader","name","hook","setLoader","close","_hook","isLoading","commands","length","createElement","Fragment","map","command","_command$searchLabel","Item","key","value","searchLabel","label","onSelect","callback","id","alignment","className","icon","text","highlight","CommandMenuLoaderWrapper","currentLoader","setKey","current","prevKey","CommandMenuGroup","isContextual","loaders","select","getCommands","getCommandLoaders","Group","_command$searchLabel2","loader","CommandInput","isOpen","setSearch","commandMenuInput","_value","state","selectedItemId","item","document","querySelector","getAttribute","focus","Input","ref","onValueChange","placeholder","CommandMenu","registerShortcut","open","setLoaders","commandListRef","category","description","keyCombination","modifier","character","removeAttribute","setAttribute","event","defaultPrevented","preventDefault","bindGlobal","closeAndReset","onKeyDown","nativeEvent","isComposing","keyCode","Object","values","some","Boolean","overlayClassName","onRequestClose","__experimentalHideHeader","contentLabel","List","Empty"],"sources":["@wordpress/commands/src/components/command-menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Command, useCommandState } from 'cmdk';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tTextHighlight,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as keyboardShortcutsStore,\n\tuseShortcut,\n} from '@wordpress/keyboard-shortcuts';\nimport { Icon, search as inputIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\nconst inputLabel = __( 'Search for commands' );\n\nfunction CommandMenuLoader( { name, search, hook, setLoader, close } ) {\n\tconst { isLoading, commands = [] } = hook( { search } ) ?? {};\n\tuseEffect( () => {\n\t\tsetLoader( name, isLoading );\n\t}, [ setLoader, name, isLoading ] );\n\n\tif ( ! commands.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nexport function CommandMenuLoaderWrapper( { hook, search, setLoader, close } ) {\n\t// The \"hook\" prop is actually a custom React hook\n\t// so to avoid breaking the rules of hooks\n\t// the CommandMenuLoaderWrapper component need to be\n\t// remounted on each hook prop change\n\t// We use the key state to make sure we do that properly.\n\tconst currentLoader = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoader.current !== hook ) {\n\t\t\tcurrentLoader.current = hook;\n\t\t\tsetKey( ( prevKey ) => prevKey + 1 );\n\t\t}\n\t}, [ hook ] );\n\n\treturn (\n\t\t<CommandMenuLoader\n\t\t\tkey={ key }\n\t\t\thook={ currentLoader.current }\n\t\t\tsearch={ search }\n\t\t\tsetLoader={ setLoader }\n\t\t\tclose={ close }\n\t\t/>\n\t);\n}\n\nexport function CommandMenuGroup( { isContextual, search, setLoader, close } ) {\n\tconst { commands, loaders } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCommands, getCommandLoaders } = select( commandsStore );\n\t\t\treturn {\n\t\t\t\tcommands: getCommands( isContextual ),\n\t\t\t\tloaders: getCommandLoaders( isContextual ),\n\t\t\t};\n\t\t},\n\t\t[ isContextual ]\n\t);\n\n\tif ( ! commands.length && ! loaders.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Command.Group>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t\t{ loaders.map( ( loader ) => (\n\t\t\t\t<CommandMenuLoaderWrapper\n\t\t\t\t\tkey={ loader.name }\n\t\t\t\t\thook={ loader.hook }\n\t\t\t\t\tsearch={ search }\n\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\tclose={ close }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Command.Group>\n\t);\n}\n\nfunction CommandInput( { isOpen, search, setSearch } ) {\n\tconst commandMenuInput = useRef();\n\tconst _value = useCommandState( ( state ) => state.value );\n\tconst selectedItemId = useMemo( () => {\n\t\tconst item = document.querySelector(\n\t\t\t`[cmdk-item=\"\"][data-value=\"${ _value }\"]`\n\t\t);\n\t\treturn item?.getAttribute( 'id' );\n\t}, [ _value ] );\n\tuseEffect( () => {\n\t\t// Focus the command palette input when mounting the modal.\n\t\tif ( isOpen ) {\n\t\t\tcommandMenuInput.current.focus();\n\t\t}\n\t}, [ isOpen ] );\n\treturn (\n\t\t<Command.Input\n\t\t\tref={ commandMenuInput }\n\t\t\tvalue={ search }\n\t\t\tonValueChange={ setSearch }\n\t\t\tplaceholder={ inputLabel }\n\t\t\taria-activedescendant={ selectedItemId }\n\t\t\ticon={ search }\n\t\t/>\n\t);\n}\n\n/**\n * @ignore\n */\nexport function CommandMenu() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst isOpen = useSelect(\n\t\t( select ) => select( commandsStore ).isOpen(),\n\t\t[]\n\t);\n\tconst { open, close } = useDispatch( commandsStore );\n\tconst [ loaders, setLoaders ] = useState( {} );\n\tconst commandListRef = useRef();\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/commands',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Open the command palette.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'k',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\t// Temporary fix for the suggestions Listbox labeling.\n\t// See https://github.com/pacocoursey/cmdk/issues/196\n\tuseEffect( () => {\n\t\tcommandListRef.current?.removeAttribute( 'aria-labelledby' );\n\t\tcommandListRef.current?.setAttribute(\n\t\t\t'aria-label',\n\t\t\t__( 'Command suggestions' )\n\t\t);\n\t}, [ commandListRef.current ] );\n\n\tuseShortcut(\n\t\t'core/commands',\n\t\t/** @type {import('react').KeyboardEventHandler} */\n\t\t( event ) => {\n\t\t\t// Bails to avoid obscuring the effect of the preceding handler(s).\n\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tif ( isOpen ) {\n\t\t\t\tclose();\n\t\t\t} else {\n\t\t\t\topen();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tbindGlobal: true,\n\t\t}\n\t);\n\n\tconst setLoader = useCallback(\n\t\t( name, value ) =>\n\t\t\tsetLoaders( ( current ) => ( {\n\t\t\t\t...current,\n\t\t\t\t[ name ]: value,\n\t\t\t} ) ),\n\t\t[]\n\t);\n\tconst closeAndReset = () => {\n\t\tsetSearch( '' );\n\t\tclose();\n\t};\n\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst isLoading = Object.values( loaders ).some( Boolean );\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"commands-command-menu\"\n\t\t\toverlayClassName=\"commands-command-menu__overlay\"\n\t\t\tonRequestClose={ closeAndReset }\n\t\t\t__experimentalHideHeader\n\t\t\tcontentLabel={ __( 'Command palette' ) }\n\t\t>\n\t\t\t<div className=\"commands-command-menu__container\">\n\t\t\t\t<Command label={ inputLabel } onKeyDown={ onKeyDown }>\n\t\t\t\t\t<div className=\"commands-command-menu__header\">\n\t\t\t\t\t\t<Icon icon={ inputIcon } />\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetSearch={ setSearch }\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Command.List ref={ commandListRef }>\n\t\t\t\t\t\t{ search && ! isLoading && (\n\t\t\t\t\t\t\t<Command.Empty>\n\t\t\t\t\t\t\t\t{ __( 'No results found.' ) }\n\t\t\t\t\t\t\t</Command.Empty>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\tisContextual\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Command.List>\n\t\t\t\t</Command>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Command","useCommandState","classnames","useSelect","useDispatch","useState","useEffect","useRef","useCallback","useMemo","__","Modal","TextHighlight","__experimentalHStack","HStack","store","keyboardShortcutsStore","useShortcut","Icon","search","inputIcon","commandsStore","inputLabel","CommandMenuLoader","name","hook","setLoader","close","_hook","isLoading","commands","length","createElement","Fragment","map","command","_command$searchLabel","Item","key","value","searchLabel","label","onSelect","callback","id","alignment","className","icon","text","highlight","CommandMenuLoaderWrapper","currentLoader","setKey","current","prevKey","CommandMenuGroup","isContextual","loaders","select","getCommands","getCommandLoaders","Group","_command$searchLabel2","loader","CommandInput","isOpen","setSearch","commandMenuInput","_value","state","selectedItemId","item","document","querySelector","getAttribute","focus","Input","ref","onValueChange","placeholder","CommandMenu","registerShortcut","open","setLoaders","commandListRef","category","description","keyCombination","modifier","character","removeAttribute","setAttribute","event","defaultPrevented","preventDefault","bindGlobal","closeAndReset","onKeyDown","nativeEvent","isComposing","keyCode","Object","values","some","Boolean","overlayClassName","onRequestClose","__experimentalHideHeader","contentLabel","List","Empty"],"sources":["@wordpress/commands/src/components/command-menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Command, useCommandState } from 'cmdk';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tTextHighlight,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as keyboardShortcutsStore,\n\tuseShortcut,\n} from '@wordpress/keyboard-shortcuts';\nimport { Icon, search as inputIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\nconst inputLabel = __( 'Search commands and settings' );\n\nfunction CommandMenuLoader( { name, search, hook, setLoader, close } ) {\n\tconst { isLoading, commands = [] } = hook( { search } ) ?? {};\n\tuseEffect( () => {\n\t\tsetLoader( name, isLoading );\n\t}, [ setLoader, name, isLoading ] );\n\n\tif ( ! commands.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nexport function CommandMenuLoaderWrapper( { hook, search, setLoader, close } ) {\n\t// The \"hook\" prop is actually a custom React hook\n\t// so to avoid breaking the rules of hooks\n\t// the CommandMenuLoaderWrapper component need to be\n\t// remounted on each hook prop change\n\t// We use the key state to make sure we do that properly.\n\tconst currentLoader = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoader.current !== hook ) {\n\t\t\tcurrentLoader.current = hook;\n\t\t\tsetKey( ( prevKey ) => prevKey + 1 );\n\t\t}\n\t}, [ hook ] );\n\n\treturn (\n\t\t<CommandMenuLoader\n\t\t\tkey={ key }\n\t\t\thook={ currentLoader.current }\n\t\t\tsearch={ search }\n\t\t\tsetLoader={ setLoader }\n\t\t\tclose={ close }\n\t\t/>\n\t);\n}\n\nexport function CommandMenuGroup( { isContextual, search, setLoader, close } ) {\n\tconst { commands, loaders } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCommands, getCommandLoaders } = select( commandsStore );\n\t\t\treturn {\n\t\t\t\tcommands: getCommands( isContextual ),\n\t\t\t\tloaders: getCommandLoaders( isContextual ),\n\t\t\t};\n\t\t},\n\t\t[ isContextual ]\n\t);\n\n\tif ( ! commands.length && ! loaders.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Command.Group>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ classnames( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t\t{ loaders.map( ( loader ) => (\n\t\t\t\t<CommandMenuLoaderWrapper\n\t\t\t\t\tkey={ loader.name }\n\t\t\t\t\thook={ loader.hook }\n\t\t\t\t\tsearch={ search }\n\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\tclose={ close }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Command.Group>\n\t);\n}\n\nfunction CommandInput( { isOpen, search, setSearch } ) {\n\tconst commandMenuInput = useRef();\n\tconst _value = useCommandState( ( state ) => state.value );\n\tconst selectedItemId = useMemo( () => {\n\t\tconst item = document.querySelector(\n\t\t\t`[cmdk-item=\"\"][data-value=\"${ _value }\"]`\n\t\t);\n\t\treturn item?.getAttribute( 'id' );\n\t}, [ _value ] );\n\tuseEffect( () => {\n\t\t// Focus the command palette input when mounting the modal.\n\t\tif ( isOpen ) {\n\t\t\tcommandMenuInput.current.focus();\n\t\t}\n\t}, [ isOpen ] );\n\treturn (\n\t\t<Command.Input\n\t\t\tref={ commandMenuInput }\n\t\t\tvalue={ search }\n\t\t\tonValueChange={ setSearch }\n\t\t\tplaceholder={ inputLabel }\n\t\t\taria-activedescendant={ selectedItemId }\n\t\t\ticon={ search }\n\t\t/>\n\t);\n}\n\n/**\n * @ignore\n */\nexport function CommandMenu() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst isOpen = useSelect(\n\t\t( select ) => select( commandsStore ).isOpen(),\n\t\t[]\n\t);\n\tconst { open, close } = useDispatch( commandsStore );\n\tconst [ loaders, setLoaders ] = useState( {} );\n\tconst commandListRef = useRef();\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/commands',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Open the command palette.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'k',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\t// Temporary fix for the suggestions Listbox labeling.\n\t// See https://github.com/pacocoursey/cmdk/issues/196\n\tuseEffect( () => {\n\t\tcommandListRef.current?.removeAttribute( 'aria-labelledby' );\n\t\tcommandListRef.current?.setAttribute(\n\t\t\t'aria-label',\n\t\t\t__( 'Command suggestions' )\n\t\t);\n\t}, [ commandListRef.current ] );\n\n\tuseShortcut(\n\t\t'core/commands',\n\t\t/** @type {import('react').KeyboardEventHandler} */\n\t\t( event ) => {\n\t\t\t// Bails to avoid obscuring the effect of the preceding handler(s).\n\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tif ( isOpen ) {\n\t\t\t\tclose();\n\t\t\t} else {\n\t\t\t\topen();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tbindGlobal: true,\n\t\t}\n\t);\n\n\tconst setLoader = useCallback(\n\t\t( name, value ) =>\n\t\t\tsetLoaders( ( current ) => ( {\n\t\t\t\t...current,\n\t\t\t\t[ name ]: value,\n\t\t\t} ) ),\n\t\t[]\n\t);\n\tconst closeAndReset = () => {\n\t\tsetSearch( '' );\n\t\tclose();\n\t};\n\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst isLoading = Object.values( loaders ).some( Boolean );\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"commands-command-menu\"\n\t\t\toverlayClassName=\"commands-command-menu__overlay\"\n\t\t\tonRequestClose={ closeAndReset }\n\t\t\t__experimentalHideHeader\n\t\t\tcontentLabel={ __( 'Command palette' ) }\n\t\t>\n\t\t\t<div className=\"commands-command-menu__container\">\n\t\t\t\t<Command label={ inputLabel } onKeyDown={ onKeyDown }>\n\t\t\t\t\t<div className=\"commands-command-menu__header\">\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetSearch={ setSearch }\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ inputIcon } />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Command.List ref={ commandListRef }>\n\t\t\t\t\t\t{ search && ! isLoading && (\n\t\t\t\t\t\t\t<Command.Empty>\n\t\t\t\t\t\t\t\t{ __( 'No results found.' ) }\n\t\t\t\t\t\t\t</Command.Empty>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\tisContextual\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Command.List>\n\t\t\t\t</Command>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -108,13 +108,13 @@
|
|
|
108
108
|
border-radius: 4px;
|
|
109
109
|
width: calc(100% - 32px);
|
|
110
110
|
margin: auto;
|
|
111
|
-
max-width:
|
|
111
|
+
max-width: 400px;
|
|
112
112
|
position: relative;
|
|
113
|
-
top: calc(
|
|
113
|
+
top: calc(5% + 60px);
|
|
114
114
|
}
|
|
115
115
|
@media (min-width: 600px) {
|
|
116
116
|
.commands-command-menu {
|
|
117
|
-
top:
|
|
117
|
+
top: calc(10% + 60px);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
.commands-command-menu .components-modal__content {
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
.commands-command-menu__header {
|
|
131
131
|
display: flex;
|
|
132
132
|
align-items: center;
|
|
133
|
-
padding
|
|
133
|
+
padding: 0 16px;
|
|
134
134
|
}
|
|
135
135
|
.commands-command-menu__header .components-button {
|
|
136
136
|
height: 56px;
|
|
@@ -151,11 +151,11 @@
|
|
|
151
151
|
.commands-command-menu__container [cmdk-input] {
|
|
152
152
|
border: none;
|
|
153
153
|
width: 100%;
|
|
154
|
-
padding: 16px
|
|
154
|
+
padding: 16px 4px;
|
|
155
155
|
outline: none;
|
|
156
156
|
color: #1e1e1e;
|
|
157
157
|
margin: 0;
|
|
158
|
-
font-size:
|
|
158
|
+
font-size: 15px;
|
|
159
159
|
line-height: 28px;
|
|
160
160
|
border-radius: 0;
|
|
161
161
|
}
|
|
@@ -173,7 +173,6 @@
|
|
|
173
173
|
align-items: center;
|
|
174
174
|
color: #1e1e1e;
|
|
175
175
|
font-size: 13px;
|
|
176
|
-
min-height: 40px;
|
|
177
176
|
}
|
|
178
177
|
.commands-command-menu__container [cmdk-item][aria-selected=true], .commands-command-menu__container [cmdk-item]:active {
|
|
179
178
|
background: var(--wp-admin-theme-color);
|
|
@@ -190,7 +189,8 @@
|
|
|
190
189
|
fill: #1e1e1e;
|
|
191
190
|
}
|
|
192
191
|
.commands-command-menu__container [cmdk-item] > div {
|
|
193
|
-
|
|
192
|
+
min-height: 40px;
|
|
193
|
+
padding: 4px;
|
|
194
194
|
padding-right: 40px;
|
|
195
195
|
}
|
|
196
196
|
.commands-command-menu__container [cmdk-item] > .has-icon {
|
|
@@ -200,8 +200,11 @@
|
|
|
200
200
|
max-height: 368px;
|
|
201
201
|
overflow: auto;
|
|
202
202
|
}
|
|
203
|
+
.commands-command-menu__container [cmdk-root] > [cmdk-list] [cmdk-list-sizer] > [cmdk-group]:last-child [cmdk-group-items]:not(:empty) {
|
|
204
|
+
padding-bottom: 8px;
|
|
205
|
+
}
|
|
203
206
|
.commands-command-menu__container [cmdk-root] > [cmdk-list] [cmdk-list-sizer] > [cmdk-group] > [cmdk-group-items]:not(:empty) {
|
|
204
|
-
padding: 0 8px
|
|
207
|
+
padding: 0 8px;
|
|
205
208
|
}
|
|
206
209
|
.commands-command-menu__container [cmdk-empty] {
|
|
207
210
|
display: flex;
|
package/build-style/style.css
CHANGED
|
@@ -108,13 +108,13 @@
|
|
|
108
108
|
border-radius: 4px;
|
|
109
109
|
width: calc(100% - 32px);
|
|
110
110
|
margin: auto;
|
|
111
|
-
max-width:
|
|
111
|
+
max-width: 400px;
|
|
112
112
|
position: relative;
|
|
113
|
-
top: calc(
|
|
113
|
+
top: calc(5% + 60px);
|
|
114
114
|
}
|
|
115
115
|
@media (min-width: 600px) {
|
|
116
116
|
.commands-command-menu {
|
|
117
|
-
top:
|
|
117
|
+
top: calc(10% + 60px);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
.commands-command-menu .components-modal__content {
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
.commands-command-menu__header {
|
|
131
131
|
display: flex;
|
|
132
132
|
align-items: center;
|
|
133
|
-
padding
|
|
133
|
+
padding: 0 16px;
|
|
134
134
|
}
|
|
135
135
|
.commands-command-menu__header .components-button {
|
|
136
136
|
height: 56px;
|
|
@@ -151,11 +151,11 @@
|
|
|
151
151
|
.commands-command-menu__container [cmdk-input] {
|
|
152
152
|
border: none;
|
|
153
153
|
width: 100%;
|
|
154
|
-
padding: 16px
|
|
154
|
+
padding: 16px 4px;
|
|
155
155
|
outline: none;
|
|
156
156
|
color: #1e1e1e;
|
|
157
157
|
margin: 0;
|
|
158
|
-
font-size:
|
|
158
|
+
font-size: 15px;
|
|
159
159
|
line-height: 28px;
|
|
160
160
|
border-radius: 0;
|
|
161
161
|
}
|
|
@@ -173,7 +173,6 @@
|
|
|
173
173
|
align-items: center;
|
|
174
174
|
color: #1e1e1e;
|
|
175
175
|
font-size: 13px;
|
|
176
|
-
min-height: 40px;
|
|
177
176
|
}
|
|
178
177
|
.commands-command-menu__container [cmdk-item][aria-selected=true], .commands-command-menu__container [cmdk-item]:active {
|
|
179
178
|
background: var(--wp-admin-theme-color);
|
|
@@ -190,7 +189,8 @@
|
|
|
190
189
|
fill: #1e1e1e;
|
|
191
190
|
}
|
|
192
191
|
.commands-command-menu__container [cmdk-item] > div {
|
|
193
|
-
|
|
192
|
+
min-height: 40px;
|
|
193
|
+
padding: 4px;
|
|
194
194
|
padding-left: 40px;
|
|
195
195
|
}
|
|
196
196
|
.commands-command-menu__container [cmdk-item] > .has-icon {
|
|
@@ -200,8 +200,11 @@
|
|
|
200
200
|
max-height: 368px;
|
|
201
201
|
overflow: auto;
|
|
202
202
|
}
|
|
203
|
+
.commands-command-menu__container [cmdk-root] > [cmdk-list] [cmdk-list-sizer] > [cmdk-group]:last-child [cmdk-group-items]:not(:empty) {
|
|
204
|
+
padding-bottom: 8px;
|
|
205
|
+
}
|
|
203
206
|
.commands-command-menu__container [cmdk-root] > [cmdk-list] [cmdk-list-sizer] > [cmdk-group] > [cmdk-group-items]:not(:empty) {
|
|
204
|
-
padding: 0 8px
|
|
207
|
+
padding: 0 8px;
|
|
205
208
|
}
|
|
206
209
|
.commands-command-menu__container [cmdk-empty] {
|
|
207
210
|
display: flex;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/commands",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Handles the commands menu.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"react-native": "src/index",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@babel/runtime": "^7.16.0",
|
|
30
|
-
"@wordpress/components": "^27.
|
|
31
|
-
"@wordpress/data": "^9.
|
|
32
|
-
"@wordpress/element": "^5.
|
|
33
|
-
"@wordpress/i18n": "^4.
|
|
34
|
-
"@wordpress/icons": "^9.
|
|
35
|
-
"@wordpress/keyboard-shortcuts": "^4.
|
|
36
|
-
"@wordpress/private-apis": "^0.
|
|
30
|
+
"@wordpress/components": "^27.3.0",
|
|
31
|
+
"@wordpress/data": "^9.25.0",
|
|
32
|
+
"@wordpress/element": "^5.32.0",
|
|
33
|
+
"@wordpress/i18n": "^4.55.0",
|
|
34
|
+
"@wordpress/icons": "^9.46.0",
|
|
35
|
+
"@wordpress/keyboard-shortcuts": "^4.32.0",
|
|
36
|
+
"@wordpress/private-apis": "^0.37.0",
|
|
37
37
|
"classnames": "^2.3.1",
|
|
38
38
|
"cmdk": "^0.2.0",
|
|
39
39
|
"rememo": "^4.0.2"
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "ac2b13783c28f959770cf029a797a712f59e1958"
|
|
49
49
|
}
|
|
@@ -32,7 +32,7 @@ import { Icon, search as inputIcon } from '@wordpress/icons';
|
|
|
32
32
|
*/
|
|
33
33
|
import { store as commandsStore } from '../store';
|
|
34
34
|
|
|
35
|
-
const inputLabel = __( 'Search
|
|
35
|
+
const inputLabel = __( 'Search commands and settings' );
|
|
36
36
|
|
|
37
37
|
function CommandMenuLoader( { name, search, hook, setLoader, close } ) {
|
|
38
38
|
const { isLoading, commands = [] } = hook( { search } ) ?? {};
|
|
@@ -278,12 +278,12 @@ export function CommandMenu() {
|
|
|
278
278
|
<div className="commands-command-menu__container">
|
|
279
279
|
<Command label={ inputLabel } onKeyDown={ onKeyDown }>
|
|
280
280
|
<div className="commands-command-menu__header">
|
|
281
|
-
<Icon icon={ inputIcon } />
|
|
282
281
|
<CommandInput
|
|
283
282
|
search={ search }
|
|
284
283
|
setSearch={ setSearch }
|
|
285
284
|
isOpen={ isOpen }
|
|
286
285
|
/>
|
|
286
|
+
<Icon icon={ inputIcon } />
|
|
287
287
|
</div>
|
|
288
288
|
<Command.List ref={ commandListRef }>
|
|
289
289
|
{ search && ! isLoading && (
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
border-radius: $grid-unit-05;
|
|
4
4
|
width: calc(100% - #{$grid-unit-40});
|
|
5
5
|
margin: auto;
|
|
6
|
-
max-width:
|
|
6
|
+
max-width: 400px;
|
|
7
7
|
position: relative;
|
|
8
|
-
top: calc(
|
|
8
|
+
top: calc(5% + #{$header-height});
|
|
9
9
|
|
|
10
10
|
@include break-small() {
|
|
11
|
-
top:
|
|
11
|
+
top: calc(10% + #{$header-height});
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
.components-modal__content {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
.commands-command-menu__header {
|
|
26
26
|
display: flex;
|
|
27
27
|
align-items: center;
|
|
28
|
-
padding
|
|
28
|
+
padding: 0 $grid-unit-20;
|
|
29
29
|
|
|
30
30
|
.components-button {
|
|
31
31
|
height: $grid-unit-70;
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
[cmdk-input] {
|
|
50
50
|
border: none;
|
|
51
51
|
width: 100%;
|
|
52
|
-
padding: $grid-unit-20 $grid-unit-
|
|
52
|
+
padding: $grid-unit-20 $grid-unit-05;
|
|
53
53
|
outline: none;
|
|
54
54
|
color: $gray-900;
|
|
55
55
|
margin: 0;
|
|
56
|
-
font-size:
|
|
56
|
+
font-size: 15px;
|
|
57
57
|
line-height: 28px;
|
|
58
58
|
border-radius: 0;
|
|
59
59
|
|
|
@@ -74,7 +74,6 @@
|
|
|
74
74
|
align-items: center;
|
|
75
75
|
color: $gray-900;
|
|
76
76
|
font-size: $default-font-size;
|
|
77
|
-
min-height: $button-size-next-default-40px;
|
|
78
77
|
|
|
79
78
|
&[aria-selected="true"],
|
|
80
79
|
&:active {
|
|
@@ -96,7 +95,8 @@
|
|
|
96
95
|
}
|
|
97
96
|
|
|
98
97
|
> div {
|
|
99
|
-
|
|
98
|
+
min-height: $button-size-next-default-40px;
|
|
99
|
+
padding: $grid-unit-05;
|
|
100
100
|
padding-left: $grid-unit-50; // Account for commands without icons.
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -109,8 +109,13 @@
|
|
|
109
109
|
max-height: 368px; // Specific to not have commands overflow oddly.
|
|
110
110
|
overflow: auto;
|
|
111
111
|
|
|
112
|
+
// Ensures there is always padding bottom on the last group, when there are commands.
|
|
113
|
+
& [cmdk-list-sizer] > [cmdk-group]:last-child [cmdk-group-items]:not(:empty) {
|
|
114
|
+
padding-bottom: $grid-unit-10;
|
|
115
|
+
}
|
|
116
|
+
|
|
112
117
|
& [cmdk-list-sizer] > [cmdk-group] > [cmdk-group-items]:not(:empty) {
|
|
113
|
-
padding: 0 $grid-unit
|
|
118
|
+
padding: 0 $grid-unit-10;
|
|
114
119
|
}
|
|
115
120
|
}
|
|
116
121
|
|