@wordpress/keycodes 3.49.0 → 3.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.51.0 (2024-02-09)
6
+
7
+ ## 3.50.0 (2024-01-24)
8
+
5
9
  ## 3.49.0 (2024-01-10)
6
10
 
7
11
  ## 3.48.0 (2023-12-13)
package/build/index.js CHANGED
@@ -57,122 +57,102 @@ var _platform = require("./platform");
57
57
  /**
58
58
  * Keycode for BACKSPACE key.
59
59
  */
60
- const BACKSPACE = 8;
60
+ const BACKSPACE = exports.BACKSPACE = 8;
61
61
 
62
62
  /**
63
63
  * Keycode for TAB key.
64
64
  */
65
- exports.BACKSPACE = BACKSPACE;
66
- const TAB = 9;
65
+ const TAB = exports.TAB = 9;
67
66
 
68
67
  /**
69
68
  * Keycode for ENTER key.
70
69
  */
71
- exports.TAB = TAB;
72
- const ENTER = 13;
70
+ const ENTER = exports.ENTER = 13;
73
71
 
74
72
  /**
75
73
  * Keycode for ESCAPE key.
76
74
  */
77
- exports.ENTER = ENTER;
78
- const ESCAPE = 27;
75
+ const ESCAPE = exports.ESCAPE = 27;
79
76
 
80
77
  /**
81
78
  * Keycode for SPACE key.
82
79
  */
83
- exports.ESCAPE = ESCAPE;
84
- const SPACE = 32;
80
+ const SPACE = exports.SPACE = 32;
85
81
 
86
82
  /**
87
83
  * Keycode for PAGEUP key.
88
84
  */
89
- exports.SPACE = SPACE;
90
- const PAGEUP = 33;
85
+ const PAGEUP = exports.PAGEUP = 33;
91
86
 
92
87
  /**
93
88
  * Keycode for PAGEDOWN key.
94
89
  */
95
- exports.PAGEUP = PAGEUP;
96
- const PAGEDOWN = 34;
90
+ const PAGEDOWN = exports.PAGEDOWN = 34;
97
91
 
98
92
  /**
99
93
  * Keycode for END key.
100
94
  */
101
- exports.PAGEDOWN = PAGEDOWN;
102
- const END = 35;
95
+ const END = exports.END = 35;
103
96
 
104
97
  /**
105
98
  * Keycode for HOME key.
106
99
  */
107
- exports.END = END;
108
- const HOME = 36;
100
+ const HOME = exports.HOME = 36;
109
101
 
110
102
  /**
111
103
  * Keycode for LEFT key.
112
104
  */
113
- exports.HOME = HOME;
114
- const LEFT = 37;
105
+ const LEFT = exports.LEFT = 37;
115
106
 
116
107
  /**
117
108
  * Keycode for UP key.
118
109
  */
119
- exports.LEFT = LEFT;
120
- const UP = 38;
110
+ const UP = exports.UP = 38;
121
111
 
122
112
  /**
123
113
  * Keycode for RIGHT key.
124
114
  */
125
- exports.UP = UP;
126
- const RIGHT = 39;
115
+ const RIGHT = exports.RIGHT = 39;
127
116
 
128
117
  /**
129
118
  * Keycode for DOWN key.
130
119
  */
131
- exports.RIGHT = RIGHT;
132
- const DOWN = 40;
120
+ const DOWN = exports.DOWN = 40;
133
121
 
134
122
  /**
135
123
  * Keycode for DELETE key.
136
124
  */
137
- exports.DOWN = DOWN;
138
- const DELETE = 46;
125
+ const DELETE = exports.DELETE = 46;
139
126
 
140
127
  /**
141
128
  * Keycode for F10 key.
142
129
  */
143
- exports.DELETE = DELETE;
144
- const F10 = 121;
130
+ const F10 = exports.F10 = 121;
145
131
 
146
132
  /**
147
133
  * Keycode for ALT key.
148
134
  */
149
- exports.F10 = F10;
150
- const ALT = 'alt';
135
+ const ALT = exports.ALT = 'alt';
151
136
 
152
137
  /**
153
138
  * Keycode for CTRL key.
154
139
  */
155
- exports.ALT = ALT;
156
- const CTRL = 'ctrl';
140
+ const CTRL = exports.CTRL = 'ctrl';
157
141
 
158
142
  /**
159
143
  * Keycode for COMMAND/META key.
160
144
  */
161
- exports.CTRL = CTRL;
162
- const COMMAND = 'meta';
145
+ const COMMAND = exports.COMMAND = 'meta';
163
146
 
164
147
  /**
165
148
  * Keycode for SHIFT key.
166
149
  */
167
- exports.COMMAND = COMMAND;
168
- const SHIFT = 'shift';
150
+ const SHIFT = exports.SHIFT = 'shift';
169
151
 
170
152
  /**
171
153
  * Keycode for ZERO key.
172
154
  */
173
- exports.SHIFT = SHIFT;
174
- const ZERO = 48;
175
- exports.ZERO = ZERO;
155
+ const ZERO = exports.ZERO = 48;
176
156
  /**
177
157
  * Capitalise the first character of a string.
178
158
  * @param {string} string String to capitalise.
@@ -202,7 +182,7 @@ function mapValues(object, mapFn) {
202
182
  *
203
183
  * @type {WPModifierHandler< ( isApple: () => boolean ) => WPModifierPart[]>}
204
184
  */
205
- const modifiers = {
185
+ const modifiers = exports.modifiers = {
206
186
  primary: _isApple => _isApple() ? [COMMAND] : [CTRL],
207
187
  primaryShift: _isApple => _isApple() ? [SHIFT, COMMAND] : [CTRL, SHIFT],
208
188
  primaryAlt: _isApple => _isApple() ? [ALT, COMMAND] : [CTRL, ALT],
@@ -231,12 +211,10 @@ const modifiers = {
231
211
  * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to raw
232
212
  * shortcuts.
233
213
  */
234
- exports.modifiers = modifiers;
235
- const rawShortcut = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
236
- return (/** @type {WPKeyHandler<string>} */(character, _isApple = _platform.isAppleOS) => {
237
- return [...modifier(_isApple), character.toLowerCase()].join('+');
238
- }
239
- );
214
+ const rawShortcut = exports.rawShortcut = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
215
+ return /** @type {WPKeyHandler<string>} */(character, _isApple = _platform.isAppleOS) => {
216
+ return [...modifier(_isApple), character.toLowerCase()].join('+');
217
+ };
240
218
  });
241
219
 
242
220
  /**
@@ -252,29 +230,27 @@ const rawShortcut = mapValues(modifiers, ( /** @type {WPModifier} */modifier) =>
252
230
  * @type {WPModifierHandler<WPKeyHandler<string[]>>} Keyed map of functions to
253
231
  * shortcut sequences.
254
232
  */
255
- exports.rawShortcut = rawShortcut;
256
- const displayShortcutList = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
257
- return (/** @type {WPKeyHandler<string[]>} */(character, _isApple = _platform.isAppleOS) => {
258
- const isApple = _isApple();
259
- const replacementKeyMap = {
260
- [ALT]: isApple ? '' : 'Alt',
261
- [CTRL]: isApple ? '' : 'Ctrl',
262
- // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
263
- [COMMAND]: '',
264
- [SHIFT]: isApple ? '⇧' : 'Shift'
265
- };
266
- const modifierKeys = modifier(_isApple).reduce((accumulator, key) => {
267
- var _replacementKeyMap$ke;
268
- const replacementKey = (_replacementKeyMap$ke = replacementKeyMap[key]) !== null && _replacementKeyMap$ke !== void 0 ? _replacementKeyMap$ke : key;
269
- // If on the Mac, adhere to platform convention and don't show plus between keys.
270
- if (isApple) {
271
- return [...accumulator, replacementKey];
272
- }
273
- return [...accumulator, replacementKey, '+'];
274
- }, /** @type {string[]} */[]);
275
- return [...modifierKeys, capitaliseFirstCharacter(character)];
276
- }
277
- );
233
+ const displayShortcutList = exports.displayShortcutList = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
234
+ return /** @type {WPKeyHandler<string[]>} */(character, _isApple = _platform.isAppleOS) => {
235
+ const isApple = _isApple();
236
+ const replacementKeyMap = {
237
+ [ALT]: isApple ? '⌥' : 'Alt',
238
+ [CTRL]: isApple ? '' : 'Ctrl',
239
+ // Make sureis the U+2303 UP ARROWHEAD unicode character and not the caret character.
240
+ [COMMAND]: '⌘',
241
+ [SHIFT]: isApple ? '' : 'Shift'
242
+ };
243
+ const modifierKeys = modifier(_isApple).reduce((accumulator, key) => {
244
+ var _replacementKeyMap$ke;
245
+ const replacementKey = (_replacementKeyMap$ke = replacementKeyMap[key]) !== null && _replacementKeyMap$ke !== void 0 ? _replacementKeyMap$ke : key;
246
+ // If on the Mac, adhere to platform convention and don't show plus between keys.
247
+ if (isApple) {
248
+ return [...accumulator, replacementKey];
249
+ }
250
+ return [...accumulator, replacementKey, '+'];
251
+ }, /** @type {string[]} */[]);
252
+ return [...modifierKeys, capitaliseFirstCharacter(character)];
253
+ };
278
254
  });
279
255
 
280
256
  /**
@@ -290,10 +266,8 @@ const displayShortcutList = mapValues(modifiers, ( /** @type {WPModifier} */modi
290
266
  * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to
291
267
  * display shortcuts.
292
268
  */
293
- exports.displayShortcutList = displayShortcutList;
294
- const displayShortcut = mapValues(displayShortcutList, ( /** @type {WPKeyHandler<string[]>} */shortcutList) => {
295
- return (/** @type {WPKeyHandler<string>} */(character, _isApple = _platform.isAppleOS) => shortcutList(character, _isApple).join('')
296
- );
269
+ const displayShortcut = exports.displayShortcut = mapValues(displayShortcutList, ( /** @type {WPKeyHandler<string[]>} */shortcutList) => {
270
+ return /** @type {WPKeyHandler<string>} */(character, _isApple = _platform.isAppleOS) => shortcutList(character, _isApple).join('');
297
271
  });
298
272
 
299
273
  /**
@@ -310,31 +284,29 @@ const displayShortcut = mapValues(displayShortcutList, ( /** @type {WPKeyHandler
310
284
  * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to
311
285
  * shortcut ARIA labels.
312
286
  */
313
- exports.displayShortcut = displayShortcut;
314
- const shortcutAriaLabel = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
315
- return (/** @type {WPKeyHandler<string>} */(character, _isApple = _platform.isAppleOS) => {
316
- const isApple = _isApple();
317
- /** @type {Record<string,string>} */
318
- const replacementKeyMap = {
319
- [SHIFT]: 'Shift',
320
- [COMMAND]: isApple ? 'Command' : 'Control',
321
- [CTRL]: 'Control',
322
- [ALT]: isApple ? 'Option' : 'Alt',
323
- /* translators: comma as in the character ',' */
324
- ',': (0, _i18n.__)('Comma'),
325
- /* translators: period as in the character '.' */
326
- '.': (0, _i18n.__)('Period'),
327
- /* translators: backtick as in the character '`' */
328
- '`': (0, _i18n.__)('Backtick'),
329
- /* translators: tilde as in the character '~' */
330
- '~': (0, _i18n.__)('Tilde')
331
- };
332
- return [...modifier(_isApple), character].map(key => {
333
- var _replacementKeyMap$ke2;
334
- return capitaliseFirstCharacter((_replacementKeyMap$ke2 = replacementKeyMap[key]) !== null && _replacementKeyMap$ke2 !== void 0 ? _replacementKeyMap$ke2 : key);
335
- }).join(isApple ? ' ' : ' + ');
336
- }
337
- );
287
+ const shortcutAriaLabel = exports.shortcutAriaLabel = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
288
+ return /** @type {WPKeyHandler<string>} */(character, _isApple = _platform.isAppleOS) => {
289
+ const isApple = _isApple();
290
+ /** @type {Record<string,string>} */
291
+ const replacementKeyMap = {
292
+ [SHIFT]: 'Shift',
293
+ [COMMAND]: isApple ? 'Command' : 'Control',
294
+ [CTRL]: 'Control',
295
+ [ALT]: isApple ? 'Option' : 'Alt',
296
+ /* translators: comma as in the character ',' */
297
+ ',': (0, _i18n.__)('Comma'),
298
+ /* translators: period as in the character '.' */
299
+ '.': (0, _i18n.__)('Period'),
300
+ /* translators: backtick as in the character '`' */
301
+ '`': (0, _i18n.__)('Backtick'),
302
+ /* translators: tilde as in the character '~' */
303
+ '~': (0, _i18n.__)('Tilde')
304
+ };
305
+ return [...modifier(_isApple), character].map(key => {
306
+ var _replacementKeyMap$ke2;
307
+ return capitaliseFirstCharacter((_replacementKeyMap$ke2 = replacementKeyMap[key]) !== null && _replacementKeyMap$ke2 !== void 0 ? _replacementKeyMap$ke2 : key);
308
+ }).join(isApple ? ' ' : ' + ');
309
+ };
338
310
  });
339
311
 
340
312
  /**
@@ -345,11 +317,9 @@ const shortcutAriaLabel = mapValues(modifiers, ( /** @type {WPModifier} */modifi
345
317
  *
346
318
  * @return {Array<WPModifierPart>} Active modifier constants.
347
319
  */
348
- exports.shortcutAriaLabel = shortcutAriaLabel;
349
320
  function getEventModifiers(event) {
350
- return (/** @type {WPModifierPart[]} */[ALT, CTRL, COMMAND, SHIFT].filter(key => event[/** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */
351
- `${key}Key`])
352
- );
321
+ return /** @type {WPModifierPart[]} */[ALT, CTRL, COMMAND, SHIFT].filter(key => event[( /** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */
322
+ `${key}Key`)]);
353
323
  }
354
324
 
355
325
  /**
@@ -366,47 +336,45 @@ function getEventModifiers(event) {
366
336
  * @type {WPModifierHandler<WPEventKeyHandler>} Keyed map of functions
367
337
  * to match events.
368
338
  */
369
- const isKeyboardEvent = mapValues(modifiers, ( /** @type {WPModifier} */getModifiers) => {
370
- return (/** @type {WPEventKeyHandler} */(event, character, _isApple = _platform.isAppleOS) => {
371
- const mods = getModifiers(_isApple);
372
- const eventMods = getEventModifiers(event);
373
- /** @type {Record<string,string>} */
374
- const replacementWithShiftKeyMap = {
375
- Comma: ',',
376
- Backslash: '\\',
377
- // Windows returns `\` for both IntlRo and IntlYen.
378
- IntlRo: '\\',
379
- IntlYen: '\\'
380
- };
381
- const modsDiff = mods.filter(mod => !eventMods.includes(mod));
382
- const eventModsDiff = eventMods.filter(mod => !mods.includes(mod));
383
- if (modsDiff.length > 0 || eventModsDiff.length > 0) {
384
- return false;
385
- }
386
- let key = event.key.toLowerCase();
387
- if (!character) {
388
- return mods.includes( /** @type {WPModifierPart} */key);
389
- }
390
- if (event.altKey && character.length === 1) {
391
- key = String.fromCharCode(event.keyCode).toLowerCase();
392
- }
339
+ const isKeyboardEvent = exports.isKeyboardEvent = mapValues(modifiers, ( /** @type {WPModifier} */getModifiers) => {
340
+ return /** @type {WPEventKeyHandler} */(event, character, _isApple = _platform.isAppleOS) => {
341
+ const mods = getModifiers(_isApple);
342
+ const eventMods = getEventModifiers(event);
343
+ /** @type {Record<string,string>} */
344
+ const replacementWithShiftKeyMap = {
345
+ Comma: ',',
346
+ Backslash: '\\',
347
+ // Windows returns `\` for both IntlRo and IntlYen.
348
+ IntlRo: '\\',
349
+ IntlYen: '\\'
350
+ };
351
+ const modsDiff = mods.filter(mod => !eventMods.includes(mod));
352
+ const eventModsDiff = eventMods.filter(mod => !mods.includes(mod));
353
+ if (modsDiff.length > 0 || eventModsDiff.length > 0) {
354
+ return false;
355
+ }
356
+ let key = event.key.toLowerCase();
357
+ if (!character) {
358
+ return mods.includes( /** @type {WPModifierPart} */key);
359
+ }
360
+ if (event.altKey && character.length === 1) {
361
+ key = String.fromCharCode(event.keyCode).toLowerCase();
362
+ }
393
363
 
394
- // `event.key` returns the value of the key pressed, taking into the state of
395
- // modifier keys such as `Shift`. If the shift key is pressed, a different
396
- // value may be returned depending on the keyboard layout. It is necessary to
397
- // convert to the physical key value that don't take into account keyboard
398
- // layout or modifier key state.
399
- if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
400
- key = replacementWithShiftKeyMap[event.code];
401
- }
364
+ // `event.key` returns the value of the key pressed, taking into the state of
365
+ // modifier keys such as `Shift`. If the shift key is pressed, a different
366
+ // value may be returned depending on the keyboard layout. It is necessary to
367
+ // convert to the physical key value that don't take into account keyboard
368
+ // layout or modifier key state.
369
+ if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
370
+ key = replacementWithShiftKeyMap[event.code];
371
+ }
402
372
 
403
- // For backwards compatibility.
404
- if (character === 'del') {
405
- character = 'delete';
406
- }
407
- return key === character.toLowerCase();
373
+ // For backwards compatibility.
374
+ if (character === 'del') {
375
+ character = 'delete';
408
376
  }
409
- );
377
+ return key === character.toLowerCase();
378
+ };
410
379
  });
411
- exports.isKeyboardEvent = isKeyboardEvent;
412
380
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_platform","BACKSPACE","exports","TAB","ENTER","ESCAPE","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","F10","ALT","CTRL","COMMAND","SHIFT","ZERO","capitaliseFirstCharacter","string","length","toUpperCase","charAt","slice","mapValues","object","mapFn","Object","fromEntries","entries","map","key","value","modifiers","primary","_isApple","primaryShift","primaryAlt","secondary","access","ctrl","alt","ctrlShift","shift","shiftAlt","undefined","rawShortcut","modifier","character","isAppleOS","toLowerCase","join","displayShortcutList","isApple","replacementKeyMap","modifierKeys","reduce","accumulator","_replacementKeyMap$ke","replacementKey","displayShortcut","shortcutList","shortcutAriaLabel","__","_replacementKeyMap$ke2","getEventModifiers","event","filter","isKeyboardEvent","getModifiers","mods","eventMods","replacementWithShiftKeyMap","Comma","Backslash","IntlRo","IntlYen","modsDiff","mod","includes","eventModsDiff","altKey","String","fromCharCode","keyCode","shiftKey","code"],"sources":["@wordpress/keycodes/src/index.js"],"sourcesContent":["/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isAppleOS } from './platform';\n\n/** @typedef {typeof ALT | CTRL | COMMAND | SHIFT } WPModifierPart */\n\n/** @typedef {'primary' | 'primaryShift' | 'primaryAlt' | 'secondary' | 'access' | 'ctrl' | 'alt' | 'ctrlShift' | 'shift' | 'shiftAlt' | 'undefined'} WPKeycodeModifier */\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n *\n * @template T\n *\n * @typedef {Record<WPKeycodeModifier, T>} WPModifierHandler\n */\n\n/**\n * @template T\n *\n * @typedef {(character: string, isApple?: () => boolean) => T} WPKeyHandler\n */\n/** @typedef {(event: import('react').KeyboardEvent<HTMLElement> | KeyboardEvent, character: string, isApple?: () => boolean) => boolean} WPEventKeyHandler */\n\n/** @typedef {( isApple: () => boolean ) => WPModifierPart[]} WPModifier */\n\n/**\n * Keycode for BACKSPACE key.\n */\nexport const BACKSPACE = 8;\n\n/**\n * Keycode for TAB key.\n */\nexport const TAB = 9;\n\n/**\n * Keycode for ENTER key.\n */\nexport const ENTER = 13;\n\n/**\n * Keycode for ESCAPE key.\n */\nexport const ESCAPE = 27;\n\n/**\n * Keycode for SPACE key.\n */\nexport const SPACE = 32;\n\n/**\n * Keycode for PAGEUP key.\n */\nexport const PAGEUP = 33;\n\n/**\n * Keycode for PAGEDOWN key.\n */\nexport const PAGEDOWN = 34;\n\n/**\n * Keycode for END key.\n */\nexport const END = 35;\n\n/**\n * Keycode for HOME key.\n */\nexport const HOME = 36;\n\n/**\n * Keycode for LEFT key.\n */\nexport const LEFT = 37;\n\n/**\n * Keycode for UP key.\n */\nexport const UP = 38;\n\n/**\n * Keycode for RIGHT key.\n */\nexport const RIGHT = 39;\n\n/**\n * Keycode for DOWN key.\n */\nexport const DOWN = 40;\n\n/**\n * Keycode for DELETE key.\n */\nexport const DELETE = 46;\n\n/**\n * Keycode for F10 key.\n */\nexport const F10 = 121;\n\n/**\n * Keycode for ALT key.\n */\nexport const ALT = 'alt';\n\n/**\n * Keycode for CTRL key.\n */\nexport const CTRL = 'ctrl';\n\n/**\n * Keycode for COMMAND/META key.\n */\nexport const COMMAND = 'meta';\n\n/**\n * Keycode for SHIFT key.\n */\nexport const SHIFT = 'shift';\n\n/**\n * Keycode for ZERO key.\n */\nexport const ZERO = 48;\n\nexport { isAppleOS };\n\n/**\n * Capitalise the first character of a string.\n * @param {string} string String to capitalise.\n * @return {string} Capitalised string.\n */\nfunction capitaliseFirstCharacter( string ) {\n\treturn string.length < 2\n\t\t? string.toUpperCase()\n\t\t: string.charAt( 0 ).toUpperCase() + string.slice( 1 );\n}\n\n/**\n * Map the values of an object with a specified callback and return the result object.\n *\n * @template {{ [s: string]: any; } | ArrayLike<any>} T\n *\n * @param {T} object Object to map values of.\n * @param {( value: any ) => any} mapFn Mapping function\n *\n * @return {any} Active modifier constants.\n */\nfunction mapValues( object, mapFn ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tmapFn( value ),\n\t\t] )\n\t);\n}\n\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n *\n * @type {WPModifierHandler< ( isApple: () => boolean ) => WPModifierPart[]>}\n */\nexport const modifiers = {\n\tprimary: ( _isApple ) => ( _isApple() ? [ COMMAND ] : [ CTRL ] ),\n\tprimaryShift: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, COMMAND ] : [ CTRL, SHIFT ],\n\tprimaryAlt: ( _isApple ) =>\n\t\t_isApple() ? [ ALT, COMMAND ] : [ CTRL, ALT ],\n\tsecondary: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, ALT, COMMAND ] : [ CTRL, SHIFT, ALT ],\n\taccess: ( _isApple ) => ( _isApple() ? [ CTRL, ALT ] : [ SHIFT, ALT ] ),\n\tctrl: () => [ CTRL ],\n\talt: () => [ ALT ],\n\tctrlShift: () => [ CTRL, SHIFT ],\n\tshift: () => [ SHIFT ],\n\tshiftAlt: () => [ SHIFT, ALT ],\n\tundefined: () => [],\n};\n\n/**\n * An object that contains functions to get raw shortcuts.\n *\n * These are intended for user with the KeyboardShortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * rawShortcut.primary( 'm' )\n * // \"meta+m\"\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to raw\n * shortcuts.\n */\nexport const rawShortcut = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\treturn [ ...modifier( _isApple ), character.toLowerCase() ].join(\n\t\t\t\t'+'\n\t\t\t);\n\t\t};\n\t}\n);\n\n/**\n * Return an array of the parts of a keyboard shortcut chord for display.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcutList.primary( 'm' );\n * // [ \"⌘\", \"M\" ]\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string[]>>} Keyed map of functions to\n * shortcut sequences.\n */\nexport const displayShortcutList = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string[]>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ ALT ]: isApple ? '⌥' : 'Alt',\n\t\t\t\t[ CTRL ]: isApple ? '⌃' : 'Ctrl', // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.\n\t\t\t\t[ COMMAND ]: '⌘',\n\t\t\t\t[ SHIFT ]: isApple ? '⇧' : 'Shift',\n\t\t\t};\n\n\t\t\tconst modifierKeys = modifier( _isApple ).reduce(\n\t\t\t\t( accumulator, key ) => {\n\t\t\t\t\tconst replacementKey = replacementKeyMap[ key ] ?? key;\n\t\t\t\t\t// If on the Mac, adhere to platform convention and don't show plus between keys.\n\t\t\t\t\tif ( isApple ) {\n\t\t\t\t\t\treturn [ ...accumulator, replacementKey ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [ ...accumulator, replacementKey, '+' ];\n\t\t\t\t},\n\t\t\t\t/** @type {string[]} */ ( [] )\n\t\t\t);\n\n\t\t\treturn [ ...modifierKeys, capitaliseFirstCharacter( character ) ];\n\t\t};\n\t}\n);\n\n/**\n * An object that contains functions to display shortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcut.primary( 'm' );\n * // \"⌘M\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * display shortcuts.\n */\nexport const displayShortcut = mapValues(\n\tdisplayShortcutList,\n\t( /** @type {WPKeyHandler<string[]>} */ shortcutList ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => shortcutList( character, _isApple ).join( '' );\n\t}\n);\n\n/**\n * An object that contains functions to return an aria label for a keyboard\n * shortcut.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * shortcutAriaLabel.primary( '.' );\n * // \"Command + Period\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * shortcut ARIA labels.\n */\nexport const shortcutAriaLabel = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ SHIFT ]: 'Shift',\n\t\t\t\t[ COMMAND ]: isApple ? 'Command' : 'Control',\n\t\t\t\t[ CTRL ]: 'Control',\n\t\t\t\t[ ALT ]: isApple ? 'Option' : 'Alt',\n\t\t\t\t/* translators: comma as in the character ',' */\n\t\t\t\t',': __( 'Comma' ),\n\t\t\t\t/* translators: period as in the character '.' */\n\t\t\t\t'.': __( 'Period' ),\n\t\t\t\t/* translators: backtick as in the character '`' */\n\t\t\t\t'`': __( 'Backtick' ),\n\t\t\t\t/* translators: tilde as in the character '~' */\n\t\t\t\t'~': __( 'Tilde' ),\n\t\t\t};\n\n\t\t\treturn [ ...modifier( _isApple ), character ]\n\t\t\t\t.map( ( key ) =>\n\t\t\t\t\tcapitaliseFirstCharacter( replacementKeyMap[ key ] ?? key )\n\t\t\t\t)\n\t\t\t\t.join( isApple ? ' ' : ' + ' );\n\t\t};\n\t}\n);\n\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param {import('react').KeyboardEvent<HTMLElement> | KeyboardEvent} event Keyboard event.\n *\n * @return {Array<WPModifierPart>} Active modifier constants.\n */\nfunction getEventModifiers( event ) {\n\treturn /** @type {WPModifierPart[]} */ ( [\n\t\tALT,\n\t\tCTRL,\n\t\tCOMMAND,\n\t\tSHIFT,\n\t] ).filter(\n\t\t( key ) =>\n\t\t\tevent[\n\t\t\t\t/** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */ (\n\t\t\t\t\t`${ key }Key`\n\t\t\t\t)\n\t\t\t]\n\t);\n}\n\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n *\n * @example\n * ```js\n * // Assuming an event for ⌘M key press:\n * isKeyboardEvent.primary( event, 'm' );\n * // true\n * ```\n *\n * @type {WPModifierHandler<WPEventKeyHandler>} Keyed map of functions\n * to match events.\n */\nexport const isKeyboardEvent = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ getModifiers ) => {\n\t\treturn /** @type {WPEventKeyHandler} */ (\n\t\t\tevent,\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst mods = getModifiers( _isApple );\n\t\t\tconst eventMods = getEventModifiers( event );\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementWithShiftKeyMap = {\n\t\t\t\tComma: ',',\n\t\t\t\tBackslash: '\\\\',\n\t\t\t\t// Windows returns `\\` for both IntlRo and IntlYen.\n\t\t\t\tIntlRo: '\\\\',\n\t\t\t\tIntlYen: '\\\\',\n\t\t\t};\n\n\t\t\tconst modsDiff = mods.filter(\n\t\t\t\t( mod ) => ! eventMods.includes( mod )\n\t\t\t);\n\t\t\tconst eventModsDiff = eventMods.filter(\n\t\t\t\t( mod ) => ! mods.includes( mod )\n\t\t\t);\n\n\t\t\tif ( modsDiff.length > 0 || eventModsDiff.length > 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key = event.key.toLowerCase();\n\n\t\t\tif ( ! character ) {\n\t\t\t\treturn mods.includes( /** @type {WPModifierPart} */ ( key ) );\n\t\t\t}\n\n\t\t\tif ( event.altKey && character.length === 1 ) {\n\t\t\t\tkey = String.fromCharCode( event.keyCode ).toLowerCase();\n\t\t\t}\n\n\t\t\t// `event.key` returns the value of the key pressed, taking into the state of\n\t\t\t// modifier keys such as `Shift`. If the shift key is pressed, a different\n\t\t\t// value may be returned depending on the keyboard layout. It is necessary to\n\t\t\t// convert to the physical key value that don't take into account keyboard\n\t\t\t// layout or modifier key state.\n\t\t\tif (\n\t\t\t\tevent.shiftKey &&\n\t\t\t\tcharacter.length === 1 &&\n\t\t\t\treplacementWithShiftKeyMap[ event.code ]\n\t\t\t) {\n\t\t\t\tkey = replacementWithShiftKeyMap[ event.code ];\n\t\t\t}\n\n\t\t\t// For backwards compatibility.\n\t\t\tif ( character === 'del' ) {\n\t\t\t\tcharacter = 'delete';\n\t\t\t}\n\n\t\t\treturn key === character.toLowerCase();\n\t\t};\n\t}\n);\n"],"mappings":";;;;;;;;;;;;;AAcA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,SAAA,GAAAD,OAAA;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACO,MAAME,SAAS,GAAG,CAAC;;AAE1B;AACA;AACA;AAFAC,OAAA,CAAAD,SAAA,GAAAA,SAAA;AAGO,MAAME,GAAG,GAAG,CAAC;;AAEpB;AACA;AACA;AAFAD,OAAA,CAAAC,GAAA,GAAAA,GAAA;AAGO,MAAMC,KAAK,GAAG,EAAE;;AAEvB;AACA;AACA;AAFAF,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAGO,MAAMC,MAAM,GAAG,EAAE;;AAExB;AACA;AACA;AAFAH,OAAA,CAAAG,MAAA,GAAAA,MAAA;AAGO,MAAMC,KAAK,GAAG,EAAE;;AAEvB;AACA;AACA;AAFAJ,OAAA,CAAAI,KAAA,GAAAA,KAAA;AAGO,MAAMC,MAAM,GAAG,EAAE;;AAExB;AACA;AACA;AAFAL,OAAA,CAAAK,MAAA,GAAAA,MAAA;AAGO,MAAMC,QAAQ,GAAG,EAAE;;AAE1B;AACA;AACA;AAFAN,OAAA,CAAAM,QAAA,GAAAA,QAAA;AAGO,MAAMC,GAAG,GAAG,EAAE;;AAErB;AACA;AACA;AAFAP,OAAA,CAAAO,GAAA,GAAAA,GAAA;AAGO,MAAMC,IAAI,GAAG,EAAE;;AAEtB;AACA;AACA;AAFAR,OAAA,CAAAQ,IAAA,GAAAA,IAAA;AAGO,MAAMC,IAAI,GAAG,EAAE;;AAEtB;AACA;AACA;AAFAT,OAAA,CAAAS,IAAA,GAAAA,IAAA;AAGO,MAAMC,EAAE,GAAG,EAAE;;AAEpB;AACA;AACA;AAFAV,OAAA,CAAAU,EAAA,GAAAA,EAAA;AAGO,MAAMC,KAAK,GAAG,EAAE;;AAEvB;AACA;AACA;AAFAX,OAAA,CAAAW,KAAA,GAAAA,KAAA;AAGO,MAAMC,IAAI,GAAG,EAAE;;AAEtB;AACA;AACA;AAFAZ,OAAA,CAAAY,IAAA,GAAAA,IAAA;AAGO,MAAMC,MAAM,GAAG,EAAE;;AAExB;AACA;AACA;AAFAb,OAAA,CAAAa,MAAA,GAAAA,MAAA;AAGO,MAAMC,GAAG,GAAG,GAAG;;AAEtB;AACA;AACA;AAFAd,OAAA,CAAAc,GAAA,GAAAA,GAAA;AAGO,MAAMC,GAAG,GAAG,KAAK;;AAExB;AACA;AACA;AAFAf,OAAA,CAAAe,GAAA,GAAAA,GAAA;AAGO,MAAMC,IAAI,GAAG,MAAM;;AAE1B;AACA;AACA;AAFAhB,OAAA,CAAAgB,IAAA,GAAAA,IAAA;AAGO,MAAMC,OAAO,GAAG,MAAM;;AAE7B;AACA;AACA;AAFAjB,OAAA,CAAAiB,OAAA,GAAAA,OAAA;AAGO,MAAMC,KAAK,GAAG,OAAO;;AAE5B;AACA;AACA;AAFAlB,OAAA,CAAAkB,KAAA,GAAAA,KAAA;AAGO,MAAMC,IAAI,GAAG,EAAE;AAACnB,OAAA,CAAAmB,IAAA,GAAAA,IAAA;AAIvB;AACA;AACA;AACA;AACA;AACA,SAASC,wBAAwBA,CAAEC,MAAM,EAAG;EAC3C,OAAOA,MAAM,CAACC,MAAM,GAAG,CAAC,GACrBD,MAAM,CAACE,WAAW,CAAC,CAAC,GACpBF,MAAM,CAACG,MAAM,CAAE,CAAE,CAAC,CAACD,WAAW,CAAC,CAAC,GAAGF,MAAM,CAACI,KAAK,CAAE,CAAE,CAAC;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAEC,MAAM,EAAEC,KAAK,EAAG;EACnC,OAAOC,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACE,OAAO,CAAEJ,MAAO,CAAC,CAACK,GAAG,CAAE,CAAE,CAAEC,GAAG,EAAEC,KAAK,CAAE,KAAM,CACnDD,GAAG,EACHL,KAAK,CAAEM,KAAM,CAAC,CACb,CACH,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAG;EACxBC,OAAO,EAAIC,QAAQ,IAAQA,QAAQ,CAAC,CAAC,GAAG,CAAEpB,OAAO,CAAE,GAAG,CAAED,IAAI,CAAI;EAChEsB,YAAY,EAAID,QAAQ,IACvBA,QAAQ,CAAC,CAAC,GAAG,CAAEnB,KAAK,EAAED,OAAO,CAAE,GAAG,CAAED,IAAI,EAAEE,KAAK,CAAE;EAClDqB,UAAU,EAAIF,QAAQ,IACrBA,QAAQ,CAAC,CAAC,GAAG,CAAEtB,GAAG,EAAEE,OAAO,CAAE,GAAG,CAAED,IAAI,EAAED,GAAG,CAAE;EAC9CyB,SAAS,EAAIH,QAAQ,IACpBA,QAAQ,CAAC,CAAC,GAAG,CAAEnB,KAAK,EAAEH,GAAG,EAAEE,OAAO,CAAE,GAAG,CAAED,IAAI,EAAEE,KAAK,EAAEH,GAAG,CAAE;EAC5D0B,MAAM,EAAIJ,QAAQ,IAAQA,QAAQ,CAAC,CAAC,GAAG,CAAErB,IAAI,EAAED,GAAG,CAAE,GAAG,CAAEG,KAAK,EAAEH,GAAG,CAAI;EACvE2B,IAAI,EAAEA,CAAA,KAAM,CAAE1B,IAAI,CAAE;EACpB2B,GAAG,EAAEA,CAAA,KAAM,CAAE5B,GAAG,CAAE;EAClB6B,SAAS,EAAEA,CAAA,KAAM,CAAE5B,IAAI,EAAEE,KAAK,CAAE;EAChC2B,KAAK,EAAEA,CAAA,KAAM,CAAE3B,KAAK,CAAE;EACtB4B,QAAQ,EAAEA,CAAA,KAAM,CAAE5B,KAAK,EAAEH,GAAG,CAAE;EAC9BgC,SAAS,EAAEA,CAAA,KAAM;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA/C,OAAA,CAAAmC,SAAA,GAAAA,SAAA;AAeO,MAAMa,WAAW,GAAGtB,SAAS,CACnCS,SAAS,EACT,EAAE,yBAA0Bc,QAAQ,KAAM;EACzC,OAAO,oCAAoC,CAC1CC,SAAS,EACTb,QAAQ,GAAGc,mBAAS,KAChB;MACJ,OAAO,CAAE,GAAGF,QAAQ,CAAEZ,QAAS,CAAC,EAAEa,SAAS,CAACE,WAAW,CAAC,CAAC,CAAE,CAACC,IAAI,CAC/D,GACD,CAAC;IACF;EAAC;AACF,CACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZArD,OAAA,CAAAgD,WAAA,GAAAA,WAAA;AAaO,MAAMM,mBAAmB,GAAG5B,SAAS,CAC3CS,SAAS,EACT,EAAE,yBAA0Bc,QAAQ,KAAM;EACzC,OAAO,sCAAsC,CAC5CC,SAAS,EACTb,QAAQ,GAAGc,mBAAS,KAChB;MACJ,MAAMI,OAAO,GAAGlB,QAAQ,CAAC,CAAC;MAC1B,MAAMmB,iBAAiB,GAAG;QACzB,CAAEzC,GAAG,GAAIwC,OAAO,GAAG,GAAG,GAAG,KAAK;QAC9B,CAAEvC,IAAI,GAAIuC,OAAO,GAAG,GAAG,GAAG,MAAM;QAAE;QAClC,CAAEtC,OAAO,GAAI,GAAG;QAChB,CAAEC,KAAK,GAAIqC,OAAO,GAAG,GAAG,GAAG;MAC5B,CAAC;MAED,MAAME,YAAY,GAAGR,QAAQ,CAAEZ,QAAS,CAAC,CAACqB,MAAM,CAC/C,CAAEC,WAAW,EAAE1B,GAAG,KAAM;QAAA,IAAA2B,qBAAA;QACvB,MAAMC,cAAc,IAAAD,qBAAA,GAAGJ,iBAAiB,CAAEvB,GAAG,CAAE,cAAA2B,qBAAA,cAAAA,qBAAA,GAAI3B,GAAG;QACtD;QACA,IAAKsB,OAAO,EAAG;UACd,OAAO,CAAE,GAAGI,WAAW,EAAEE,cAAc,CAAE;QAC1C;QAEA,OAAO,CAAE,GAAGF,WAAW,EAAEE,cAAc,EAAE,GAAG,CAAE;MAC/C,CAAC,EACD,uBAA0B,EAC3B,CAAC;MAED,OAAO,CAAE,GAAGJ,YAAY,EAAErC,wBAAwB,CAAE8B,SAAU,CAAC,CAAE;IAClE;EAAC;AACF,CACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZAlD,OAAA,CAAAsD,mBAAA,GAAAA,mBAAA;AAaO,MAAMQ,eAAe,GAAGpC,SAAS,CACvC4B,mBAAmB,EACnB,EAAE,qCAAsCS,YAAY,KAAM;EACzD,OAAO,oCAAoC,CAC1Cb,SAAS,EACTb,QAAQ,GAAGc,mBAAS,KAChBY,YAAY,CAAEb,SAAS,EAAEb,QAAS,CAAC,CAACgB,IAAI,CAAE,EAAG;EAAC;AACpD,CACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbArD,OAAA,CAAA8D,eAAA,GAAAA,eAAA;AAcO,MAAME,iBAAiB,GAAGtC,SAAS,CACzCS,SAAS,EACT,EAAE,yBAA0Bc,QAAQ,KAAM;EACzC,OAAO,oCAAoC,CAC1CC,SAAS,EACTb,QAAQ,GAAGc,mBAAS,KAChB;MACJ,MAAMI,OAAO,GAAGlB,QAAQ,CAAC,CAAC;MAC1B;MACA,MAAMmB,iBAAiB,GAAG;QACzB,CAAEtC,KAAK,GAAI,OAAO;QAClB,CAAED,OAAO,GAAIsC,OAAO,GAAG,SAAS,GAAG,SAAS;QAC5C,CAAEvC,IAAI,GAAI,SAAS;QACnB,CAAED,GAAG,GAAIwC,OAAO,GAAG,QAAQ,GAAG,KAAK;QACnC;QACA,GAAG,EAAE,IAAAU,QAAE,EAAE,OAAQ,CAAC;QAClB;QACA,GAAG,EAAE,IAAAA,QAAE,EAAE,QAAS,CAAC;QACnB;QACA,GAAG,EAAE,IAAAA,QAAE,EAAE,UAAW,CAAC;QACrB;QACA,GAAG,EAAE,IAAAA,QAAE,EAAE,OAAQ;MAClB,CAAC;MAED,OAAO,CAAE,GAAGhB,QAAQ,CAAEZ,QAAS,CAAC,EAAEa,SAAS,CAAE,CAC3ClB,GAAG,CAAIC,GAAG;QAAA,IAAAiC,sBAAA;QAAA,OACV9C,wBAAwB,EAAA8C,sBAAA,GAAEV,iBAAiB,CAAEvB,GAAG,CAAE,cAAAiC,sBAAA,cAAAA,sBAAA,GAAIjC,GAAI,CAAC;MAAA,CAC5D,CAAC,CACAoB,IAAI,CAAEE,OAAO,GAAG,GAAG,GAAG,KAAM,CAAC;IAChC;EAAC;AACF,CACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAvD,OAAA,CAAAgE,iBAAA,GAAAA,iBAAA;AAQA,SAASG,iBAAiBA,CAAEC,KAAK,EAAG;EACnC,OAAO,gCAAkC,CACxCrD,GAAG,EACHC,IAAI,EACJC,OAAO,EACPC,KAAK,CACL,CAAGmD,MAAM,CACPpC,GAAG,IACJmC,KAAK,CACJ;IACE,GAAGnC,GAAK,KAAI,CAGjB;EAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMqC,eAAe,GAAG5C,SAAS,CACvCS,SAAS,EACT,EAAE,yBAA0BoC,YAAY,KAAM;EAC7C,OAAO,iCAAiC,CACvCH,KAAK,EACLlB,SAAS,EACTb,QAAQ,GAAGc,mBAAS,KAChB;MACJ,MAAMqB,IAAI,GAAGD,YAAY,CAAElC,QAAS,CAAC;MACrC,MAAMoC,SAAS,GAAGN,iBAAiB,CAAEC,KAAM,CAAC;MAC5C;MACA,MAAMM,0BAA0B,GAAG;QAClCC,KAAK,EAAE,GAAG;QACVC,SAAS,EAAE,IAAI;QACf;QACAC,MAAM,EAAE,IAAI;QACZC,OAAO,EAAE;MACV,CAAC;MAED,MAAMC,QAAQ,GAAGP,IAAI,CAACH,MAAM,CACzBW,GAAG,IAAM,CAAEP,SAAS,CAACQ,QAAQ,CAAED,GAAI,CACtC,CAAC;MACD,MAAME,aAAa,GAAGT,SAAS,CAACJ,MAAM,CACnCW,GAAG,IAAM,CAAER,IAAI,CAACS,QAAQ,CAAED,GAAI,CACjC,CAAC;MAED,IAAKD,QAAQ,CAACzD,MAAM,GAAG,CAAC,IAAI4D,aAAa,CAAC5D,MAAM,GAAG,CAAC,EAAG;QACtD,OAAO,KAAK;MACb;MAEA,IAAIW,GAAG,GAAGmC,KAAK,CAACnC,GAAG,CAACmB,WAAW,CAAC,CAAC;MAEjC,IAAK,CAAEF,SAAS,EAAG;QAClB,OAAOsB,IAAI,CAACS,QAAQ,EAAE,6BAAgChD,GAAM,CAAC;MAC9D;MAEA,IAAKmC,KAAK,CAACe,MAAM,IAAIjC,SAAS,CAAC5B,MAAM,KAAK,CAAC,EAAG;QAC7CW,GAAG,GAAGmD,MAAM,CAACC,YAAY,CAAEjB,KAAK,CAACkB,OAAQ,CAAC,CAAClC,WAAW,CAAC,CAAC;MACzD;;MAEA;MACA;MACA;MACA;MACA;MACA,IACCgB,KAAK,CAACmB,QAAQ,IACdrC,SAAS,CAAC5B,MAAM,KAAK,CAAC,IACtBoD,0BAA0B,CAAEN,KAAK,CAACoB,IAAI,CAAE,EACvC;QACDvD,GAAG,GAAGyC,0BAA0B,CAAEN,KAAK,CAACoB,IAAI,CAAE;MAC/C;;MAEA;MACA,IAAKtC,SAAS,KAAK,KAAK,EAAG;QAC1BA,SAAS,GAAG,QAAQ;MACrB;MAEA,OAAOjB,GAAG,KAAKiB,SAAS,CAACE,WAAW,CAAC,CAAC;IACvC;EAAC;AACF,CACD,CAAC;AAACpD,OAAA,CAAAsE,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["_i18n","require","_platform","BACKSPACE","exports","TAB","ENTER","ESCAPE","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","F10","ALT","CTRL","COMMAND","SHIFT","ZERO","capitaliseFirstCharacter","string","length","toUpperCase","charAt","slice","mapValues","object","mapFn","Object","fromEntries","entries","map","key","value","modifiers","primary","_isApple","primaryShift","primaryAlt","secondary","access","ctrl","alt","ctrlShift","shift","shiftAlt","undefined","rawShortcut","modifier","character","isAppleOS","toLowerCase","join","displayShortcutList","isApple","replacementKeyMap","modifierKeys","reduce","accumulator","_replacementKeyMap$ke","replacementKey","displayShortcut","shortcutList","shortcutAriaLabel","__","_replacementKeyMap$ke2","getEventModifiers","event","filter","isKeyboardEvent","getModifiers","mods","eventMods","replacementWithShiftKeyMap","Comma","Backslash","IntlRo","IntlYen","modsDiff","mod","includes","eventModsDiff","altKey","String","fromCharCode","keyCode","shiftKey","code"],"sources":["@wordpress/keycodes/src/index.js"],"sourcesContent":["/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isAppleOS } from './platform';\n\n/** @typedef {typeof ALT | CTRL | COMMAND | SHIFT } WPModifierPart */\n\n/** @typedef {'primary' | 'primaryShift' | 'primaryAlt' | 'secondary' | 'access' | 'ctrl' | 'alt' | 'ctrlShift' | 'shift' | 'shiftAlt' | 'undefined'} WPKeycodeModifier */\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n *\n * @template T\n *\n * @typedef {Record<WPKeycodeModifier, T>} WPModifierHandler\n */\n\n/**\n * @template T\n *\n * @typedef {(character: string, isApple?: () => boolean) => T} WPKeyHandler\n */\n/** @typedef {(event: import('react').KeyboardEvent<HTMLElement> | KeyboardEvent, character: string, isApple?: () => boolean) => boolean} WPEventKeyHandler */\n\n/** @typedef {( isApple: () => boolean ) => WPModifierPart[]} WPModifier */\n\n/**\n * Keycode for BACKSPACE key.\n */\nexport const BACKSPACE = 8;\n\n/**\n * Keycode for TAB key.\n */\nexport const TAB = 9;\n\n/**\n * Keycode for ENTER key.\n */\nexport const ENTER = 13;\n\n/**\n * Keycode for ESCAPE key.\n */\nexport const ESCAPE = 27;\n\n/**\n * Keycode for SPACE key.\n */\nexport const SPACE = 32;\n\n/**\n * Keycode for PAGEUP key.\n */\nexport const PAGEUP = 33;\n\n/**\n * Keycode for PAGEDOWN key.\n */\nexport const PAGEDOWN = 34;\n\n/**\n * Keycode for END key.\n */\nexport const END = 35;\n\n/**\n * Keycode for HOME key.\n */\nexport const HOME = 36;\n\n/**\n * Keycode for LEFT key.\n */\nexport const LEFT = 37;\n\n/**\n * Keycode for UP key.\n */\nexport const UP = 38;\n\n/**\n * Keycode for RIGHT key.\n */\nexport const RIGHT = 39;\n\n/**\n * Keycode for DOWN key.\n */\nexport const DOWN = 40;\n\n/**\n * Keycode for DELETE key.\n */\nexport const DELETE = 46;\n\n/**\n * Keycode for F10 key.\n */\nexport const F10 = 121;\n\n/**\n * Keycode for ALT key.\n */\nexport const ALT = 'alt';\n\n/**\n * Keycode for CTRL key.\n */\nexport const CTRL = 'ctrl';\n\n/**\n * Keycode for COMMAND/META key.\n */\nexport const COMMAND = 'meta';\n\n/**\n * Keycode for SHIFT key.\n */\nexport const SHIFT = 'shift';\n\n/**\n * Keycode for ZERO key.\n */\nexport const ZERO = 48;\n\nexport { isAppleOS };\n\n/**\n * Capitalise the first character of a string.\n * @param {string} string String to capitalise.\n * @return {string} Capitalised string.\n */\nfunction capitaliseFirstCharacter( string ) {\n\treturn string.length < 2\n\t\t? string.toUpperCase()\n\t\t: string.charAt( 0 ).toUpperCase() + string.slice( 1 );\n}\n\n/**\n * Map the values of an object with a specified callback and return the result object.\n *\n * @template {{ [s: string]: any; } | ArrayLike<any>} T\n *\n * @param {T} object Object to map values of.\n * @param {( value: any ) => any} mapFn Mapping function\n *\n * @return {any} Active modifier constants.\n */\nfunction mapValues( object, mapFn ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tmapFn( value ),\n\t\t] )\n\t);\n}\n\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n *\n * @type {WPModifierHandler< ( isApple: () => boolean ) => WPModifierPart[]>}\n */\nexport const modifiers = {\n\tprimary: ( _isApple ) => ( _isApple() ? [ COMMAND ] : [ CTRL ] ),\n\tprimaryShift: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, COMMAND ] : [ CTRL, SHIFT ],\n\tprimaryAlt: ( _isApple ) =>\n\t\t_isApple() ? [ ALT, COMMAND ] : [ CTRL, ALT ],\n\tsecondary: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, ALT, COMMAND ] : [ CTRL, SHIFT, ALT ],\n\taccess: ( _isApple ) => ( _isApple() ? [ CTRL, ALT ] : [ SHIFT, ALT ] ),\n\tctrl: () => [ CTRL ],\n\talt: () => [ ALT ],\n\tctrlShift: () => [ CTRL, SHIFT ],\n\tshift: () => [ SHIFT ],\n\tshiftAlt: () => [ SHIFT, ALT ],\n\tundefined: () => [],\n};\n\n/**\n * An object that contains functions to get raw shortcuts.\n *\n * These are intended for user with the KeyboardShortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * rawShortcut.primary( 'm' )\n * // \"meta+m\"\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to raw\n * shortcuts.\n */\nexport const rawShortcut = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\treturn [ ...modifier( _isApple ), character.toLowerCase() ].join(\n\t\t\t\t'+'\n\t\t\t);\n\t\t};\n\t}\n);\n\n/**\n * Return an array of the parts of a keyboard shortcut chord for display.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcutList.primary( 'm' );\n * // [ \"⌘\", \"M\" ]\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string[]>>} Keyed map of functions to\n * shortcut sequences.\n */\nexport const displayShortcutList = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string[]>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ ALT ]: isApple ? '⌥' : 'Alt',\n\t\t\t\t[ CTRL ]: isApple ? '⌃' : 'Ctrl', // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.\n\t\t\t\t[ COMMAND ]: '⌘',\n\t\t\t\t[ SHIFT ]: isApple ? '⇧' : 'Shift',\n\t\t\t};\n\n\t\t\tconst modifierKeys = modifier( _isApple ).reduce(\n\t\t\t\t( accumulator, key ) => {\n\t\t\t\t\tconst replacementKey = replacementKeyMap[ key ] ?? key;\n\t\t\t\t\t// If on the Mac, adhere to platform convention and don't show plus between keys.\n\t\t\t\t\tif ( isApple ) {\n\t\t\t\t\t\treturn [ ...accumulator, replacementKey ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [ ...accumulator, replacementKey, '+' ];\n\t\t\t\t},\n\t\t\t\t/** @type {string[]} */ ( [] )\n\t\t\t);\n\n\t\t\treturn [ ...modifierKeys, capitaliseFirstCharacter( character ) ];\n\t\t};\n\t}\n);\n\n/**\n * An object that contains functions to display shortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcut.primary( 'm' );\n * // \"⌘M\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * display shortcuts.\n */\nexport const displayShortcut = mapValues(\n\tdisplayShortcutList,\n\t( /** @type {WPKeyHandler<string[]>} */ shortcutList ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => shortcutList( character, _isApple ).join( '' );\n\t}\n);\n\n/**\n * An object that contains functions to return an aria label for a keyboard\n * shortcut.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * shortcutAriaLabel.primary( '.' );\n * // \"Command + Period\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * shortcut ARIA labels.\n */\nexport const shortcutAriaLabel = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ SHIFT ]: 'Shift',\n\t\t\t\t[ COMMAND ]: isApple ? 'Command' : 'Control',\n\t\t\t\t[ CTRL ]: 'Control',\n\t\t\t\t[ ALT ]: isApple ? 'Option' : 'Alt',\n\t\t\t\t/* translators: comma as in the character ',' */\n\t\t\t\t',': __( 'Comma' ),\n\t\t\t\t/* translators: period as in the character '.' */\n\t\t\t\t'.': __( 'Period' ),\n\t\t\t\t/* translators: backtick as in the character '`' */\n\t\t\t\t'`': __( 'Backtick' ),\n\t\t\t\t/* translators: tilde as in the character '~' */\n\t\t\t\t'~': __( 'Tilde' ),\n\t\t\t};\n\n\t\t\treturn [ ...modifier( _isApple ), character ]\n\t\t\t\t.map( ( key ) =>\n\t\t\t\t\tcapitaliseFirstCharacter( replacementKeyMap[ key ] ?? key )\n\t\t\t\t)\n\t\t\t\t.join( isApple ? ' ' : ' + ' );\n\t\t};\n\t}\n);\n\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param {import('react').KeyboardEvent<HTMLElement> | KeyboardEvent} event Keyboard event.\n *\n * @return {Array<WPModifierPart>} Active modifier constants.\n */\nfunction getEventModifiers( event ) {\n\treturn /** @type {WPModifierPart[]} */ ( [\n\t\tALT,\n\t\tCTRL,\n\t\tCOMMAND,\n\t\tSHIFT,\n\t] ).filter(\n\t\t( key ) =>\n\t\t\tevent[\n\t\t\t\t/** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */ (\n\t\t\t\t\t`${ key }Key`\n\t\t\t\t)\n\t\t\t]\n\t);\n}\n\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n *\n * @example\n * ```js\n * // Assuming an event for ⌘M key press:\n * isKeyboardEvent.primary( event, 'm' );\n * // true\n * ```\n *\n * @type {WPModifierHandler<WPEventKeyHandler>} Keyed map of functions\n * to match events.\n */\nexport const isKeyboardEvent = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ getModifiers ) => {\n\t\treturn /** @type {WPEventKeyHandler} */ (\n\t\t\tevent,\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst mods = getModifiers( _isApple );\n\t\t\tconst eventMods = getEventModifiers( event );\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementWithShiftKeyMap = {\n\t\t\t\tComma: ',',\n\t\t\t\tBackslash: '\\\\',\n\t\t\t\t// Windows returns `\\` for both IntlRo and IntlYen.\n\t\t\t\tIntlRo: '\\\\',\n\t\t\t\tIntlYen: '\\\\',\n\t\t\t};\n\n\t\t\tconst modsDiff = mods.filter(\n\t\t\t\t( mod ) => ! eventMods.includes( mod )\n\t\t\t);\n\t\t\tconst eventModsDiff = eventMods.filter(\n\t\t\t\t( mod ) => ! mods.includes( mod )\n\t\t\t);\n\n\t\t\tif ( modsDiff.length > 0 || eventModsDiff.length > 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key = event.key.toLowerCase();\n\n\t\t\tif ( ! character ) {\n\t\t\t\treturn mods.includes( /** @type {WPModifierPart} */ ( key ) );\n\t\t\t}\n\n\t\t\tif ( event.altKey && character.length === 1 ) {\n\t\t\t\tkey = String.fromCharCode( event.keyCode ).toLowerCase();\n\t\t\t}\n\n\t\t\t// `event.key` returns the value of the key pressed, taking into the state of\n\t\t\t// modifier keys such as `Shift`. If the shift key is pressed, a different\n\t\t\t// value may be returned depending on the keyboard layout. It is necessary to\n\t\t\t// convert to the physical key value that don't take into account keyboard\n\t\t\t// layout or modifier key state.\n\t\t\tif (\n\t\t\t\tevent.shiftKey &&\n\t\t\t\tcharacter.length === 1 &&\n\t\t\t\treplacementWithShiftKeyMap[ event.code ]\n\t\t\t) {\n\t\t\t\tkey = replacementWithShiftKeyMap[ event.code ];\n\t\t\t}\n\n\t\t\t// For backwards compatibility.\n\t\t\tif ( character === 'del' ) {\n\t\t\t\tcharacter = 'delete';\n\t\t\t}\n\n\t\t\treturn key === character.toLowerCase();\n\t\t};\n\t}\n);\n"],"mappings":"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"}
@@ -201,10 +201,9 @@ export const modifiers = {
201
201
  * shortcuts.
202
202
  */
203
203
  export const rawShortcut = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
204
- return (/** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => {
205
- return [...modifier(_isApple), character.toLowerCase()].join('+');
206
- }
207
- );
204
+ return /** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => {
205
+ return [...modifier(_isApple), character.toLowerCase()].join('+');
206
+ };
208
207
  });
209
208
 
210
209
  /**
@@ -221,27 +220,26 @@ export const rawShortcut = mapValues(modifiers, ( /** @type {WPModifier} */modif
221
220
  * shortcut sequences.
222
221
  */
223
222
  export const displayShortcutList = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
224
- return (/** @type {WPKeyHandler<string[]>} */(character, _isApple = isAppleOS) => {
225
- const isApple = _isApple();
226
- const replacementKeyMap = {
227
- [ALT]: isApple ? '⌥' : 'Alt',
228
- [CTRL]: isApple ? '⌃' : 'Ctrl',
229
- // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
230
- [COMMAND]: '⌘',
231
- [SHIFT]: isApple ? '⇧' : 'Shift'
232
- };
233
- const modifierKeys = modifier(_isApple).reduce((accumulator, key) => {
234
- var _replacementKeyMap$ke;
235
- const replacementKey = (_replacementKeyMap$ke = replacementKeyMap[key]) !== null && _replacementKeyMap$ke !== void 0 ? _replacementKeyMap$ke : key;
236
- // If on the Mac, adhere to platform convention and don't show plus between keys.
237
- if (isApple) {
238
- return [...accumulator, replacementKey];
239
- }
240
- return [...accumulator, replacementKey, '+'];
241
- }, /** @type {string[]} */[]);
242
- return [...modifierKeys, capitaliseFirstCharacter(character)];
243
- }
244
- );
223
+ return /** @type {WPKeyHandler<string[]>} */(character, _isApple = isAppleOS) => {
224
+ const isApple = _isApple();
225
+ const replacementKeyMap = {
226
+ [ALT]: isApple ? '⌥' : 'Alt',
227
+ [CTRL]: isApple ? '⌃' : 'Ctrl',
228
+ // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
229
+ [COMMAND]: '⌘',
230
+ [SHIFT]: isApple ? '⇧' : 'Shift'
231
+ };
232
+ const modifierKeys = modifier(_isApple).reduce((accumulator, key) => {
233
+ var _replacementKeyMap$ke;
234
+ const replacementKey = (_replacementKeyMap$ke = replacementKeyMap[key]) !== null && _replacementKeyMap$ke !== void 0 ? _replacementKeyMap$ke : key;
235
+ // If on the Mac, adhere to platform convention and don't show plus between keys.
236
+ if (isApple) {
237
+ return [...accumulator, replacementKey];
238
+ }
239
+ return [...accumulator, replacementKey, '+'];
240
+ }, /** @type {string[]} */[]);
241
+ return [...modifierKeys, capitaliseFirstCharacter(character)];
242
+ };
245
243
  });
246
244
 
247
245
  /**
@@ -258,8 +256,7 @@ export const displayShortcutList = mapValues(modifiers, ( /** @type {WPModifier}
258
256
  * display shortcuts.
259
257
  */
260
258
  export const displayShortcut = mapValues(displayShortcutList, ( /** @type {WPKeyHandler<string[]>} */shortcutList) => {
261
- return (/** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => shortcutList(character, _isApple).join('')
262
- );
259
+ return /** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => shortcutList(character, _isApple).join('');
263
260
  });
264
261
 
265
262
  /**
@@ -277,29 +274,28 @@ export const displayShortcut = mapValues(displayShortcutList, ( /** @type {WPKey
277
274
  * shortcut ARIA labels.
278
275
  */
279
276
  export const shortcutAriaLabel = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
280
- return (/** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => {
281
- const isApple = _isApple();
282
- /** @type {Record<string,string>} */
283
- const replacementKeyMap = {
284
- [SHIFT]: 'Shift',
285
- [COMMAND]: isApple ? 'Command' : 'Control',
286
- [CTRL]: 'Control',
287
- [ALT]: isApple ? 'Option' : 'Alt',
288
- /* translators: comma as in the character ',' */
289
- ',': __('Comma'),
290
- /* translators: period as in the character '.' */
291
- '.': __('Period'),
292
- /* translators: backtick as in the character '`' */
293
- '`': __('Backtick'),
294
- /* translators: tilde as in the character '~' */
295
- '~': __('Tilde')
296
- };
297
- return [...modifier(_isApple), character].map(key => {
298
- var _replacementKeyMap$ke2;
299
- return capitaliseFirstCharacter((_replacementKeyMap$ke2 = replacementKeyMap[key]) !== null && _replacementKeyMap$ke2 !== void 0 ? _replacementKeyMap$ke2 : key);
300
- }).join(isApple ? ' ' : ' + ');
301
- }
302
- );
277
+ return /** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => {
278
+ const isApple = _isApple();
279
+ /** @type {Record<string,string>} */
280
+ const replacementKeyMap = {
281
+ [SHIFT]: 'Shift',
282
+ [COMMAND]: isApple ? 'Command' : 'Control',
283
+ [CTRL]: 'Control',
284
+ [ALT]: isApple ? 'Option' : 'Alt',
285
+ /* translators: comma as in the character ',' */
286
+ ',': __('Comma'),
287
+ /* translators: period as in the character '.' */
288
+ '.': __('Period'),
289
+ /* translators: backtick as in the character '`' */
290
+ '`': __('Backtick'),
291
+ /* translators: tilde as in the character '~' */
292
+ '~': __('Tilde')
293
+ };
294
+ return [...modifier(_isApple), character].map(key => {
295
+ var _replacementKeyMap$ke2;
296
+ return capitaliseFirstCharacter((_replacementKeyMap$ke2 = replacementKeyMap[key]) !== null && _replacementKeyMap$ke2 !== void 0 ? _replacementKeyMap$ke2 : key);
297
+ }).join(isApple ? ' ' : ' + ');
298
+ };
303
299
  });
304
300
 
305
301
  /**
@@ -311,9 +307,8 @@ export const shortcutAriaLabel = mapValues(modifiers, ( /** @type {WPModifier} *
311
307
  * @return {Array<WPModifierPart>} Active modifier constants.
312
308
  */
313
309
  function getEventModifiers(event) {
314
- return (/** @type {WPModifierPart[]} */[ALT, CTRL, COMMAND, SHIFT].filter(key => event[/** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */
315
- `${key}Key`])
316
- );
310
+ return /** @type {WPModifierPart[]} */[ALT, CTRL, COMMAND, SHIFT].filter(key => event[( /** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */
311
+ `${key}Key`)]);
317
312
  }
318
313
 
319
314
  /**
@@ -331,45 +326,44 @@ function getEventModifiers(event) {
331
326
  * to match events.
332
327
  */
333
328
  export const isKeyboardEvent = mapValues(modifiers, ( /** @type {WPModifier} */getModifiers) => {
334
- return (/** @type {WPEventKeyHandler} */(event, character, _isApple = isAppleOS) => {
335
- const mods = getModifiers(_isApple);
336
- const eventMods = getEventModifiers(event);
337
- /** @type {Record<string,string>} */
338
- const replacementWithShiftKeyMap = {
339
- Comma: ',',
340
- Backslash: '\\',
341
- // Windows returns `\` for both IntlRo and IntlYen.
342
- IntlRo: '\\',
343
- IntlYen: '\\'
344
- };
345
- const modsDiff = mods.filter(mod => !eventMods.includes(mod));
346
- const eventModsDiff = eventMods.filter(mod => !mods.includes(mod));
347
- if (modsDiff.length > 0 || eventModsDiff.length > 0) {
348
- return false;
349
- }
350
- let key = event.key.toLowerCase();
351
- if (!character) {
352
- return mods.includes( /** @type {WPModifierPart} */key);
353
- }
354
- if (event.altKey && character.length === 1) {
355
- key = String.fromCharCode(event.keyCode).toLowerCase();
356
- }
329
+ return /** @type {WPEventKeyHandler} */(event, character, _isApple = isAppleOS) => {
330
+ const mods = getModifiers(_isApple);
331
+ const eventMods = getEventModifiers(event);
332
+ /** @type {Record<string,string>} */
333
+ const replacementWithShiftKeyMap = {
334
+ Comma: ',',
335
+ Backslash: '\\',
336
+ // Windows returns `\` for both IntlRo and IntlYen.
337
+ IntlRo: '\\',
338
+ IntlYen: '\\'
339
+ };
340
+ const modsDiff = mods.filter(mod => !eventMods.includes(mod));
341
+ const eventModsDiff = eventMods.filter(mod => !mods.includes(mod));
342
+ if (modsDiff.length > 0 || eventModsDiff.length > 0) {
343
+ return false;
344
+ }
345
+ let key = event.key.toLowerCase();
346
+ if (!character) {
347
+ return mods.includes( /** @type {WPModifierPart} */key);
348
+ }
349
+ if (event.altKey && character.length === 1) {
350
+ key = String.fromCharCode(event.keyCode).toLowerCase();
351
+ }
357
352
 
358
- // `event.key` returns the value of the key pressed, taking into the state of
359
- // modifier keys such as `Shift`. If the shift key is pressed, a different
360
- // value may be returned depending on the keyboard layout. It is necessary to
361
- // convert to the physical key value that don't take into account keyboard
362
- // layout or modifier key state.
363
- if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
364
- key = replacementWithShiftKeyMap[event.code];
365
- }
353
+ // `event.key` returns the value of the key pressed, taking into the state of
354
+ // modifier keys such as `Shift`. If the shift key is pressed, a different
355
+ // value may be returned depending on the keyboard layout. It is necessary to
356
+ // convert to the physical key value that don't take into account keyboard
357
+ // layout or modifier key state.
358
+ if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
359
+ key = replacementWithShiftKeyMap[event.code];
360
+ }
366
361
 
367
- // For backwards compatibility.
368
- if (character === 'del') {
369
- character = 'delete';
370
- }
371
- return key === character.toLowerCase();
362
+ // For backwards compatibility.
363
+ if (character === 'del') {
364
+ character = 'delete';
372
365
  }
373
- );
366
+ return key === character.toLowerCase();
367
+ };
374
368
  });
375
369
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","isAppleOS","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","F10","ALT","CTRL","COMMAND","SHIFT","ZERO","capitaliseFirstCharacter","string","length","toUpperCase","charAt","slice","mapValues","object","mapFn","Object","fromEntries","entries","map","key","value","modifiers","primary","_isApple","primaryShift","primaryAlt","secondary","access","ctrl","alt","ctrlShift","shift","shiftAlt","undefined","rawShortcut","modifier","character","toLowerCase","join","displayShortcutList","isApple","replacementKeyMap","modifierKeys","reduce","accumulator","_replacementKeyMap$ke","replacementKey","displayShortcut","shortcutList","shortcutAriaLabel","_replacementKeyMap$ke2","getEventModifiers","event","filter","isKeyboardEvent","getModifiers","mods","eventMods","replacementWithShiftKeyMap","Comma","Backslash","IntlRo","IntlYen","modsDiff","mod","includes","eventModsDiff","altKey","String","fromCharCode","keyCode","shiftKey","code"],"sources":["@wordpress/keycodes/src/index.js"],"sourcesContent":["/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isAppleOS } from './platform';\n\n/** @typedef {typeof ALT | CTRL | COMMAND | SHIFT } WPModifierPart */\n\n/** @typedef {'primary' | 'primaryShift' | 'primaryAlt' | 'secondary' | 'access' | 'ctrl' | 'alt' | 'ctrlShift' | 'shift' | 'shiftAlt' | 'undefined'} WPKeycodeModifier */\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n *\n * @template T\n *\n * @typedef {Record<WPKeycodeModifier, T>} WPModifierHandler\n */\n\n/**\n * @template T\n *\n * @typedef {(character: string, isApple?: () => boolean) => T} WPKeyHandler\n */\n/** @typedef {(event: import('react').KeyboardEvent<HTMLElement> | KeyboardEvent, character: string, isApple?: () => boolean) => boolean} WPEventKeyHandler */\n\n/** @typedef {( isApple: () => boolean ) => WPModifierPart[]} WPModifier */\n\n/**\n * Keycode for BACKSPACE key.\n */\nexport const BACKSPACE = 8;\n\n/**\n * Keycode for TAB key.\n */\nexport const TAB = 9;\n\n/**\n * Keycode for ENTER key.\n */\nexport const ENTER = 13;\n\n/**\n * Keycode for ESCAPE key.\n */\nexport const ESCAPE = 27;\n\n/**\n * Keycode for SPACE key.\n */\nexport const SPACE = 32;\n\n/**\n * Keycode for PAGEUP key.\n */\nexport const PAGEUP = 33;\n\n/**\n * Keycode for PAGEDOWN key.\n */\nexport const PAGEDOWN = 34;\n\n/**\n * Keycode for END key.\n */\nexport const END = 35;\n\n/**\n * Keycode for HOME key.\n */\nexport const HOME = 36;\n\n/**\n * Keycode for LEFT key.\n */\nexport const LEFT = 37;\n\n/**\n * Keycode for UP key.\n */\nexport const UP = 38;\n\n/**\n * Keycode for RIGHT key.\n */\nexport const RIGHT = 39;\n\n/**\n * Keycode for DOWN key.\n */\nexport const DOWN = 40;\n\n/**\n * Keycode for DELETE key.\n */\nexport const DELETE = 46;\n\n/**\n * Keycode for F10 key.\n */\nexport const F10 = 121;\n\n/**\n * Keycode for ALT key.\n */\nexport const ALT = 'alt';\n\n/**\n * Keycode for CTRL key.\n */\nexport const CTRL = 'ctrl';\n\n/**\n * Keycode for COMMAND/META key.\n */\nexport const COMMAND = 'meta';\n\n/**\n * Keycode for SHIFT key.\n */\nexport const SHIFT = 'shift';\n\n/**\n * Keycode for ZERO key.\n */\nexport const ZERO = 48;\n\nexport { isAppleOS };\n\n/**\n * Capitalise the first character of a string.\n * @param {string} string String to capitalise.\n * @return {string} Capitalised string.\n */\nfunction capitaliseFirstCharacter( string ) {\n\treturn string.length < 2\n\t\t? string.toUpperCase()\n\t\t: string.charAt( 0 ).toUpperCase() + string.slice( 1 );\n}\n\n/**\n * Map the values of an object with a specified callback and return the result object.\n *\n * @template {{ [s: string]: any; } | ArrayLike<any>} T\n *\n * @param {T} object Object to map values of.\n * @param {( value: any ) => any} mapFn Mapping function\n *\n * @return {any} Active modifier constants.\n */\nfunction mapValues( object, mapFn ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tmapFn( value ),\n\t\t] )\n\t);\n}\n\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n *\n * @type {WPModifierHandler< ( isApple: () => boolean ) => WPModifierPart[]>}\n */\nexport const modifiers = {\n\tprimary: ( _isApple ) => ( _isApple() ? [ COMMAND ] : [ CTRL ] ),\n\tprimaryShift: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, COMMAND ] : [ CTRL, SHIFT ],\n\tprimaryAlt: ( _isApple ) =>\n\t\t_isApple() ? [ ALT, COMMAND ] : [ CTRL, ALT ],\n\tsecondary: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, ALT, COMMAND ] : [ CTRL, SHIFT, ALT ],\n\taccess: ( _isApple ) => ( _isApple() ? [ CTRL, ALT ] : [ SHIFT, ALT ] ),\n\tctrl: () => [ CTRL ],\n\talt: () => [ ALT ],\n\tctrlShift: () => [ CTRL, SHIFT ],\n\tshift: () => [ SHIFT ],\n\tshiftAlt: () => [ SHIFT, ALT ],\n\tundefined: () => [],\n};\n\n/**\n * An object that contains functions to get raw shortcuts.\n *\n * These are intended for user with the KeyboardShortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * rawShortcut.primary( 'm' )\n * // \"meta+m\"\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to raw\n * shortcuts.\n */\nexport const rawShortcut = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\treturn [ ...modifier( _isApple ), character.toLowerCase() ].join(\n\t\t\t\t'+'\n\t\t\t);\n\t\t};\n\t}\n);\n\n/**\n * Return an array of the parts of a keyboard shortcut chord for display.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcutList.primary( 'm' );\n * // [ \"⌘\", \"M\" ]\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string[]>>} Keyed map of functions to\n * shortcut sequences.\n */\nexport const displayShortcutList = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string[]>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ ALT ]: isApple ? '⌥' : 'Alt',\n\t\t\t\t[ CTRL ]: isApple ? '⌃' : 'Ctrl', // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.\n\t\t\t\t[ COMMAND ]: '⌘',\n\t\t\t\t[ SHIFT ]: isApple ? '⇧' : 'Shift',\n\t\t\t};\n\n\t\t\tconst modifierKeys = modifier( _isApple ).reduce(\n\t\t\t\t( accumulator, key ) => {\n\t\t\t\t\tconst replacementKey = replacementKeyMap[ key ] ?? key;\n\t\t\t\t\t// If on the Mac, adhere to platform convention and don't show plus between keys.\n\t\t\t\t\tif ( isApple ) {\n\t\t\t\t\t\treturn [ ...accumulator, replacementKey ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [ ...accumulator, replacementKey, '+' ];\n\t\t\t\t},\n\t\t\t\t/** @type {string[]} */ ( [] )\n\t\t\t);\n\n\t\t\treturn [ ...modifierKeys, capitaliseFirstCharacter( character ) ];\n\t\t};\n\t}\n);\n\n/**\n * An object that contains functions to display shortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcut.primary( 'm' );\n * // \"⌘M\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * display shortcuts.\n */\nexport const displayShortcut = mapValues(\n\tdisplayShortcutList,\n\t( /** @type {WPKeyHandler<string[]>} */ shortcutList ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => shortcutList( character, _isApple ).join( '' );\n\t}\n);\n\n/**\n * An object that contains functions to return an aria label for a keyboard\n * shortcut.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * shortcutAriaLabel.primary( '.' );\n * // \"Command + Period\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * shortcut ARIA labels.\n */\nexport const shortcutAriaLabel = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ SHIFT ]: 'Shift',\n\t\t\t\t[ COMMAND ]: isApple ? 'Command' : 'Control',\n\t\t\t\t[ CTRL ]: 'Control',\n\t\t\t\t[ ALT ]: isApple ? 'Option' : 'Alt',\n\t\t\t\t/* translators: comma as in the character ',' */\n\t\t\t\t',': __( 'Comma' ),\n\t\t\t\t/* translators: period as in the character '.' */\n\t\t\t\t'.': __( 'Period' ),\n\t\t\t\t/* translators: backtick as in the character '`' */\n\t\t\t\t'`': __( 'Backtick' ),\n\t\t\t\t/* translators: tilde as in the character '~' */\n\t\t\t\t'~': __( 'Tilde' ),\n\t\t\t};\n\n\t\t\treturn [ ...modifier( _isApple ), character ]\n\t\t\t\t.map( ( key ) =>\n\t\t\t\t\tcapitaliseFirstCharacter( replacementKeyMap[ key ] ?? key )\n\t\t\t\t)\n\t\t\t\t.join( isApple ? ' ' : ' + ' );\n\t\t};\n\t}\n);\n\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param {import('react').KeyboardEvent<HTMLElement> | KeyboardEvent} event Keyboard event.\n *\n * @return {Array<WPModifierPart>} Active modifier constants.\n */\nfunction getEventModifiers( event ) {\n\treturn /** @type {WPModifierPart[]} */ ( [\n\t\tALT,\n\t\tCTRL,\n\t\tCOMMAND,\n\t\tSHIFT,\n\t] ).filter(\n\t\t( key ) =>\n\t\t\tevent[\n\t\t\t\t/** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */ (\n\t\t\t\t\t`${ key }Key`\n\t\t\t\t)\n\t\t\t]\n\t);\n}\n\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n *\n * @example\n * ```js\n * // Assuming an event for ⌘M key press:\n * isKeyboardEvent.primary( event, 'm' );\n * // true\n * ```\n *\n * @type {WPModifierHandler<WPEventKeyHandler>} Keyed map of functions\n * to match events.\n */\nexport const isKeyboardEvent = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ getModifiers ) => {\n\t\treturn /** @type {WPEventKeyHandler} */ (\n\t\t\tevent,\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst mods = getModifiers( _isApple );\n\t\t\tconst eventMods = getEventModifiers( event );\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementWithShiftKeyMap = {\n\t\t\t\tComma: ',',\n\t\t\t\tBackslash: '\\\\',\n\t\t\t\t// Windows returns `\\` for both IntlRo and IntlYen.\n\t\t\t\tIntlRo: '\\\\',\n\t\t\t\tIntlYen: '\\\\',\n\t\t\t};\n\n\t\t\tconst modsDiff = mods.filter(\n\t\t\t\t( mod ) => ! eventMods.includes( mod )\n\t\t\t);\n\t\t\tconst eventModsDiff = eventMods.filter(\n\t\t\t\t( mod ) => ! mods.includes( mod )\n\t\t\t);\n\n\t\t\tif ( modsDiff.length > 0 || eventModsDiff.length > 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key = event.key.toLowerCase();\n\n\t\t\tif ( ! character ) {\n\t\t\t\treturn mods.includes( /** @type {WPModifierPart} */ ( key ) );\n\t\t\t}\n\n\t\t\tif ( event.altKey && character.length === 1 ) {\n\t\t\t\tkey = String.fromCharCode( event.keyCode ).toLowerCase();\n\t\t\t}\n\n\t\t\t// `event.key` returns the value of the key pressed, taking into the state of\n\t\t\t// modifier keys such as `Shift`. If the shift key is pressed, a different\n\t\t\t// value may be returned depending on the keyboard layout. It is necessary to\n\t\t\t// convert to the physical key value that don't take into account keyboard\n\t\t\t// layout or modifier key state.\n\t\t\tif (\n\t\t\t\tevent.shiftKey &&\n\t\t\t\tcharacter.length === 1 &&\n\t\t\t\treplacementWithShiftKeyMap[ event.code ]\n\t\t\t) {\n\t\t\t\tkey = replacementWithShiftKeyMap[ event.code ];\n\t\t\t}\n\n\t\t\t// For backwards compatibility.\n\t\t\tif ( character === 'del' ) {\n\t\t\t\tcharacter = 'delete';\n\t\t\t}\n\n\t\t\treturn key === character.toLowerCase();\n\t\t};\n\t}\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","isAppleOS","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","F10","ALT","CTRL","COMMAND","SHIFT","ZERO","capitaliseFirstCharacter","string","length","toUpperCase","charAt","slice","mapValues","object","mapFn","Object","fromEntries","entries","map","key","value","modifiers","primary","_isApple","primaryShift","primaryAlt","secondary","access","ctrl","alt","ctrlShift","shift","shiftAlt","undefined","rawShortcut","modifier","character","toLowerCase","join","displayShortcutList","isApple","replacementKeyMap","modifierKeys","reduce","accumulator","_replacementKeyMap$ke","replacementKey","displayShortcut","shortcutList","shortcutAriaLabel","_replacementKeyMap$ke2","getEventModifiers","event","filter","isKeyboardEvent","getModifiers","mods","eventMods","replacementWithShiftKeyMap","Comma","Backslash","IntlRo","IntlYen","modsDiff","mod","includes","eventModsDiff","altKey","String","fromCharCode","keyCode","shiftKey","code"],"sources":["@wordpress/keycodes/src/index.js"],"sourcesContent":["/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isAppleOS } from './platform';\n\n/** @typedef {typeof ALT | CTRL | COMMAND | SHIFT } WPModifierPart */\n\n/** @typedef {'primary' | 'primaryShift' | 'primaryAlt' | 'secondary' | 'access' | 'ctrl' | 'alt' | 'ctrlShift' | 'shift' | 'shiftAlt' | 'undefined'} WPKeycodeModifier */\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n *\n * @template T\n *\n * @typedef {Record<WPKeycodeModifier, T>} WPModifierHandler\n */\n\n/**\n * @template T\n *\n * @typedef {(character: string, isApple?: () => boolean) => T} WPKeyHandler\n */\n/** @typedef {(event: import('react').KeyboardEvent<HTMLElement> | KeyboardEvent, character: string, isApple?: () => boolean) => boolean} WPEventKeyHandler */\n\n/** @typedef {( isApple: () => boolean ) => WPModifierPart[]} WPModifier */\n\n/**\n * Keycode for BACKSPACE key.\n */\nexport const BACKSPACE = 8;\n\n/**\n * Keycode for TAB key.\n */\nexport const TAB = 9;\n\n/**\n * Keycode for ENTER key.\n */\nexport const ENTER = 13;\n\n/**\n * Keycode for ESCAPE key.\n */\nexport const ESCAPE = 27;\n\n/**\n * Keycode for SPACE key.\n */\nexport const SPACE = 32;\n\n/**\n * Keycode for PAGEUP key.\n */\nexport const PAGEUP = 33;\n\n/**\n * Keycode for PAGEDOWN key.\n */\nexport const PAGEDOWN = 34;\n\n/**\n * Keycode for END key.\n */\nexport const END = 35;\n\n/**\n * Keycode for HOME key.\n */\nexport const HOME = 36;\n\n/**\n * Keycode for LEFT key.\n */\nexport const LEFT = 37;\n\n/**\n * Keycode for UP key.\n */\nexport const UP = 38;\n\n/**\n * Keycode for RIGHT key.\n */\nexport const RIGHT = 39;\n\n/**\n * Keycode for DOWN key.\n */\nexport const DOWN = 40;\n\n/**\n * Keycode for DELETE key.\n */\nexport const DELETE = 46;\n\n/**\n * Keycode for F10 key.\n */\nexport const F10 = 121;\n\n/**\n * Keycode for ALT key.\n */\nexport const ALT = 'alt';\n\n/**\n * Keycode for CTRL key.\n */\nexport const CTRL = 'ctrl';\n\n/**\n * Keycode for COMMAND/META key.\n */\nexport const COMMAND = 'meta';\n\n/**\n * Keycode for SHIFT key.\n */\nexport const SHIFT = 'shift';\n\n/**\n * Keycode for ZERO key.\n */\nexport const ZERO = 48;\n\nexport { isAppleOS };\n\n/**\n * Capitalise the first character of a string.\n * @param {string} string String to capitalise.\n * @return {string} Capitalised string.\n */\nfunction capitaliseFirstCharacter( string ) {\n\treturn string.length < 2\n\t\t? string.toUpperCase()\n\t\t: string.charAt( 0 ).toUpperCase() + string.slice( 1 );\n}\n\n/**\n * Map the values of an object with a specified callback and return the result object.\n *\n * @template {{ [s: string]: any; } | ArrayLike<any>} T\n *\n * @param {T} object Object to map values of.\n * @param {( value: any ) => any} mapFn Mapping function\n *\n * @return {any} Active modifier constants.\n */\nfunction mapValues( object, mapFn ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tmapFn( value ),\n\t\t] )\n\t);\n}\n\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n *\n * @type {WPModifierHandler< ( isApple: () => boolean ) => WPModifierPart[]>}\n */\nexport const modifiers = {\n\tprimary: ( _isApple ) => ( _isApple() ? [ COMMAND ] : [ CTRL ] ),\n\tprimaryShift: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, COMMAND ] : [ CTRL, SHIFT ],\n\tprimaryAlt: ( _isApple ) =>\n\t\t_isApple() ? [ ALT, COMMAND ] : [ CTRL, ALT ],\n\tsecondary: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, ALT, COMMAND ] : [ CTRL, SHIFT, ALT ],\n\taccess: ( _isApple ) => ( _isApple() ? [ CTRL, ALT ] : [ SHIFT, ALT ] ),\n\tctrl: () => [ CTRL ],\n\talt: () => [ ALT ],\n\tctrlShift: () => [ CTRL, SHIFT ],\n\tshift: () => [ SHIFT ],\n\tshiftAlt: () => [ SHIFT, ALT ],\n\tundefined: () => [],\n};\n\n/**\n * An object that contains functions to get raw shortcuts.\n *\n * These are intended for user with the KeyboardShortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * rawShortcut.primary( 'm' )\n * // \"meta+m\"\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to raw\n * shortcuts.\n */\nexport const rawShortcut = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\treturn [ ...modifier( _isApple ), character.toLowerCase() ].join(\n\t\t\t\t'+'\n\t\t\t);\n\t\t};\n\t}\n);\n\n/**\n * Return an array of the parts of a keyboard shortcut chord for display.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcutList.primary( 'm' );\n * // [ \"⌘\", \"M\" ]\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string[]>>} Keyed map of functions to\n * shortcut sequences.\n */\nexport const displayShortcutList = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string[]>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ ALT ]: isApple ? '⌥' : 'Alt',\n\t\t\t\t[ CTRL ]: isApple ? '⌃' : 'Ctrl', // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.\n\t\t\t\t[ COMMAND ]: '⌘',\n\t\t\t\t[ SHIFT ]: isApple ? '⇧' : 'Shift',\n\t\t\t};\n\n\t\t\tconst modifierKeys = modifier( _isApple ).reduce(\n\t\t\t\t( accumulator, key ) => {\n\t\t\t\t\tconst replacementKey = replacementKeyMap[ key ] ?? key;\n\t\t\t\t\t// If on the Mac, adhere to platform convention and don't show plus between keys.\n\t\t\t\t\tif ( isApple ) {\n\t\t\t\t\t\treturn [ ...accumulator, replacementKey ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [ ...accumulator, replacementKey, '+' ];\n\t\t\t\t},\n\t\t\t\t/** @type {string[]} */ ( [] )\n\t\t\t);\n\n\t\t\treturn [ ...modifierKeys, capitaliseFirstCharacter( character ) ];\n\t\t};\n\t}\n);\n\n/**\n * An object that contains functions to display shortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcut.primary( 'm' );\n * // \"⌘M\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * display shortcuts.\n */\nexport const displayShortcut = mapValues(\n\tdisplayShortcutList,\n\t( /** @type {WPKeyHandler<string[]>} */ shortcutList ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => shortcutList( character, _isApple ).join( '' );\n\t}\n);\n\n/**\n * An object that contains functions to return an aria label for a keyboard\n * shortcut.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * shortcutAriaLabel.primary( '.' );\n * // \"Command + Period\"\n * ```\n *\n * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to\n * shortcut ARIA labels.\n */\nexport const shortcutAriaLabel = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ modifier ) => {\n\t\treturn /** @type {WPKeyHandler<string>} */ (\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst isApple = _isApple();\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementKeyMap = {\n\t\t\t\t[ SHIFT ]: 'Shift',\n\t\t\t\t[ COMMAND ]: isApple ? 'Command' : 'Control',\n\t\t\t\t[ CTRL ]: 'Control',\n\t\t\t\t[ ALT ]: isApple ? 'Option' : 'Alt',\n\t\t\t\t/* translators: comma as in the character ',' */\n\t\t\t\t',': __( 'Comma' ),\n\t\t\t\t/* translators: period as in the character '.' */\n\t\t\t\t'.': __( 'Period' ),\n\t\t\t\t/* translators: backtick as in the character '`' */\n\t\t\t\t'`': __( 'Backtick' ),\n\t\t\t\t/* translators: tilde as in the character '~' */\n\t\t\t\t'~': __( 'Tilde' ),\n\t\t\t};\n\n\t\t\treturn [ ...modifier( _isApple ), character ]\n\t\t\t\t.map( ( key ) =>\n\t\t\t\t\tcapitaliseFirstCharacter( replacementKeyMap[ key ] ?? key )\n\t\t\t\t)\n\t\t\t\t.join( isApple ? ' ' : ' + ' );\n\t\t};\n\t}\n);\n\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param {import('react').KeyboardEvent<HTMLElement> | KeyboardEvent} event Keyboard event.\n *\n * @return {Array<WPModifierPart>} Active modifier constants.\n */\nfunction getEventModifiers( event ) {\n\treturn /** @type {WPModifierPart[]} */ ( [\n\t\tALT,\n\t\tCTRL,\n\t\tCOMMAND,\n\t\tSHIFT,\n\t] ).filter(\n\t\t( key ) =>\n\t\t\tevent[\n\t\t\t\t/** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */ (\n\t\t\t\t\t`${ key }Key`\n\t\t\t\t)\n\t\t\t]\n\t);\n}\n\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n *\n * @example\n * ```js\n * // Assuming an event for ⌘M key press:\n * isKeyboardEvent.primary( event, 'm' );\n * // true\n * ```\n *\n * @type {WPModifierHandler<WPEventKeyHandler>} Keyed map of functions\n * to match events.\n */\nexport const isKeyboardEvent = mapValues(\n\tmodifiers,\n\t( /** @type {WPModifier} */ getModifiers ) => {\n\t\treturn /** @type {WPEventKeyHandler} */ (\n\t\t\tevent,\n\t\t\tcharacter,\n\t\t\t_isApple = isAppleOS\n\t\t) => {\n\t\t\tconst mods = getModifiers( _isApple );\n\t\t\tconst eventMods = getEventModifiers( event );\n\t\t\t/** @type {Record<string,string>} */\n\t\t\tconst replacementWithShiftKeyMap = {\n\t\t\t\tComma: ',',\n\t\t\t\tBackslash: '\\\\',\n\t\t\t\t// Windows returns `\\` for both IntlRo and IntlYen.\n\t\t\t\tIntlRo: '\\\\',\n\t\t\t\tIntlYen: '\\\\',\n\t\t\t};\n\n\t\t\tconst modsDiff = mods.filter(\n\t\t\t\t( mod ) => ! eventMods.includes( mod )\n\t\t\t);\n\t\t\tconst eventModsDiff = eventMods.filter(\n\t\t\t\t( mod ) => ! mods.includes( mod )\n\t\t\t);\n\n\t\t\tif ( modsDiff.length > 0 || eventModsDiff.length > 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key = event.key.toLowerCase();\n\n\t\t\tif ( ! character ) {\n\t\t\t\treturn mods.includes( /** @type {WPModifierPart} */ ( key ) );\n\t\t\t}\n\n\t\t\tif ( event.altKey && character.length === 1 ) {\n\t\t\t\tkey = String.fromCharCode( event.keyCode ).toLowerCase();\n\t\t\t}\n\n\t\t\t// `event.key` returns the value of the key pressed, taking into the state of\n\t\t\t// modifier keys such as `Shift`. If the shift key is pressed, a different\n\t\t\t// value may be returned depending on the keyboard layout. It is necessary to\n\t\t\t// convert to the physical key value that don't take into account keyboard\n\t\t\t// layout or modifier key state.\n\t\t\tif (\n\t\t\t\tevent.shiftKey &&\n\t\t\t\tcharacter.length === 1 &&\n\t\t\t\treplacementWithShiftKeyMap[ event.code ]\n\t\t\t) {\n\t\t\t\tkey = replacementWithShiftKeyMap[ event.code ];\n\t\t\t}\n\n\t\t\t// For backwards compatibility.\n\t\t\tif ( character === 'del' ) {\n\t\t\t\tcharacter = 'delete';\n\t\t\t}\n\n\t\t\treturn key === character.toLowerCase();\n\t\t};\n\t}\n);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/keycodes",
3
- "version": "3.49.0",
3
+ "version": "3.51.0",
4
4
  "description": "Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,10 +28,10 @@
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.16.0",
31
- "@wordpress/i18n": "^4.49.0"
31
+ "@wordpress/i18n": "^4.51.0"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "gitHead": "5e6f9caa205d3bfdbac131952b7bf9c6ec60569b"
36
+ "gitHead": "eb796371e9630636a4a8837033807b0c4a06ed67"
37
37
  }