# @gechiui/keycodes

> Keycodes utilities for GeChiUI. Used to check for keyboard events across browsers/operating systems.

Latest version **3.3.1** (published 2022-03-17) · GPL-2.0-or-later license · 0 weekly downloads

## Install

```sh
npm install @gechiui/keycodes
pnpm add @gechiui/keycodes
yarn add @gechiui/keycodes
bun add @gechiui/keycodes
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.3.1 |
| Published | 2022-03-17 |
| First published | 2022-03-17 |
| Weekly downloads | 0 |
| License | GPL-2.0-or-later |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=12 |
| Dependencies | 3 |
| Unpacked size | 139.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | The GeChiUI Contributors |
| Maintainers | gechiui |
| Keywords | gechiui, gutenberg, keycodes |

## Links

- npm: https://www.npmjs.com/package/@gechiui/keycodes
- Repository: https://github.com/GeChiUI/gutenberg
- Homepage: https://github.com/GeChiUI/gutenberg/tree/HEAD/packages/keycodes/README.md
- Issues: https://github.com/GeChiUI/gutenberg/issues
- npm.io page: https://npm.io/package/@gechiui/keycodes

## Dependencies (3)

- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [@gechiui/i18n](https://npm.io/package/@gechiui/i18n.md) ^4.3.1
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.16.0

## Recent versions

- 3.3.1 (latest) — 2022-03-17
- 3.2.4 — 2022-03-17

## README

# Keycodes

Keycodes utilities for GeChiUI, used to check the key pressed in events like `onKeyDown`. Contains keycodes constants for keyboard keys like `DOWN`, `UP`, `ENTER`, etc.

## Installation

Install the module

```bash
npm install @gechiui/keycodes --save
```

_This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@gechiui/babel-preset-default`](https://github.com/GeChiUI/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._

## Usage

Check which key was used in an `onKeyDown` event:

```js
import { DOWN, ENTER } from '@gechiui/keycodes';

// [...]

onKeyDown( event ) {
	const { keyCode } = event;

	if ( keyCode === DOWN ) {
		alert( 'You pressed the down arrow!' );
	} else if ( keyCode === ENTER ) {
		alert( 'You pressed the enter key!' );
	} else {
		alert( 'You pressed another key.' );
	}
}
```

## API

<!-- START TOKEN(Autogenerated API docs) -->

### ALT

Keycode for ALT key.

### BACKSPACE

Keycode for BACKSPACE key.

### COMMAND

Keycode for COMMAND/META key.

### CTRL

Keycode for CTRL key.

### DELETE

Keycode for DELETE key.

### displayShortcut

An object that contains functions to display shortcuts.

_Usage_

```js
// Assuming macOS:
displayShortcut.primary( 'm' );
// "⌘M"
```

_Type_

-   `GCModifierHandler<GCKeyHandler<string>>`Keyed map of functions to display shortcuts.

### displayShortcutList

Return an array of the parts of a keyboard shortcut chord for display.

_Usage_

```js
// Assuming macOS:
displayShortcutList.primary( 'm' );
// [ "⌘", "M" ]
```

_Type_

-   `GCModifierHandler<GCKeyHandler<string[]>>`Keyed map of functions to shortcut sequences.

### DOWN

Keycode for DOWN key.

### END

Keycode for END key.

### ENTER

Keycode for ENTER key.

### ESCAPE

Keycode for ESCAPE key.

### F10

Keycode for F10 key.

### HOME

Keycode for HOME key.

### isKeyboardEvent

An object that contains functions to check if a keyboard event matches a
predefined shortcut combination.

_Usage_

```js
// Assuming an event for ⌘M key press:
isKeyboardEvent.primary( event, 'm' );
// true
```

_Type_

-   `GCModifierHandler<GCEventKeyHandler>`Keyed map of functions to match events.

### LEFT

Keycode for LEFT key.

### modifiers

Object that contains functions that return the available modifier
depending on platform.

_Type_

-   `GCModifierHandler< ( isApple: () => boolean ) => GCModifierPart[]>`

### PAGEDOWN

Keycode for PAGEDOWN key.

### PAGEUP

Keycode for PAGEUP key.

### rawShortcut

An object that contains functions to get raw shortcuts.

These are intended for user with the KeyboardShortcuts.

_Usage_

```js
// Assuming macOS:
rawShortcut.primary( 'm' );
// "meta+m""
```

_Type_

-   `GCModifierHandler<GCKeyHandler<string>>`Keyed map of functions to raw shortcuts.

### RIGHT

Keycode for RIGHT key.

### SHIFT

Keycode for SHIFT key.

### shortcutAriaLabel

An object that contains functions to return an aria label for a keyboard
shortcut.

_Usage_

```js
// Assuming macOS:
shortcutAriaLabel.primary( '.' );
// "Command + Period"
```

_Type_

-   `GCModifierHandler<GCKeyHandler<string>>`Keyed map of functions to shortcut ARIA labels.

### SPACE

Keycode for SPACE key.

### TAB

Keycode for TAB key.

### UP

Keycode for UP key.

### ZERO

Keycode for ZERO key.

<!-- END TOKEN(Autogenerated API docs) -->

## Contributing to this package

This is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [GeChiUI](https://make.gechiui.com/core/) as well as other software projects.

To find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/GeChiUI/gutenberg/tree/HEAD/CONTRIBUTING.md).

<br /><br /><p align="center"><img src="https://s.w.org/style/images/codeispoetry.png?1" alt="Code is Poetry." /></p>

---
_Source: https://npm.io/package/@gechiui/keycodes · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
