@wordpress/commands 1.29.0 → 1.29.1-next.f34ab90e9.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/README.md +1 -0
- package/build/components/command-menu.js +2 -0
- package/build/components/command-menu.js.map +1 -1
- package/build/hooks/use-command.js +2 -1
- package/build/hooks/use-command.js.map +1 -1
- package/build/store/actions.js +1 -0
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +2 -1
- package/build/store/reducer.js.map +1 -1
- package/build-module/components/command-menu.js +2 -0
- package/build-module/components/command-menu.js.map +1 -1
- package/build-module/hooks/use-command.js +2 -1
- package/build-module/hooks/use-command.js.map +1 -1
- package/build-module/store/actions.js +1 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +2 -1
- package/build-module/store/reducer.js.map +1 -1
- package/package.json +9 -9
- package/src/components/command-menu.js +2 -0
- package/src/hooks/use-command.js +2 -0
- package/src/store/actions.js +1 -0
- package/src/store/reducer.js +1 -0
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ There are two ways to register commands: static or dynamic. Both methods receive
|
|
|
11
11
|
- `icon`: An SVG icon
|
|
12
12
|
- `callback`: A callback function that is called when the command is selected
|
|
13
13
|
- `context`: (Optional) The context of the command
|
|
14
|
+
- `keywords`: (Optional) An array of keywords for search matching
|
|
14
15
|
|
|
15
16
|
### Static commands
|
|
16
17
|
|
|
@@ -55,6 +55,7 @@ function CommandMenuLoader({
|
|
|
55
55
|
var _command$searchLabel;
|
|
56
56
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_cmdk.Command.Item, {
|
|
57
57
|
value: (_command$searchLabel = command.searchLabel) !== null && _command$searchLabel !== void 0 ? _command$searchLabel : command.label,
|
|
58
|
+
keywords: command.keywords,
|
|
58
59
|
onSelect: () => command.callback({
|
|
59
60
|
close
|
|
60
61
|
}),
|
|
@@ -130,6 +131,7 @@ function CommandMenuGroup({
|
|
|
130
131
|
var _command$searchLabel2;
|
|
131
132
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_cmdk.Command.Item, {
|
|
132
133
|
value: (_command$searchLabel2 = command.searchLabel) !== null && _command$searchLabel2 !== void 0 ? _command$searchLabel2 : command.label,
|
|
134
|
+
keywords: command.keywords,
|
|
133
135
|
onSelect: () => command.callback({
|
|
134
136
|
close
|
|
135
137
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cmdk","require","_clsx","_interopRequireDefault","_data","_element","_i18n","_components","_keyboardShortcuts","_icons","_store","_jsxRuntime","inputLabel","__","CommandMenuLoader","name","search","hook","setLoader","close","_hook","isLoading","commands","useEffect","length","jsx","Fragment","children","map","command","_command$searchLabel","Command","Item","value","searchLabel","label","onSelect","callback","id","jsxs","__experimentalHStack","alignment","className","clsx","icon","Icon","TextHighlight","text","highlight","CommandMenuLoaderWrapper","currentLoaderRef","useRef","key","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","category","description","keyCombination","modifier","character","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 clsx from 'clsx';\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={ clsx( '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 currentLoaderRef = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoaderRef.current !== hook ) {\n\t\t\tcurrentLoaderRef.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={ currentLoaderRef.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={ clsx( '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\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\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 ) {\n\t\t\t\treturn;\n\t\t\t}\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 label={ __( 'Command suggestions' ) }>\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":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AAKA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAOA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAKA,IAAAO,kBAAA,GAAAP,OAAA;AAIA,IAAAQ,MAAA,GAAAR,OAAA;AAKA,IAAAS,MAAA,GAAAT,OAAA;AAAkD,IAAAU,WAAA,GAAAV,OAAA;AAhClD;AACA;AACA;;AAIA;AACA;AACA;;AAqBA;AACA;AACA;;AAGA,MAAMW,UAAU,GAAG,IAAAC,QAAE,EAAE,8BAA+B,CAAC;AAEvD,SAASC,iBAAiBA,CAAE;EAAEC,IAAI;EAAEC,MAAM;EAAEC,IAAI;EAAEC,SAAS;EAAEC;AAAM,CAAC,EAAG;EAAA,IAAAC,KAAA;EACtE,MAAM;IAAEC,SAAS;IAAEC,QAAQ,GAAG;EAAG,CAAC,IAAAF,KAAA,GAAGH,IAAI,CAAE;IAAED;EAAO,CAAE,CAAC,cAAAI,KAAA,cAAAA,KAAA,GAAI,CAAC,CAAC;EAC7D,IAAAG,kBAAS,EAAE,MAAM;IAChBL,SAAS,CAAEH,IAAI,EAAEM,SAAU,CAAC;EAC7B,CAAC,EAAE,CAAEH,SAAS,EAAEH,IAAI,EAAEM,SAAS,CAAG,CAAC;EAEnC,IAAK,CAAEC,QAAQ,CAACE,MAAM,EAAG;IACxB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAb,WAAA,CAAAc,GAAA,EAAAd,WAAA,CAAAe,QAAA;IAAAC,QAAA,EACGL,QAAQ,CAACM,GAAG,CAAIC,OAAO;MAAA,IAAAC,oBAAA;MAAA,oBACxB,IAAAnB,WAAA,CAAAc,GAAA,EAACzB,KAAA,CAAA+B,OAAO,CAACC,IAAI;QAEZC,KAAK,GAAAH,oBAAA,GAAGD,OAAO,CAACK,WAAW,cAAAJ,oBAAA,cAAAA,oBAAA,GAAID,OAAO,CAACM,KAAO;QAC9CC,QAAQ,EAAGA,CAAA,KAAMP,OAAO,CAACQ,QAAQ,CAAE;UAAElB;QAAM,CAAE,CAAG;QAChDmB,EAAE,EAAGT,OAAO,CAACd,IAAM;QAAAY,QAAA,eAEnB,IAAAhB,WAAA,CAAA4B,IAAA,EAAChC,WAAA,CAAAiC,oBAAM;UACNC,SAAS,EAAC,MAAM;UAChBC,SAAS,EAAG,IAAAC,aAAI,EAAE,6BAA6B,EAAE;YAChD,UAAU,EAAEd,OAAO,CAACe;UACrB,CAAE,CAAG;UAAAjB,QAAA,GAEHE,OAAO,CAACe,IAAI,iBAAI,IAAAjC,WAAA,CAAAc,GAAA,EAAChB,MAAA,CAAAoC,IAAI;YAACD,IAAI,EAAGf,OAAO,CAACe;UAAM,CAAE,CAAC,eAChD,IAAAjC,WAAA,CAAAc,GAAA;YAAAE,QAAA,eACC,IAAAhB,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAuC,aAAa;cACbC,IAAI,EAAGlB,OAAO,CAACM,KAAO;cACtBa,SAAS,EAAGhC;YAAQ,CACpB;UAAC,CACG,CAAC;QAAA,CACA;MAAC,GAlBHa,OAAO,CAACd,IAmBD,CAAC;IAAA,CACd;EAAC,CACF,CAAC;AAEL;AAEO,SAASkC,wBAAwBA,CAAE;EAAEhC,IAAI;EAAED,MAAM;EAAEE,SAAS;EAAEC;AAAM,CAAC,EAAG;EAC9E;EACA;EACA;EACA;EACA;EACA,MAAM+B,gBAAgB,GAAG,IAAAC,eAAM,EAAElC,IAAK,CAAC;EACvC,MAAM,CAAEmC,GAAG,EAAEC,MAAM,CAAE,GAAG,IAAAC,iBAAQ,EAAE,CAAE,CAAC;EACrC,IAAA/B,kBAAS,EAAE,MAAM;IAChB,IAAK2B,gBAAgB,CAACK,OAAO,KAAKtC,IAAI,EAAG;MACxCiC,gBAAgB,CAACK,OAAO,GAAGtC,IAAI;MAC/BoC,MAAM,CAAIG,OAAO,IAAMA,OAAO,GAAG,CAAE,CAAC;IACrC;EACD,CAAC,EAAE,CAAEvC,IAAI,CAAG,CAAC;EAEb,oBACC,IAAAN,WAAA,CAAAc,GAAA,EAACX,iBAAiB;IAEjBG,IAAI,EAAGiC,gBAAgB,CAACK,OAAS;IACjCvC,MAAM,EAAGA,MAAQ;IACjBE,SAAS,EAAGA,SAAW;IACvBC,KAAK,EAAGA;EAAO,GAJTiC,GAKN,CAAC;AAEJ;AAEO,SAASK,gBAAgBA,CAAE;EAAEC,YAAY;EAAE1C,MAAM;EAAEE,SAAS;EAAEC;AAAM,CAAC,EAAG;EAC9E,MAAM;IAAEG,QAAQ;IAAEqC;EAAQ,CAAC,GAAG,IAAAC,eAAS,EACpCC,MAAM,IAAM;IACb,MAAM;MAAEC,WAAW;MAAEC;IAAkB,CAAC,GAAGF,MAAM,CAAEG,YAAc,CAAC;IAClE,OAAO;MACN1C,QAAQ,EAAEwC,WAAW,CAAEJ,YAAa,CAAC;MACrCC,OAAO,EAAEI,iBAAiB,CAAEL,YAAa;IAC1C,CAAC;EACF,CAAC,EACD,CAAEA,YAAY,CACf,CAAC;EAED,IAAK,CAAEpC,QAAQ,CAACE,MAAM,IAAI,CAAEmC,OAAO,CAACnC,MAAM,EAAG;IAC5C,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAb,WAAA,CAAA4B,IAAA,EAACvC,KAAA,CAAA+B,OAAO,CAACkC,KAAK;IAAAtC,QAAA,GACXL,QAAQ,CAACM,GAAG,CAAIC,OAAO;MAAA,IAAAqC,qBAAA;MAAA,oBACxB,IAAAvD,WAAA,CAAAc,GAAA,EAACzB,KAAA,CAAA+B,OAAO,CAACC,IAAI;QAEZC,KAAK,GAAAiC,qBAAA,GAAGrC,OAAO,CAACK,WAAW,cAAAgC,qBAAA,cAAAA,qBAAA,GAAIrC,OAAO,CAACM,KAAO;QAC9CC,QAAQ,EAAGA,CAAA,KAAMP,OAAO,CAACQ,QAAQ,CAAE;UAAElB;QAAM,CAAE,CAAG;QAChDmB,EAAE,EAAGT,OAAO,CAACd,IAAM;QAAAY,QAAA,eAEnB,IAAAhB,WAAA,CAAA4B,IAAA,EAAChC,WAAA,CAAAiC,oBAAM;UACNC,SAAS,EAAC,MAAM;UAChBC,SAAS,EAAG,IAAAC,aAAI,EAAE,6BAA6B,EAAE;YAChD,UAAU,EAAEd,OAAO,CAACe;UACrB,CAAE,CAAG;UAAAjB,QAAA,GAEHE,OAAO,CAACe,IAAI,iBAAI,IAAAjC,WAAA,CAAAc,GAAA,EAAChB,MAAA,CAAAoC,IAAI;YAACD,IAAI,EAAGf,OAAO,CAACe;UAAM,CAAE,CAAC,eAChD,IAAAjC,WAAA,CAAAc,GAAA;YAAAE,QAAA,eACC,IAAAhB,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAuC,aAAa;cACbC,IAAI,EAAGlB,OAAO,CAACM,KAAO;cACtBa,SAAS,EAAGhC;YAAQ,CACpB;UAAC,CACG,CAAC;QAAA,CACA;MAAC,GAlBHa,OAAO,CAACd,IAmBD,CAAC;IAAA,CACd,CAAC,EACD4C,OAAO,CAAC/B,GAAG,CAAIuC,MAAM,iBACtB,IAAAxD,WAAA,CAAAc,GAAA,EAACwB,wBAAwB;MAExBhC,IAAI,EAAGkD,MAAM,CAAClD,IAAM;MACpBD,MAAM,EAAGA,MAAQ;MACjBE,SAAS,EAAGA,SAAW;MACvBC,KAAK,EAAGA;IAAO,GAJTgD,MAAM,CAACpD,IAKb,CACA,CAAC;EAAA,CACW,CAAC;AAElB;AAEA,SAASqD,YAAYA,CAAE;EAAEC,MAAM;EAAErD,MAAM;EAAEsD;AAAU,CAAC,EAAG;EACtD,MAAMC,gBAAgB,GAAG,IAAApB,eAAM,EAAC,CAAC;EACjC,MAAMqB,MAAM,GAAG,IAAAC,qBAAe,EAAIC,KAAK,IAAMA,KAAK,CAACzC,KAAM,CAAC;EAC1D,MAAM0C,cAAc,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACrC,MAAMC,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAClC,8BAA+BP,MAAM,IACtC,CAAC;IACD,OAAOK,IAAI,EAAEG,YAAY,CAAE,IAAK,CAAC;EAClC,CAAC,EAAE,CAAER,MAAM,CAAG,CAAC;EACf,IAAAjD,kBAAS,EAAE,MAAM;IAChB;IACA,IAAK8C,MAAM,EAAG;MACbE,gBAAgB,CAAChB,OAAO,CAAC0B,KAAK,CAAC,CAAC;IACjC;EACD,CAAC,EAAE,CAAEZ,MAAM,CAAG,CAAC;EACf,oBACC,IAAA1D,WAAA,CAAAc,GAAA,EAACzB,KAAA,CAAA+B,OAAO,CAACmD,KAAK;IACbC,GAAG,EAAGZ,gBAAkB;IACxBtC,KAAK,EAAGjB,MAAQ;IAChBoE,aAAa,EAAGd,SAAW;IAC3Be,WAAW,EAAGzE,UAAY;IAC1B,yBAAwB+D,cAAgB;IACxC/B,IAAI,EAAG5B;EAAQ,CACf,CAAC;AAEJ;;AAEA;AACA;AACA;AACO,SAASsE,WAAWA,CAAA,EAAG;EAC7B,MAAM;IAAEC;EAAiB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,wBAAuB,CAAC;EAClE,MAAM,CAAEzE,MAAM,EAAEsD,SAAS,CAAE,GAAG,IAAAhB,iBAAQ,EAAE,EAAG,CAAC;EAC5C,MAAMe,MAAM,GAAG,IAAAT,eAAS,EACrBC,MAAM,IAAMA,MAAM,CAAEG,YAAc,CAAC,CAACK,MAAM,CAAC,CAAC,EAC9C,EACD,CAAC;EACD,MAAM;IAAEqB,IAAI;IAAEvE;EAAM,CAAC,GAAG,IAAAqE,iBAAW,EAAExB,YAAc,CAAC;EACpD,MAAM,CAAEL,OAAO,EAAEgC,UAAU,CAAE,GAAG,IAAArC,iBAAQ,EAAE,CAAC,CAAE,CAAC;EAE9C,IAAA/B,kBAAS,EAAE,MAAM;IAChBgE,gBAAgB,CAAE;MACjBxE,IAAI,EAAE,eAAe;MACrB6E,QAAQ,EAAE,QAAQ;MAClBC,WAAW,EAAE,IAAAhF,QAAE,EAAE,2BAA4B,CAAC;MAC9CiF,cAAc,EAAE;QACfC,QAAQ,EAAE,SAAS;QACnBC,SAAS,EAAE;MACZ;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAET,gBAAgB,CAAG,CAAC;EAEzB,IAAAU,8BAAW,EACV,eAAe,EACf;EACEC,KAAK,IAAM;IACZ;IACA,IAAKA,KAAK,CAACC,gBAAgB,EAAG;MAC7B;IACD;IAEAD,KAAK,CAACE,cAAc,CAAC,CAAC;IACtB,IAAK/B,MAAM,EAAG;MACblD,KAAK,CAAC,CAAC;IACR,CAAC,MAAM;MACNuE,IAAI,CAAC,CAAC;IACP;EACD,CAAC,EACD;IACCW,UAAU,EAAE;EACb,CACD,CAAC;EAED,MAAMnF,SAAS,GAAG,IAAAoF,oBAAW,EAC5B,CAAEvF,IAAI,EAAEkB,KAAK,KACZ0D,UAAU,CAAIpC,OAAO,KAAQ;IAC5B,GAAGA,OAAO;IACV,CAAExC,IAAI,GAAIkB;EACX,CAAC,CAAG,CAAC,EACN,EACD,CAAC;EACD,MAAMsE,aAAa,GAAGA,CAAA,KAAM;IAC3BjC,SAAS,CAAE,EAAG,CAAC;IACfnD,KAAK,CAAC,CAAC;EACR,CAAC;EAED,IAAK,CAAEkD,MAAM,EAAG;IACf,OAAO,KAAK;EACb;EAEA,MAAMmC,SAAS,GAAKN,KAAK,IAAM;IAC9B;IACC;IACAA,KAAK,CAACO,WAAW,CAACC,WAAW;IAC7B;IACA;IACA;IACAR,KAAK,CAACS,OAAO,KAAK,GAAG,EACpB;MACDT,KAAK,CAACE,cAAc,CAAC,CAAC;IACvB;EACD,CAAC;EAED,MAAM/E,SAAS,GAAGuF,MAAM,CAACC,MAAM,CAAElD,OAAQ,CAAC,CAACmD,IAAI,CAAEC,OAAQ,CAAC;EAE1D,oBACC,IAAApG,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAyG,KAAK;IACLtE,SAAS,EAAC,uBAAuB;IACjCuE,gBAAgB,EAAC,gCAAgC;IACjDC,cAAc,EAAGX,aAAe;IAChCY,wBAAwB;IACxBC,YAAY,EAAG,IAAAvG,QAAE,EAAE,iBAAkB,CAAG;IAAAc,QAAA,eAExC,IAAAhB,WAAA,CAAAc,GAAA;MAAKiB,SAAS,EAAC,kCAAkC;MAAAf,QAAA,eAChD,IAAAhB,WAAA,CAAA4B,IAAA,EAACvC,KAAA,CAAA+B,OAAO;QAACI,KAAK,EAAGvB,UAAY;QAAC4F,SAAS,EAAGA,SAAW;QAAA7E,QAAA,gBACpD,IAAAhB,WAAA,CAAA4B,IAAA;UAAKG,SAAS,EAAC,+BAA+B;UAAAf,QAAA,gBAC7C,IAAAhB,WAAA,CAAAc,GAAA,EAAC2C,YAAY;YACZpD,MAAM,EAAGA,MAAQ;YACjBsD,SAAS,EAAGA,SAAW;YACvBD,MAAM,EAAGA;UAAQ,CACjB,CAAC,eACF,IAAA1D,WAAA,CAAAc,GAAA,EAAChB,MAAA,CAAAoC,IAAI;YAACD,IAAI,EAAGyE;UAAW,CAAE,CAAC;QAAA,CACvB,CAAC,eACN,IAAA1G,WAAA,CAAA4B,IAAA,EAACvC,KAAA,CAAA+B,OAAO,CAACuF,IAAI;UAACnF,KAAK,EAAG,IAAAtB,QAAE,EAAE,qBAAsB,CAAG;UAAAc,QAAA,GAChDX,MAAM,IAAI,CAAEK,SAAS,iBACtB,IAAAV,WAAA,CAAAc,GAAA,EAACzB,KAAA,CAAA+B,OAAO,CAACwF,KAAK;YAAA5F,QAAA,EACX,IAAAd,QAAE,EAAE,mBAAoB;UAAC,CACb,CACf,eACD,IAAAF,WAAA,CAAAc,GAAA,EAACgC,gBAAgB;YAChBzC,MAAM,EAAGA,MAAQ;YACjBE,SAAS,EAAGA,SAAW;YACvBC,KAAK,EAAGoF,aAAe;YACvB7C,YAAY;UAAA,CACZ,CAAC,EACA1C,MAAM,iBACP,IAAAL,WAAA,CAAAc,GAAA,EAACgC,gBAAgB;YAChBzC,MAAM,EAAGA,MAAQ;YACjBE,SAAS,EAAGA,SAAW;YACvBC,KAAK,EAAGoF;UAAe,CACvB,CACD;QAAA,CACY,CAAC;MAAA,CACP;IAAC,CACN;EAAC,CACA,CAAC;AAEV","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cmdk","require","_clsx","_interopRequireDefault","_data","_element","_i18n","_components","_keyboardShortcuts","_icons","_store","_jsxRuntime","inputLabel","__","CommandMenuLoader","name","search","hook","setLoader","close","_hook","isLoading","commands","useEffect","length","jsx","Fragment","children","map","command","_command$searchLabel","Command","Item","value","searchLabel","label","keywords","onSelect","callback","id","jsxs","__experimentalHStack","alignment","className","clsx","icon","Icon","TextHighlight","text","highlight","CommandMenuLoaderWrapper","currentLoaderRef","useRef","key","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","category","description","keyCombination","modifier","character","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 clsx from 'clsx';\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\tkeywords={ command.keywords }\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={ clsx( '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 currentLoaderRef = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoaderRef.current !== hook ) {\n\t\t\tcurrentLoaderRef.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={ currentLoaderRef.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\tkeywords={ command.keywords }\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={ clsx( '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\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\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 ) {\n\t\t\t\treturn;\n\t\t\t}\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 label={ __( 'Command suggestions' ) }>\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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","ignoreList":[]}
|
|
@@ -55,11 +55,12 @@ function useCommand(command) {
|
|
|
55
55
|
label: command.label,
|
|
56
56
|
searchLabel: command.searchLabel,
|
|
57
57
|
icon: command.icon,
|
|
58
|
+
keywords: command.keywords,
|
|
58
59
|
callback: (...args) => currentCallbackRef.current(...args)
|
|
59
60
|
});
|
|
60
61
|
return () => {
|
|
61
62
|
unregisterCommand(command.name);
|
|
62
63
|
};
|
|
63
|
-
}, [command.name, command.label, command.searchLabel, command.icon, command.context, command.disabled, registerCommand, unregisterCommand]);
|
|
64
|
+
}, [command.name, command.label, command.searchLabel, command.icon, command.context, command.keywords, command.disabled, registerCommand, unregisterCommand]);
|
|
64
65
|
}
|
|
65
66
|
//# sourceMappingURL=use-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_store","useCommand","command","registerCommand","unregisterCommand","useDispatch","commandsStore","currentCallbackRef","useRef","callback","useEffect","current","disabled","name","context","label","searchLabel","icon","args"],"sources":["@wordpress/commands/src/hooks/use-command.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\n/**\n * Attach a command to the command palette. Used for static commands.\n *\n * @param {import('../store/actions').WPCommandConfig} command command config.\n *\n * @example\n * ```js\n * import { useCommand } from '@wordpress/commands';\n * import { plus } from '@wordpress/icons';\n *\n * useCommand( {\n * name: 'myplugin/my-command-name',\n * label: __( 'Add new post' ),\n *\t icon: plus,\n * callback: ({ close }) => {\n * document.location.href = 'post-new.php';\n * close();\n * },\n * } );\n * ```\n */\nexport default function useCommand( command ) {\n\tconst { registerCommand, unregisterCommand } = useDispatch( commandsStore );\n\tconst currentCallbackRef = useRef( command.callback );\n\tuseEffect( () => {\n\t\tcurrentCallbackRef.current = command.callback;\n\t}, [ command.callback ] );\n\n\tuseEffect( () => {\n\t\tif ( command.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tregisterCommand( {\n\t\t\tname: command.name,\n\t\t\tcontext: command.context,\n\t\t\tlabel: command.label,\n\t\t\tsearchLabel: command.searchLabel,\n\t\t\ticon: command.icon,\n\t\t\tcallback: ( ...args ) => currentCallbackRef.current( ...args ),\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterCommand( command.name );\n\t\t};\n\t}, [\n\t\tcommand.name,\n\t\tcommand.label,\n\t\tcommand.searchLabel,\n\t\tcommand.icon,\n\t\tcommand.context,\n\t\tcommand.disabled,\n\t\tregisterCommand,\n\t\tunregisterCommand,\n\t] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,UAAUA,CAAEC,OAAO,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAc,CAAC;EAC3E,MAAMC,kBAAkB,GAAG,IAAAC,eAAM,EAAEN,OAAO,CAACO,QAAS,CAAC;EACrD,IAAAC,kBAAS,EAAE,MAAM;IAChBH,kBAAkB,CAACI,OAAO,GAAGT,OAAO,CAACO,QAAQ;EAC9C,CAAC,EAAE,CAAEP,OAAO,CAACO,QAAQ,CAAG,CAAC;EAEzB,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAKR,OAAO,CAACU,QAAQ,EAAG;MACvB;IACD;IACAT,eAAe,CAAE;MAChBU,IAAI,EAAEX,OAAO,CAACW,IAAI;MAClBC,OAAO,EAAEZ,OAAO,CAACY,OAAO;MACxBC,KAAK,EAAEb,OAAO,CAACa,KAAK;MACpBC,WAAW,EAAEd,OAAO,CAACc,WAAW;MAChCC,IAAI,EAAEf,OAAO,CAACe,IAAI;
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_store","useCommand","command","registerCommand","unregisterCommand","useDispatch","commandsStore","currentCallbackRef","useRef","callback","useEffect","current","disabled","name","context","label","searchLabel","icon","keywords","args"],"sources":["@wordpress/commands/src/hooks/use-command.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\n/**\n * Attach a command to the command palette. Used for static commands.\n *\n * @param {import('../store/actions').WPCommandConfig} command command config.\n *\n * @example\n * ```js\n * import { useCommand } from '@wordpress/commands';\n * import { plus } from '@wordpress/icons';\n *\n * useCommand( {\n * name: 'myplugin/my-command-name',\n * label: __( 'Add new post' ),\n *\t icon: plus,\n * callback: ({ close }) => {\n * document.location.href = 'post-new.php';\n * close();\n * },\n * } );\n * ```\n */\nexport default function useCommand( command ) {\n\tconst { registerCommand, unregisterCommand } = useDispatch( commandsStore );\n\tconst currentCallbackRef = useRef( command.callback );\n\tuseEffect( () => {\n\t\tcurrentCallbackRef.current = command.callback;\n\t}, [ command.callback ] );\n\n\tuseEffect( () => {\n\t\tif ( command.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tregisterCommand( {\n\t\t\tname: command.name,\n\t\t\tcontext: command.context,\n\t\t\tlabel: command.label,\n\t\t\tsearchLabel: command.searchLabel,\n\t\t\ticon: command.icon,\n\t\t\tkeywords: command.keywords,\n\t\t\tcallback: ( ...args ) => currentCallbackRef.current( ...args ),\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterCommand( command.name );\n\t\t};\n\t}, [\n\t\tcommand.name,\n\t\tcommand.label,\n\t\tcommand.searchLabel,\n\t\tcommand.icon,\n\t\tcommand.context,\n\t\tcommand.keywords,\n\t\tcommand.disabled,\n\t\tregisterCommand,\n\t\tunregisterCommand,\n\t] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,UAAUA,CAAEC,OAAO,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAc,CAAC;EAC3E,MAAMC,kBAAkB,GAAG,IAAAC,eAAM,EAAEN,OAAO,CAACO,QAAS,CAAC;EACrD,IAAAC,kBAAS,EAAE,MAAM;IAChBH,kBAAkB,CAACI,OAAO,GAAGT,OAAO,CAACO,QAAQ;EAC9C,CAAC,EAAE,CAAEP,OAAO,CAACO,QAAQ,CAAG,CAAC;EAEzB,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAKR,OAAO,CAACU,QAAQ,EAAG;MACvB;IACD;IACAT,eAAe,CAAE;MAChBU,IAAI,EAAEX,OAAO,CAACW,IAAI;MAClBC,OAAO,EAAEZ,OAAO,CAACY,OAAO;MACxBC,KAAK,EAAEb,OAAO,CAACa,KAAK;MACpBC,WAAW,EAAEd,OAAO,CAACc,WAAW;MAChCC,IAAI,EAAEf,OAAO,CAACe,IAAI;MAClBC,QAAQ,EAAEhB,OAAO,CAACgB,QAAQ;MAC1BT,QAAQ,EAAEA,CAAE,GAAGU,IAAI,KAAMZ,kBAAkB,CAACI,OAAO,CAAE,GAAGQ,IAAK;IAC9D,CAAE,CAAC;IACH,OAAO,MAAM;MACZf,iBAAiB,CAAEF,OAAO,CAACW,IAAK,CAAC;IAClC,CAAC;EACF,CAAC,EAAE,CACFX,OAAO,CAACW,IAAI,EACZX,OAAO,CAACa,KAAK,EACbb,OAAO,CAACc,WAAW,EACnBd,OAAO,CAACe,IAAI,EACZf,OAAO,CAACY,OAAO,EACfZ,OAAO,CAACgB,QAAQ,EAChBhB,OAAO,CAACU,QAAQ,EAChBT,eAAe,EACfC,iBAAiB,CAChB,CAAC;AACJ","ignoreList":[]}
|
package/build/store/actions.js
CHANGED
|
@@ -23,6 +23,7 @@ exports.unregisterCommandLoader = unregisterCommandLoader;
|
|
|
23
23
|
* @property {JSX.Element} icon Command icon.
|
|
24
24
|
* @property {Function} callback Command callback.
|
|
25
25
|
* @property {boolean} disabled Whether to disable the command.
|
|
26
|
+
* @property {string[]=} keywords Command keywords for search matching.
|
|
26
27
|
*/
|
|
27
28
|
|
|
28
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerCommand","config","type","unregisterCommand","name","registerCommandLoader","unregisterCommandLoader","open","close"],"sources":["@wordpress/commands/src/store/actions.js"],"sourcesContent":["/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */\n\n/**\n * Configuration of a registered keyboard shortcut.\n *\n * @typedef {Object} WPCommandConfig\n *\n * @property {string} name Command name.\n * @property {string} label Command label.\n * @property {string=} searchLabel Command search label.\n * @property {string=} context Command context.\n * @property {JSX.Element} icon Command icon.\n * @property {Function} callback Command callback.\n * @property {boolean} disabled Whether to disable the command.\n */\n\n/**\n * @typedef {(search: string) => WPCommandConfig[]} WPCommandLoaderHook hoo\n */\n\n/**\n * Command loader config.\n *\n * @typedef {Object} WPCommandLoaderConfig\n *\n * @property {string} name Command loader name.\n * @property {string=} context Command loader context.\n * @property {WPCommandLoaderHook} hook Command loader hook.\n * @property {boolean} disabled Whether to disable the command loader.\n */\n\n/**\n * Returns an action object used to register a new command.\n *\n * @param {WPCommandConfig} config Command config.\n *\n * @return {Object} action.\n */\nexport function registerCommand( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND',\n\t\t...config,\n\t};\n}\n\n/**\n * Returns an action object used to unregister a command.\n *\n * @param {string} name Command name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommand( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND',\n\t\tname,\n\t};\n}\n\n/**\n * Register command loader.\n *\n * @param {WPCommandLoaderConfig} config Command loader config.\n *\n * @return {Object} action.\n */\nexport function registerCommandLoader( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND_LOADER',\n\t\t...config,\n\t};\n}\n\n/**\n * Unregister command loader hook.\n *\n * @param {string} name Command loader name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommandLoader( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND_LOADER',\n\t\tname,\n\t};\n}\n\n/**\n * Opens the command palette.\n *\n * @return {Object} action.\n */\nexport function open() {\n\treturn {\n\t\ttype: 'OPEN',\n\t};\n}\n\n/**\n * Closes the command palette.\n *\n * @return {Object} action.\n */\nexport function close() {\n\treturn {\n\t\ttype: 'CLOSE',\n\t};\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAAEC,MAAM,EAAG;EACzC,OAAO;IACNC,IAAI,EAAE,kBAAkB;IACxB,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAAEC,IAAI,EAAG;EACzC,OAAO;IACNF,IAAI,EAAE,oBAAoB;IAC1BE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAAEJ,MAAM,EAAG;EAC/C,OAAO;IACNC,IAAI,EAAE,yBAAyB;IAC/B,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,uBAAuBA,CAAEF,IAAI,EAAG;EAC/C,OAAO;IACNF,IAAI,EAAE,2BAA2B;IACjCE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,IAAIA,CAAA,EAAG;EACtB,OAAO;IACNL,IAAI,EAAE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASM,KAAKA,CAAA,EAAG;EACvB,OAAO;IACNN,IAAI,EAAE;EACP,CAAC;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["registerCommand","config","type","unregisterCommand","name","registerCommandLoader","unregisterCommandLoader","open","close"],"sources":["@wordpress/commands/src/store/actions.js"],"sourcesContent":["/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */\n\n/**\n * Configuration of a registered keyboard shortcut.\n *\n * @typedef {Object} WPCommandConfig\n *\n * @property {string} name Command name.\n * @property {string} label Command label.\n * @property {string=} searchLabel Command search label.\n * @property {string=} context Command context.\n * @property {JSX.Element} icon Command icon.\n * @property {Function} callback Command callback.\n * @property {boolean} disabled Whether to disable the command.\n * @property {string[]=} keywords Command keywords for search matching.\n */\n\n/**\n * @typedef {(search: string) => WPCommandConfig[]} WPCommandLoaderHook hoo\n */\n\n/**\n * Command loader config.\n *\n * @typedef {Object} WPCommandLoaderConfig\n *\n * @property {string} name Command loader name.\n * @property {string=} context Command loader context.\n * @property {WPCommandLoaderHook} hook Command loader hook.\n * @property {boolean} disabled Whether to disable the command loader.\n */\n\n/**\n * Returns an action object used to register a new command.\n *\n * @param {WPCommandConfig} config Command config.\n *\n * @return {Object} action.\n */\nexport function registerCommand( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND',\n\t\t...config,\n\t};\n}\n\n/**\n * Returns an action object used to unregister a command.\n *\n * @param {string} name Command name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommand( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND',\n\t\tname,\n\t};\n}\n\n/**\n * Register command loader.\n *\n * @param {WPCommandLoaderConfig} config Command loader config.\n *\n * @return {Object} action.\n */\nexport function registerCommandLoader( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND_LOADER',\n\t\t...config,\n\t};\n}\n\n/**\n * Unregister command loader hook.\n *\n * @param {string} name Command loader name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommandLoader( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND_LOADER',\n\t\tname,\n\t};\n}\n\n/**\n * Opens the command palette.\n *\n * @return {Object} action.\n */\nexport function open() {\n\treturn {\n\t\ttype: 'OPEN',\n\t};\n}\n\n/**\n * Closes the command palette.\n *\n * @return {Object} action.\n */\nexport function close() {\n\treturn {\n\t\ttype: 'CLOSE',\n\t};\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAAEC,MAAM,EAAG;EACzC,OAAO;IACNC,IAAI,EAAE,kBAAkB;IACxB,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAAEC,IAAI,EAAG;EACzC,OAAO;IACNF,IAAI,EAAE,oBAAoB;IAC1BE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAAEJ,MAAM,EAAG;EAC/C,OAAO;IACNC,IAAI,EAAE,yBAAyB;IAC/B,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,uBAAuBA,CAAEF,IAAI,EAAG;EAC/C,OAAO;IACNF,IAAI,EAAE,2BAA2B;IACjCE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,IAAIA,CAAA,EAAG;EACtB,OAAO;IACNL,IAAI,EAAE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASM,KAAKA,CAAA,EAAG;EACvB,OAAO;IACNN,IAAI,EAAE;EACP,CAAC;AACF","ignoreList":[]}
|
package/build/store/reducer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","commands","state","action","type","name","label","searchLabel","context","callback","icon","_","remainingState","commandLoaders","hook","isOpen","reducer","combineReducers","_default","exports","default"],"sources":["@wordpress/commands/src/store/reducer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer returning the registered commands\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commands( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tlabel: action.label,\n\t\t\t\t\tsearchLabel: action.searchLabel,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\tcallback: action.callback,\n\t\t\t\t\ticon: action.icon,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command loaders\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commandLoaders( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND_LOADER':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\thook: action.hook,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND_LOADER': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette open state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction isOpen( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN':\n\t\t\treturn true;\n\t\tcase 'CLOSE':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette's active context.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction context( state = 'root', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_CONTEXT':\n\t\t\treturn action.context;\n\t}\n\n\treturn state;\n}\n\nconst reducer = combineReducers( {\n\tcommands,\n\tcommandLoaders,\n\tisOpen,\n\tcontext,\n} );\n\nexport default reducer;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAEC,KAAK,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAG;EACvC,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,kBAAkB;MACtB,OAAO;QACN,GAAGF,KAAK;QACR,CAAEC,MAAM,CAACE,IAAI,GAAI;UAChBA,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBC,KAAK,EAAEH,MAAM,CAACG,KAAK;UACnBC,WAAW,EAAEJ,MAAM,CAACI,WAAW;UAC/BC,OAAO,EAAEL,MAAM,CAACK,OAAO;UACvBC,QAAQ,EAAEN,MAAM,CAACM,QAAQ;UACzBC,IAAI,EAAEP,MAAM,CAACO;
|
|
1
|
+
{"version":3,"names":["_data","require","commands","state","action","type","name","label","searchLabel","context","callback","icon","keywords","_","remainingState","commandLoaders","hook","isOpen","reducer","combineReducers","_default","exports","default"],"sources":["@wordpress/commands/src/store/reducer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer returning the registered commands\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commands( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tlabel: action.label,\n\t\t\t\t\tsearchLabel: action.searchLabel,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\tcallback: action.callback,\n\t\t\t\t\ticon: action.icon,\n\t\t\t\t\tkeywords: action.keywords,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command loaders\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commandLoaders( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND_LOADER':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\thook: action.hook,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND_LOADER': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette open state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction isOpen( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN':\n\t\t\treturn true;\n\t\tcase 'CLOSE':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette's active context.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction context( state = 'root', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_CONTEXT':\n\t\t\treturn action.context;\n\t}\n\n\treturn state;\n}\n\nconst reducer = combineReducers( {\n\tcommands,\n\tcommandLoaders,\n\tisOpen,\n\tcontext,\n} );\n\nexport default reducer;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAEC,KAAK,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAG;EACvC,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,kBAAkB;MACtB,OAAO;QACN,GAAGF,KAAK;QACR,CAAEC,MAAM,CAACE,IAAI,GAAI;UAChBA,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBC,KAAK,EAAEH,MAAM,CAACG,KAAK;UACnBC,WAAW,EAAEJ,MAAM,CAACI,WAAW;UAC/BC,OAAO,EAAEL,MAAM,CAACK,OAAO;UACvBC,QAAQ,EAAEN,MAAM,CAACM,QAAQ;UACzBC,IAAI,EAAEP,MAAM,CAACO,IAAI;UACjBC,QAAQ,EAAER,MAAM,CAACQ;QAClB;MACD,CAAC;IACF,KAAK,oBAAoB;MAAE;QAC1B,MAAM;UAAE,CAAER,MAAM,CAACE,IAAI,GAAIO,CAAC;UAAE,GAAGC;QAAe,CAAC,GAAGX,KAAK;QACvD,OAAOW,cAAc;MACtB;EACD;EAEA,OAAOX,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASY,cAAcA,CAAEZ,KAAK,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAG;EAC7C,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,yBAAyB;MAC7B,OAAO;QACN,GAAGF,KAAK;QACR,CAAEC,MAAM,CAACE,IAAI,GAAI;UAChBA,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBG,OAAO,EAAEL,MAAM,CAACK,OAAO;UACvBO,IAAI,EAAEZ,MAAM,CAACY;QACd;MACD,CAAC;IACF,KAAK,2BAA2B;MAAE;QACjC,MAAM;UAAE,CAAEZ,MAAM,CAACE,IAAI,GAAIO,CAAC;UAAE,GAAGC;QAAe,CAAC,GAAGX,KAAK;QACvD,OAAOW,cAAc;MACtB;EACD;EAEA,OAAOX,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASc,MAAMA,CAAEd,KAAK,GAAG,KAAK,EAAEC,MAAM,EAAG;EACxC,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,MAAM;MACV,OAAO,IAAI;IACZ,KAAK,OAAO;MACX,OAAO,KAAK;EACd;EAEA,OAAOF,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,OAAOA,CAAEN,KAAK,GAAG,MAAM,EAAEC,MAAM,EAAG;EAC1C,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,aAAa;MACjB,OAAOD,MAAM,CAACK,OAAO;EACvB;EAEA,OAAON,KAAK;AACb;AAEA,MAAMe,OAAO,GAAG,IAAAC,qBAAe,EAAE;EAChCjB,QAAQ;EACRa,cAAc;EACdE,MAAM;EACNR;AACD,CAAE,CAAC;AAAC,IAAAW,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWJ,OAAO","ignoreList":[]}
|
|
@@ -45,6 +45,7 @@ function CommandMenuLoader({
|
|
|
45
45
|
var _command$searchLabel;
|
|
46
46
|
return /*#__PURE__*/_jsx(Command.Item, {
|
|
47
47
|
value: (_command$searchLabel = command.searchLabel) !== null && _command$searchLabel !== void 0 ? _command$searchLabel : command.label,
|
|
48
|
+
keywords: command.keywords,
|
|
48
49
|
onSelect: () => command.callback({
|
|
49
50
|
close
|
|
50
51
|
}),
|
|
@@ -120,6 +121,7 @@ export function CommandMenuGroup({
|
|
|
120
121
|
var _command$searchLabel2;
|
|
121
122
|
return /*#__PURE__*/_jsx(Command.Item, {
|
|
122
123
|
value: (_command$searchLabel2 = command.searchLabel) !== null && _command$searchLabel2 !== void 0 ? _command$searchLabel2 : command.label,
|
|
124
|
+
keywords: command.keywords,
|
|
123
125
|
onSelect: () => command.callback({
|
|
124
126
|
close
|
|
125
127
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Command","useCommandState","clsx","useSelect","useDispatch","useState","useEffect","useRef","useCallback","useMemo","__","Modal","TextHighlight","__experimentalHStack","HStack","store","keyboardShortcutsStore","useShortcut","Icon","search","inputIcon","commandsStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","inputLabel","CommandMenuLoader","name","hook","setLoader","close","_hook","isLoading","commands","length","children","map","command","_command$searchLabel","Item","value","searchLabel","label","onSelect","callback","id","alignment","className","icon","text","highlight","CommandMenuLoaderWrapper","currentLoaderRef","key","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","category","description","keyCombination","modifier","character","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 clsx from 'clsx';\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={ clsx( '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 currentLoaderRef = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoaderRef.current !== hook ) {\n\t\t\tcurrentLoaderRef.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={ currentLoaderRef.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={ clsx( '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\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\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 ) {\n\t\t\t\treturn;\n\t\t\t}\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 label={ __( 'Command suggestions' ) }>\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Command","useCommandState","clsx","useSelect","useDispatch","useState","useEffect","useRef","useCallback","useMemo","__","Modal","TextHighlight","__experimentalHStack","HStack","store","keyboardShortcutsStore","useShortcut","Icon","search","inputIcon","commandsStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","inputLabel","CommandMenuLoader","name","hook","setLoader","close","_hook","isLoading","commands","length","children","map","command","_command$searchLabel","Item","value","searchLabel","label","keywords","onSelect","callback","id","alignment","className","icon","text","highlight","CommandMenuLoaderWrapper","currentLoaderRef","key","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","category","description","keyCombination","modifier","character","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 clsx from 'clsx';\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\tkeywords={ command.keywords }\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={ clsx( '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 currentLoaderRef = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoaderRef.current !== hook ) {\n\t\t\tcurrentLoaderRef.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={ currentLoaderRef.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\tkeywords={ command.keywords }\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={ clsx( '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\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\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 ) {\n\t\t\t\treturn;\n\t\t\t}\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 label={ __( 'Command suggestions' ) }>\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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","ignoreList":[]}
|
|
@@ -49,11 +49,12 @@ export default function useCommand(command) {
|
|
|
49
49
|
label: command.label,
|
|
50
50
|
searchLabel: command.searchLabel,
|
|
51
51
|
icon: command.icon,
|
|
52
|
+
keywords: command.keywords,
|
|
52
53
|
callback: (...args) => currentCallbackRef.current(...args)
|
|
53
54
|
});
|
|
54
55
|
return () => {
|
|
55
56
|
unregisterCommand(command.name);
|
|
56
57
|
};
|
|
57
|
-
}, [command.name, command.label, command.searchLabel, command.icon, command.context, command.disabled, registerCommand, unregisterCommand]);
|
|
58
|
+
}, [command.name, command.label, command.searchLabel, command.icon, command.context, command.keywords, command.disabled, registerCommand, unregisterCommand]);
|
|
58
59
|
}
|
|
59
60
|
//# sourceMappingURL=use-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useDispatch","store","commandsStore","useCommand","command","registerCommand","unregisterCommand","currentCallbackRef","callback","current","disabled","name","context","label","searchLabel","icon","args"],"sources":["@wordpress/commands/src/hooks/use-command.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\n/**\n * Attach a command to the command palette. Used for static commands.\n *\n * @param {import('../store/actions').WPCommandConfig} command command config.\n *\n * @example\n * ```js\n * import { useCommand } from '@wordpress/commands';\n * import { plus } from '@wordpress/icons';\n *\n * useCommand( {\n * name: 'myplugin/my-command-name',\n * label: __( 'Add new post' ),\n *\t icon: plus,\n * callback: ({ close }) => {\n * document.location.href = 'post-new.php';\n * close();\n * },\n * } );\n * ```\n */\nexport default function useCommand( command ) {\n\tconst { registerCommand, unregisterCommand } = useDispatch( commandsStore );\n\tconst currentCallbackRef = useRef( command.callback );\n\tuseEffect( () => {\n\t\tcurrentCallbackRef.current = command.callback;\n\t}, [ command.callback ] );\n\n\tuseEffect( () => {\n\t\tif ( command.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tregisterCommand( {\n\t\t\tname: command.name,\n\t\t\tcontext: command.context,\n\t\t\tlabel: command.label,\n\t\t\tsearchLabel: command.searchLabel,\n\t\t\ticon: command.icon,\n\t\t\tcallback: ( ...args ) => currentCallbackRef.current( ...args ),\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterCommand( command.name );\n\t\t};\n\t}, [\n\t\tcommand.name,\n\t\tcommand.label,\n\t\tcommand.searchLabel,\n\t\tcommand.icon,\n\t\tcommand.context,\n\t\tcommand.disabled,\n\t\tregisterCommand,\n\t\tunregisterCommand,\n\t] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,aAAa,QAAQ,UAAU;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,UAAUA,CAAEC,OAAO,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAkB,CAAC,GAAGN,WAAW,CAAEE,aAAc,CAAC;EAC3E,MAAMK,kBAAkB,GAAGR,MAAM,CAAEK,OAAO,CAACI,QAAS,CAAC;EACrDV,SAAS,CAAE,MAAM;IAChBS,kBAAkB,CAACE,OAAO,GAAGL,OAAO,CAACI,QAAQ;EAC9C,CAAC,EAAE,CAAEJ,OAAO,CAACI,QAAQ,CAAG,CAAC;EAEzBV,SAAS,CAAE,MAAM;IAChB,IAAKM,OAAO,CAACM,QAAQ,EAAG;MACvB;IACD;IACAL,eAAe,CAAE;MAChBM,IAAI,EAAEP,OAAO,CAACO,IAAI;MAClBC,OAAO,EAAER,OAAO,CAACQ,OAAO;MACxBC,KAAK,EAAET,OAAO,CAACS,KAAK;MACpBC,WAAW,EAAEV,OAAO,CAACU,WAAW;MAChCC,IAAI,EAAEX,OAAO,CAACW,IAAI;
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useDispatch","store","commandsStore","useCommand","command","registerCommand","unregisterCommand","currentCallbackRef","callback","current","disabled","name","context","label","searchLabel","icon","keywords","args"],"sources":["@wordpress/commands/src/hooks/use-command.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\n/**\n * Attach a command to the command palette. Used for static commands.\n *\n * @param {import('../store/actions').WPCommandConfig} command command config.\n *\n * @example\n * ```js\n * import { useCommand } from '@wordpress/commands';\n * import { plus } from '@wordpress/icons';\n *\n * useCommand( {\n * name: 'myplugin/my-command-name',\n * label: __( 'Add new post' ),\n *\t icon: plus,\n * callback: ({ close }) => {\n * document.location.href = 'post-new.php';\n * close();\n * },\n * } );\n * ```\n */\nexport default function useCommand( command ) {\n\tconst { registerCommand, unregisterCommand } = useDispatch( commandsStore );\n\tconst currentCallbackRef = useRef( command.callback );\n\tuseEffect( () => {\n\t\tcurrentCallbackRef.current = command.callback;\n\t}, [ command.callback ] );\n\n\tuseEffect( () => {\n\t\tif ( command.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tregisterCommand( {\n\t\t\tname: command.name,\n\t\t\tcontext: command.context,\n\t\t\tlabel: command.label,\n\t\t\tsearchLabel: command.searchLabel,\n\t\t\ticon: command.icon,\n\t\t\tkeywords: command.keywords,\n\t\t\tcallback: ( ...args ) => currentCallbackRef.current( ...args ),\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterCommand( command.name );\n\t\t};\n\t}, [\n\t\tcommand.name,\n\t\tcommand.label,\n\t\tcommand.searchLabel,\n\t\tcommand.icon,\n\t\tcommand.context,\n\t\tcommand.keywords,\n\t\tcommand.disabled,\n\t\tregisterCommand,\n\t\tunregisterCommand,\n\t] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,aAAa,QAAQ,UAAU;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,UAAUA,CAAEC,OAAO,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAkB,CAAC,GAAGN,WAAW,CAAEE,aAAc,CAAC;EAC3E,MAAMK,kBAAkB,GAAGR,MAAM,CAAEK,OAAO,CAACI,QAAS,CAAC;EACrDV,SAAS,CAAE,MAAM;IAChBS,kBAAkB,CAACE,OAAO,GAAGL,OAAO,CAACI,QAAQ;EAC9C,CAAC,EAAE,CAAEJ,OAAO,CAACI,QAAQ,CAAG,CAAC;EAEzBV,SAAS,CAAE,MAAM;IAChB,IAAKM,OAAO,CAACM,QAAQ,EAAG;MACvB;IACD;IACAL,eAAe,CAAE;MAChBM,IAAI,EAAEP,OAAO,CAACO,IAAI;MAClBC,OAAO,EAAER,OAAO,CAACQ,OAAO;MACxBC,KAAK,EAAET,OAAO,CAACS,KAAK;MACpBC,WAAW,EAAEV,OAAO,CAACU,WAAW;MAChCC,IAAI,EAAEX,OAAO,CAACW,IAAI;MAClBC,QAAQ,EAAEZ,OAAO,CAACY,QAAQ;MAC1BR,QAAQ,EAAEA,CAAE,GAAGS,IAAI,KAAMV,kBAAkB,CAACE,OAAO,CAAE,GAAGQ,IAAK;IAC9D,CAAE,CAAC;IACH,OAAO,MAAM;MACZX,iBAAiB,CAAEF,OAAO,CAACO,IAAK,CAAC;IAClC,CAAC;EACF,CAAC,EAAE,CACFP,OAAO,CAACO,IAAI,EACZP,OAAO,CAACS,KAAK,EACbT,OAAO,CAACU,WAAW,EACnBV,OAAO,CAACW,IAAI,EACZX,OAAO,CAACQ,OAAO,EACfR,OAAO,CAACY,QAAQ,EAChBZ,OAAO,CAACM,QAAQ,EAChBL,eAAe,EACfC,iBAAiB,CAChB,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerCommand","config","type","unregisterCommand","name","registerCommandLoader","unregisterCommandLoader","open","close"],"sources":["@wordpress/commands/src/store/actions.js"],"sourcesContent":["/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */\n\n/**\n * Configuration of a registered keyboard shortcut.\n *\n * @typedef {Object} WPCommandConfig\n *\n * @property {string} name Command name.\n * @property {string} label Command label.\n * @property {string=} searchLabel Command search label.\n * @property {string=} context Command context.\n * @property {JSX.Element} icon Command icon.\n * @property {Function} callback Command callback.\n * @property {boolean} disabled Whether to disable the command.\n */\n\n/**\n * @typedef {(search: string) => WPCommandConfig[]} WPCommandLoaderHook hoo\n */\n\n/**\n * Command loader config.\n *\n * @typedef {Object} WPCommandLoaderConfig\n *\n * @property {string} name Command loader name.\n * @property {string=} context Command loader context.\n * @property {WPCommandLoaderHook} hook Command loader hook.\n * @property {boolean} disabled Whether to disable the command loader.\n */\n\n/**\n * Returns an action object used to register a new command.\n *\n * @param {WPCommandConfig} config Command config.\n *\n * @return {Object} action.\n */\nexport function registerCommand( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND',\n\t\t...config,\n\t};\n}\n\n/**\n * Returns an action object used to unregister a command.\n *\n * @param {string} name Command name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommand( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND',\n\t\tname,\n\t};\n}\n\n/**\n * Register command loader.\n *\n * @param {WPCommandLoaderConfig} config Command loader config.\n *\n * @return {Object} action.\n */\nexport function registerCommandLoader( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND_LOADER',\n\t\t...config,\n\t};\n}\n\n/**\n * Unregister command loader hook.\n *\n * @param {string} name Command loader name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommandLoader( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND_LOADER',\n\t\tname,\n\t};\n}\n\n/**\n * Opens the command palette.\n *\n * @return {Object} action.\n */\nexport function open() {\n\treturn {\n\t\ttype: 'OPEN',\n\t};\n}\n\n/**\n * Closes the command palette.\n *\n * @return {Object} action.\n */\nexport function close() {\n\treturn {\n\t\ttype: 'CLOSE',\n\t};\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAEC,MAAM,EAAG;EACzC,OAAO;IACNC,IAAI,EAAE,kBAAkB;IACxB,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,iBAAiBA,CAAEC,IAAI,EAAG;EACzC,OAAO;IACNF,IAAI,EAAE,oBAAoB;IAC1BE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAEJ,MAAM,EAAG;EAC/C,OAAO;IACNC,IAAI,EAAE,yBAAyB;IAC/B,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,uBAAuBA,CAAEF,IAAI,EAAG;EAC/C,OAAO;IACNF,IAAI,EAAE,2BAA2B;IACjCE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,IAAIA,CAAA,EAAG;EACtB,OAAO;IACNL,IAAI,EAAE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,KAAKA,CAAA,EAAG;EACvB,OAAO;IACNN,IAAI,EAAE;EACP,CAAC;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["registerCommand","config","type","unregisterCommand","name","registerCommandLoader","unregisterCommandLoader","open","close"],"sources":["@wordpress/commands/src/store/actions.js"],"sourcesContent":["/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */\n\n/**\n * Configuration of a registered keyboard shortcut.\n *\n * @typedef {Object} WPCommandConfig\n *\n * @property {string} name Command name.\n * @property {string} label Command label.\n * @property {string=} searchLabel Command search label.\n * @property {string=} context Command context.\n * @property {JSX.Element} icon Command icon.\n * @property {Function} callback Command callback.\n * @property {boolean} disabled Whether to disable the command.\n * @property {string[]=} keywords Command keywords for search matching.\n */\n\n/**\n * @typedef {(search: string) => WPCommandConfig[]} WPCommandLoaderHook hoo\n */\n\n/**\n * Command loader config.\n *\n * @typedef {Object} WPCommandLoaderConfig\n *\n * @property {string} name Command loader name.\n * @property {string=} context Command loader context.\n * @property {WPCommandLoaderHook} hook Command loader hook.\n * @property {boolean} disabled Whether to disable the command loader.\n */\n\n/**\n * Returns an action object used to register a new command.\n *\n * @param {WPCommandConfig} config Command config.\n *\n * @return {Object} action.\n */\nexport function registerCommand( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND',\n\t\t...config,\n\t};\n}\n\n/**\n * Returns an action object used to unregister a command.\n *\n * @param {string} name Command name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommand( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND',\n\t\tname,\n\t};\n}\n\n/**\n * Register command loader.\n *\n * @param {WPCommandLoaderConfig} config Command loader config.\n *\n * @return {Object} action.\n */\nexport function registerCommandLoader( config ) {\n\treturn {\n\t\ttype: 'REGISTER_COMMAND_LOADER',\n\t\t...config,\n\t};\n}\n\n/**\n * Unregister command loader hook.\n *\n * @param {string} name Command loader name.\n *\n * @return {Object} action.\n */\nexport function unregisterCommandLoader( name ) {\n\treturn {\n\t\ttype: 'UNREGISTER_COMMAND_LOADER',\n\t\tname,\n\t};\n}\n\n/**\n * Opens the command palette.\n *\n * @return {Object} action.\n */\nexport function open() {\n\treturn {\n\t\ttype: 'OPEN',\n\t};\n}\n\n/**\n * Closes the command palette.\n *\n * @return {Object} action.\n */\nexport function close() {\n\treturn {\n\t\ttype: 'CLOSE',\n\t};\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAEC,MAAM,EAAG;EACzC,OAAO;IACNC,IAAI,EAAE,kBAAkB;IACxB,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,iBAAiBA,CAAEC,IAAI,EAAG;EACzC,OAAO;IACNF,IAAI,EAAE,oBAAoB;IAC1BE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAEJ,MAAM,EAAG;EAC/C,OAAO;IACNC,IAAI,EAAE,yBAAyB;IAC/B,GAAGD;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,uBAAuBA,CAAEF,IAAI,EAAG;EAC/C,OAAO;IACNF,IAAI,EAAE,2BAA2B;IACjCE;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,IAAIA,CAAA,EAAG;EACtB,OAAO;IACNL,IAAI,EAAE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,KAAKA,CAAA,EAAG;EACvB,OAAO;IACNN,IAAI,EAAE;EACP,CAAC;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["combineReducers","commands","state","action","type","name","label","searchLabel","context","callback","icon","_","remainingState","commandLoaders","hook","isOpen","reducer"],"sources":["@wordpress/commands/src/store/reducer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer returning the registered commands\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commands( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tlabel: action.label,\n\t\t\t\t\tsearchLabel: action.searchLabel,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\tcallback: action.callback,\n\t\t\t\t\ticon: action.icon,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command loaders\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commandLoaders( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND_LOADER':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\thook: action.hook,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND_LOADER': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette open state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction isOpen( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN':\n\t\t\treturn true;\n\t\tcase 'CLOSE':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette's active context.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction context( state = 'root', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_CONTEXT':\n\t\t\treturn action.context;\n\t}\n\n\treturn state;\n}\n\nconst reducer = combineReducers( {\n\tcommands,\n\tcommandLoaders,\n\tisOpen,\n\tcontext,\n} );\n\nexport default reducer;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,iBAAiB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAEC,KAAK,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAG;EACvC,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,kBAAkB;MACtB,OAAO;QACN,GAAGF,KAAK;QACR,CAAEC,MAAM,CAACE,IAAI,GAAI;UAChBA,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBC,KAAK,EAAEH,MAAM,CAACG,KAAK;UACnBC,WAAW,EAAEJ,MAAM,CAACI,WAAW;UAC/BC,OAAO,EAAEL,MAAM,CAACK,OAAO;UACvBC,QAAQ,EAAEN,MAAM,CAACM,QAAQ;UACzBC,IAAI,EAAEP,MAAM,CAACO;
|
|
1
|
+
{"version":3,"names":["combineReducers","commands","state","action","type","name","label","searchLabel","context","callback","icon","keywords","_","remainingState","commandLoaders","hook","isOpen","reducer"],"sources":["@wordpress/commands/src/store/reducer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer returning the registered commands\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commands( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tlabel: action.label,\n\t\t\t\t\tsearchLabel: action.searchLabel,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\tcallback: action.callback,\n\t\t\t\t\ticon: action.icon,\n\t\t\t\t\tkeywords: action.keywords,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command loaders\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction commandLoaders( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_COMMAND_LOADER':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.name ]: {\n\t\t\t\t\tname: action.name,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\thook: action.hook,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'UNREGISTER_COMMAND_LOADER': {\n\t\t\tconst { [ action.name ]: _, ...remainingState } = state;\n\t\t\treturn remainingState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette open state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction isOpen( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN':\n\t\t\treturn true;\n\t\tcase 'CLOSE':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the command palette's active context.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nfunction context( state = 'root', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_CONTEXT':\n\t\t\treturn action.context;\n\t}\n\n\treturn state;\n}\n\nconst reducer = combineReducers( {\n\tcommands,\n\tcommandLoaders,\n\tisOpen,\n\tcontext,\n} );\n\nexport default reducer;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,iBAAiB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAEC,KAAK,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAG;EACvC,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,kBAAkB;MACtB,OAAO;QACN,GAAGF,KAAK;QACR,CAAEC,MAAM,CAACE,IAAI,GAAI;UAChBA,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBC,KAAK,EAAEH,MAAM,CAACG,KAAK;UACnBC,WAAW,EAAEJ,MAAM,CAACI,WAAW;UAC/BC,OAAO,EAAEL,MAAM,CAACK,OAAO;UACvBC,QAAQ,EAAEN,MAAM,CAACM,QAAQ;UACzBC,IAAI,EAAEP,MAAM,CAACO,IAAI;UACjBC,QAAQ,EAAER,MAAM,CAACQ;QAClB;MACD,CAAC;IACF,KAAK,oBAAoB;MAAE;QAC1B,MAAM;UAAE,CAAER,MAAM,CAACE,IAAI,GAAIO,CAAC;UAAE,GAAGC;QAAe,CAAC,GAAGX,KAAK;QACvD,OAAOW,cAAc;MACtB;EACD;EAEA,OAAOX,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASY,cAAcA,CAAEZ,KAAK,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAG;EAC7C,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,yBAAyB;MAC7B,OAAO;QACN,GAAGF,KAAK;QACR,CAAEC,MAAM,CAACE,IAAI,GAAI;UAChBA,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBG,OAAO,EAAEL,MAAM,CAACK,OAAO;UACvBO,IAAI,EAAEZ,MAAM,CAACY;QACd;MACD,CAAC;IACF,KAAK,2BAA2B;MAAE;QACjC,MAAM;UAAE,CAAEZ,MAAM,CAACE,IAAI,GAAIO,CAAC;UAAE,GAAGC;QAAe,CAAC,GAAGX,KAAK;QACvD,OAAOW,cAAc;MACtB;EACD;EAEA,OAAOX,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASc,MAAMA,CAAEd,KAAK,GAAG,KAAK,EAAEC,MAAM,EAAG;EACxC,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,MAAM;MACV,OAAO,IAAI;IACZ,KAAK,OAAO;MACX,OAAO,KAAK;EACd;EAEA,OAAOF,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,OAAOA,CAAEN,KAAK,GAAG,MAAM,EAAEC,MAAM,EAAG;EAC1C,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,aAAa;MACjB,OAAOD,MAAM,CAACK,OAAO;EACvB;EAEA,OAAON,KAAK;AACb;AAEA,MAAMe,OAAO,GAAGjB,eAAe,CAAE;EAChCC,QAAQ;EACRa,cAAc;EACdE,MAAM;EACNR;AACD,CAAE,CAAC;AAEH,eAAeS,OAAO","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/commands",
|
|
3
|
-
"version": "1.29.0",
|
|
3
|
+
"version": "1.29.1-next.f34ab90e9.0",
|
|
4
4
|
"description": "Handles the commands menu.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
"wpScript": true,
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@babel/runtime": "7.25.7",
|
|
32
|
-
"@wordpress/components": "^30.2.0",
|
|
33
|
-
"@wordpress/data": "^10.29.0",
|
|
34
|
-
"@wordpress/element": "^6.29.0",
|
|
35
|
-
"@wordpress/i18n": "^6.2.0",
|
|
36
|
-
"@wordpress/icons": "^10.29.0",
|
|
37
|
-
"@wordpress/keyboard-shortcuts": "^5.29.0",
|
|
38
|
-
"@wordpress/private-apis": "^1.29.0",
|
|
32
|
+
"@wordpress/components": "^30.2.1-next.f34ab90e9.0",
|
|
33
|
+
"@wordpress/data": "^10.29.1-next.f34ab90e9.0",
|
|
34
|
+
"@wordpress/element": "^6.29.1-next.f34ab90e9.0",
|
|
35
|
+
"@wordpress/i18n": "^6.2.1-next.f34ab90e9.0",
|
|
36
|
+
"@wordpress/icons": "^10.29.1-next.f34ab90e9.0",
|
|
37
|
+
"@wordpress/keyboard-shortcuts": "^5.29.1-next.f34ab90e9.0",
|
|
38
|
+
"@wordpress/private-apis": "^1.29.1-next.f34ab90e9.0",
|
|
39
39
|
"clsx": "^2.1.1",
|
|
40
40
|
"cmdk": "^1.0.0"
|
|
41
41
|
},
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "91f58004986ec6faf118825f925ac7873d171986"
|
|
50
50
|
}
|
|
@@ -50,6 +50,7 @@ function CommandMenuLoader( { name, search, hook, setLoader, close } ) {
|
|
|
50
50
|
<Command.Item
|
|
51
51
|
key={ command.name }
|
|
52
52
|
value={ command.searchLabel ?? command.label }
|
|
53
|
+
keywords={ command.keywords }
|
|
53
54
|
onSelect={ () => command.callback( { close } ) }
|
|
54
55
|
id={ command.name }
|
|
55
56
|
>
|
|
@@ -121,6 +122,7 @@ export function CommandMenuGroup( { isContextual, search, setLoader, close } ) {
|
|
|
121
122
|
<Command.Item
|
|
122
123
|
key={ command.name }
|
|
123
124
|
value={ command.searchLabel ?? command.label }
|
|
125
|
+
keywords={ command.keywords }
|
|
124
126
|
onSelect={ () => command.callback( { close } ) }
|
|
125
127
|
id={ command.name }
|
|
126
128
|
>
|
package/src/hooks/use-command.js
CHANGED
|
@@ -47,6 +47,7 @@ export default function useCommand( command ) {
|
|
|
47
47
|
label: command.label,
|
|
48
48
|
searchLabel: command.searchLabel,
|
|
49
49
|
icon: command.icon,
|
|
50
|
+
keywords: command.keywords,
|
|
50
51
|
callback: ( ...args ) => currentCallbackRef.current( ...args ),
|
|
51
52
|
} );
|
|
52
53
|
return () => {
|
|
@@ -58,6 +59,7 @@ export default function useCommand( command ) {
|
|
|
58
59
|
command.searchLabel,
|
|
59
60
|
command.icon,
|
|
60
61
|
command.context,
|
|
62
|
+
command.keywords,
|
|
61
63
|
command.disabled,
|
|
62
64
|
registerCommand,
|
|
63
65
|
unregisterCommand,
|
package/src/store/actions.js
CHANGED