@solid-primitives/keyboard 1.0.2 → 1.0.3

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/dist/index.cjs CHANGED
@@ -1,73 +1,50 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var eventListener = require('@solid-primitives/event-listener');
6
+ var rootless = require('@solid-primitives/rootless');
7
+ var utils = require('@solid-primitives/utils');
8
+ var solidJs = require('solid-js');
19
9
 
20
10
  // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- createKeyHold: () => createKeyHold,
24
- createShortcut: () => createShortcut,
25
- useCurrentlyHeldKey: () => useCurrentlyHeldKey,
26
- useKeyDownList: () => useKeyDownList,
27
- useKeyDownSequence: () => useKeyDownSequence
28
- });
29
- module.exports = __toCommonJS(src_exports);
30
- var import_event_listener = require("@solid-primitives/event-listener");
31
- var import_rootless = require("@solid-primitives/rootless");
32
- var import_utils = require("@solid-primitives/utils");
33
- var import_solid_js = require("solid-js");
34
11
  function equalsKeyHoldSequence(sequence, model) {
35
12
  for (let i = sequence.length - 1; i >= 0; i--) {
36
13
  const _model = model.slice(0, i + 1);
37
- if (!(0, import_utils.arrayEquals)(sequence[i], _model))
14
+ if (!utils.arrayEquals(sequence[i], _model))
38
15
  return false;
39
16
  }
40
17
  return true;
41
18
  }
42
- var useKeyDownList = /* @__PURE__ */ (0, import_rootless.createSharedRoot)(() => {
43
- const [pressedKeys, setPressedKeys] = (0, import_solid_js.createSignal)([]);
44
- const [event, setEvent] = (0, import_solid_js.createSignal)(null);
19
+ var useKeyDownList = /* @__PURE__ */ rootless.createSharedRoot(() => {
20
+ const [pressedKeys, setPressedKeys] = solidJs.createSignal([]);
21
+ const [event, setEvent] = solidJs.createSignal(null);
45
22
  const reset = () => setPressedKeys([]);
46
- (0, import_event_listener.makeEventListener)(window, "keydown", (e) => {
23
+ eventListener.makeEventListener(window, "keydown", (e) => {
47
24
  if (e.repeat)
48
25
  return;
49
26
  const key = e.key.toUpperCase();
50
27
  if (pressedKeys().includes(key))
51
28
  return;
52
- (0, import_solid_js.batch)(() => {
29
+ solidJs.batch(() => {
53
30
  setEvent(e);
54
31
  setPressedKeys((prev) => [...prev, key]);
55
32
  });
56
33
  });
57
- (0, import_event_listener.makeEventListener)(window, "keyup", (e) => {
34
+ eventListener.makeEventListener(window, "keyup", (e) => {
58
35
  const key = e.key.toUpperCase();
59
36
  setPressedKeys((prev) => prev.filter((_key) => _key !== key));
60
37
  });
61
- (0, import_event_listener.makeEventListener)(window, "blur", reset);
62
- (0, import_event_listener.makeEventListener)(window, "contextmenu", (e) => {
38
+ eventListener.makeEventListener(window, "blur", reset);
39
+ eventListener.makeEventListener(window, "contextmenu", (e) => {
63
40
  e.defaultPrevented || reset();
64
41
  });
65
42
  return [pressedKeys, { event }];
66
43
  });
67
- var useCurrentlyHeldKey = /* @__PURE__ */ (0, import_rootless.createSharedRoot)(() => {
44
+ var useCurrentlyHeldKey = /* @__PURE__ */ rootless.createSharedRoot(() => {
68
45
  const [keys] = useKeyDownList();
69
- let prevKeys = (0, import_solid_js.untrack)(keys);
70
- return (0, import_solid_js.createMemo)(() => {
46
+ let prevKeys = solidJs.untrack(keys);
47
+ return solidJs.createMemo(() => {
71
48
  const _keys = keys();
72
49
  const prev = prevKeys;
73
50
  prevKeys = _keys;
@@ -76,9 +53,9 @@ var useCurrentlyHeldKey = /* @__PURE__ */ (0, import_rootless.createSharedRoot)(
76
53
  return null;
77
54
  });
78
55
  });
79
- var useKeyDownSequence = /* @__PURE__ */ (0, import_rootless.createSharedRoot)(() => {
56
+ var useKeyDownSequence = /* @__PURE__ */ rootless.createSharedRoot(() => {
80
57
  const [keys] = useKeyDownList();
81
- return (0, import_solid_js.createMemo)((prev) => {
58
+ return solidJs.createMemo((prev) => {
82
59
  if (keys().length === 0)
83
60
  return [];
84
61
  return [...prev, keys()];
@@ -89,7 +66,7 @@ function createKeyHold(key, options = {}) {
89
66
  const { preventDefault = true } = options;
90
67
  const [, { event }] = useKeyDownList();
91
68
  const heldKey = useCurrentlyHeldKey();
92
- return (0, import_solid_js.createMemo)(() => {
69
+ return solidJs.createMemo(() => {
93
70
  if (heldKey() === key) {
94
71
  preventDefault && event().preventDefault();
95
72
  return true;
@@ -98,8 +75,9 @@ function createKeyHold(key, options = {}) {
98
75
  });
99
76
  }
100
77
  function createShortcut(keys, callback, options = {}) {
101
- if (!keys.length)
78
+ if (!keys.length) {
102
79
  return;
80
+ }
103
81
  keys = keys.map((key) => key.toUpperCase());
104
82
  const { preventDefault = true, requireReset = false } = options;
105
83
  const [, { event }] = useKeyDownList();
@@ -129,26 +107,24 @@ function createShortcut(keys, callback, options = {}) {
129
107
  if (!last)
130
108
  return;
131
109
  if (preventDefault && last.length < keys.length) {
132
- if ((0, import_utils.arrayEquals)(last, keys.slice(0, keys.length - 1))) {
110
+ if (utils.arrayEquals(last, keys.slice(0, keys.length - 1))) {
133
111
  event().preventDefault();
134
112
  }
135
113
  return;
136
114
  }
137
- if ((0, import_utils.arrayEquals)(last, keys)) {
115
+ if (utils.arrayEquals(last, keys)) {
138
116
  const prev = sequence2.at(-2);
139
- if (!prev || (0, import_utils.arrayEquals)(prev, keys.slice(0, keys.length - 1))) {
117
+ if (!prev || utils.arrayEquals(prev, keys.slice(0, keys.length - 1))) {
140
118
  preventDefault && event().preventDefault();
141
119
  callback();
142
120
  }
143
121
  }
144
122
  };
145
- (0, import_solid_js.createEffect)((0, import_solid_js.on)(sequence, requireReset ? handleSequenceWithReset : handleSequenceWithoutReset));
123
+ solidJs.createEffect(solidJs.on(sequence, requireReset ? handleSequenceWithReset : handleSequenceWithoutReset));
146
124
  }
147
- // Annotate the CommonJS export names for ESM import in node:
148
- 0 && (module.exports = {
149
- createKeyHold,
150
- createShortcut,
151
- useCurrentlyHeldKey,
152
- useKeyDownList,
153
- useKeyDownSequence
154
- });
125
+
126
+ exports.createKeyHold = createKeyHold;
127
+ exports.createShortcut = createShortcut;
128
+ exports.useCurrentlyHeldKey = useCurrentlyHeldKey;
129
+ exports.useKeyDownList = useKeyDownList;
130
+ exports.useKeyDownSequence = useKeyDownSequence;
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
+ import { makeEventListener } from '@solid-primitives/event-listener';
2
+ import { createSharedRoot } from '@solid-primitives/rootless';
3
+ import { arrayEquals } from '@solid-primitives/utils';
4
+ import { createSignal, batch, untrack, createMemo, createEffect, on } from 'solid-js';
5
+
1
6
  // src/index.ts
2
- import { makeEventListener } from "@solid-primitives/event-listener";
3
- import { createSharedRoot } from "@solid-primitives/rootless";
4
- import { arrayEquals } from "@solid-primitives/utils";
5
- import { batch, createEffect, createMemo, createSignal, on, untrack } from "solid-js";
6
7
  function equalsKeyHoldSequence(sequence, model) {
7
8
  for (let i = sequence.length - 1; i >= 0; i--) {
8
9
  const _model = model.slice(0, i + 1);
@@ -70,8 +71,9 @@ function createKeyHold(key, options = {}) {
70
71
  });
71
72
  }
72
73
  function createShortcut(keys, callback, options = {}) {
73
- if (!keys.length)
74
+ if (!keys.length) {
74
75
  return;
76
+ }
75
77
  keys = keys.map((key) => key.toUpperCase());
76
78
  const { preventDefault = true, requireReset = false } = options;
77
79
  const [, { event }] = useKeyDownList();
@@ -116,10 +118,5 @@ function createShortcut(keys, callback, options = {}) {
116
118
  };
117
119
  createEffect(on(sequence, requireReset ? handleSequenceWithReset : handleSequenceWithoutReset));
118
120
  }
119
- export {
120
- createKeyHold,
121
- createShortcut,
122
- useCurrentlyHeldKey,
123
- useKeyDownList,
124
- useKeyDownSequence
125
- };
121
+
122
+ export { createKeyHold, createShortcut, useCurrentlyHeldKey, useKeyDownList, useKeyDownSequence };
package/dist/server.cjs CHANGED
@@ -1,43 +1,41 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('@solid-primitives/event-listener');
6
+ var rootless = require('@solid-primitives/rootless');
7
+ require('@solid-primitives/utils');
8
+ require('solid-js');
19
9
 
20
- // src/server.ts
21
- var server_exports = {};
22
- __export(server_exports, {
23
- createKeyHold: () => createKeyHold,
24
- createShortcut: () => createShortcut,
25
- useCurrentlyHeldKey: () => useCurrentlyHeldKey,
26
- useKeyDownList: () => useKeyDownList,
27
- useKeyDownSequence: () => useKeyDownSequence
10
+ // src/index.ts
11
+ var useKeyDownList = /* @__PURE__ */ rootless.createSharedRoot(() => {
12
+ {
13
+ return [() => [], { event: () => null }];
14
+ }
15
+ });
16
+ var useCurrentlyHeldKey = /* @__PURE__ */ rootless.createSharedRoot(() => {
17
+ {
18
+ return () => null;
19
+ }
28
20
  });
29
- module.exports = __toCommonJS(server_exports);
30
- var import_utils = require("@solid-primitives/utils");
31
- var useKeyDownList = () => [() => [], { event: () => null }];
32
- var useCurrentlyHeldKey = () => () => null;
33
- var useKeyDownSequence = () => () => [];
34
- var createKeyHold = () => () => false;
35
- var createShortcut = import_utils.noop;
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- createKeyHold,
39
- createShortcut,
40
- useCurrentlyHeldKey,
41
- useKeyDownList,
42
- useKeyDownSequence
21
+ var useKeyDownSequence = /* @__PURE__ */ rootless.createSharedRoot(() => {
22
+ {
23
+ return () => [];
24
+ }
43
25
  });
26
+ function createKeyHold(key, options = {}) {
27
+ {
28
+ return () => false;
29
+ }
30
+ }
31
+ function createShortcut(keys, callback, options = {}) {
32
+ {
33
+ return;
34
+ }
35
+ }
36
+
37
+ exports.createKeyHold = createKeyHold;
38
+ exports.createShortcut = createShortcut;
39
+ exports.useCurrentlyHeldKey = useCurrentlyHeldKey;
40
+ exports.useKeyDownList = useKeyDownList;
41
+ exports.useKeyDownSequence = useKeyDownSequence;
package/dist/server.js CHANGED
@@ -1,14 +1,33 @@
1
- // src/server.ts
2
- import { noop } from "@solid-primitives/utils";
3
- var useKeyDownList = () => [() => [], { event: () => null }];
4
- var useCurrentlyHeldKey = () => () => null;
5
- var useKeyDownSequence = () => () => [];
6
- var createKeyHold = () => () => false;
7
- var createShortcut = noop;
8
- export {
9
- createKeyHold,
10
- createShortcut,
11
- useCurrentlyHeldKey,
12
- useKeyDownList,
13
- useKeyDownSequence
14
- };
1
+ import '@solid-primitives/event-listener';
2
+ import { createSharedRoot } from '@solid-primitives/rootless';
3
+ import '@solid-primitives/utils';
4
+ import 'solid-js';
5
+
6
+ // src/index.ts
7
+ var useKeyDownList = /* @__PURE__ */ createSharedRoot(() => {
8
+ {
9
+ return [() => [], { event: () => null }];
10
+ }
11
+ });
12
+ var useCurrentlyHeldKey = /* @__PURE__ */ createSharedRoot(() => {
13
+ {
14
+ return () => null;
15
+ }
16
+ });
17
+ var useKeyDownSequence = /* @__PURE__ */ createSharedRoot(() => {
18
+ {
19
+ return () => [];
20
+ }
21
+ });
22
+ function createKeyHold(key, options = {}) {
23
+ {
24
+ return () => false;
25
+ }
26
+ }
27
+ function createShortcut(keys, callback, options = {}) {
28
+ {
29
+ return;
30
+ }
31
+ }
32
+
33
+ export { createKeyHold, createShortcut, useCurrentlyHeldKey, useKeyDownList, useKeyDownSequence };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solid-primitives/keyboard",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "A library of reactive promitives helping handling user's keyboard input.",
5
5
  "author": "Damian Tarnwski <gthetarnav@gmail.com>",
6
6
  "contributors": [],
@@ -25,13 +25,39 @@
25
25
  ],
26
26
  "category": "Inputs"
27
27
  },
28
+ "keywords": [
29
+ "solid",
30
+ "primitives",
31
+ "keyboard",
32
+ "keystroke",
33
+ "hotkey"
34
+ ],
28
35
  "private": false,
29
36
  "sideEffects": false,
37
+ "files": [
38
+ "dist"
39
+ ],
30
40
  "type": "module",
31
41
  "main": "./dist/server.cjs",
32
- "module": "./dist/index.js",
42
+ "module": "./dist/server.js",
33
43
  "types": "./dist/index.d.ts",
44
+ "browser": {
45
+ "./dist/server.cjs": "./dist/index.cjs",
46
+ "./dist/server.js": "./dist/index.js"
47
+ },
34
48
  "exports": {
49
+ "worker": {
50
+ "import": "./dist/server.js",
51
+ "require": "./dist/server.cjs"
52
+ },
53
+ "browser": {
54
+ "import": "./dist/index.js",
55
+ "require": "./dist/index.cjs"
56
+ },
57
+ "deno": {
58
+ "import": "./dist/server.js",
59
+ "require": "./dist/server.cjs"
60
+ },
35
61
  "node": {
36
62
  "import": "./dist/server.js",
37
63
  "require": "./dist/server.cjs"
@@ -39,40 +65,21 @@
39
65
  "import": "./dist/index.js",
40
66
  "require": "./dist/index.cjs"
41
67
  },
42
- "files": [
43
- "dist"
44
- ],
45
- "keywords": [
46
- "solid",
47
- "primitives",
48
- "keyboard",
49
- "keystroke",
50
- "hotkey"
51
- ],
68
+ "dependencies": {
69
+ "@solid-primitives/event-listener": "^2.2.3",
70
+ "@solid-primitives/rootless": "^1.2.0",
71
+ "@solid-primitives/utils": "^3.1.0"
72
+ },
52
73
  "devDependencies": {
53
- "jsdom": "^20.0.0",
54
- "prettier": "^2.7.1",
55
- "solid-js": "^1.5.1",
56
- "tslib": "^2.4.0",
57
- "tsup": "^6.2.2",
58
- "typescript": "^4.7.4",
59
- "unocss": "^0.44.7",
60
- "vite": "^3.0.7",
61
- "vite-plugin-solid": "^2.3.0",
62
- "vitest": "^0.20.3"
74
+ "solid-js": "^1.5.0"
63
75
  },
64
76
  "peerDependencies": {
65
- "solid-js": "^1.4.0"
66
- },
67
- "dependencies": {
68
- "@solid-primitives/event-listener": "^2.2.2",
69
- "@solid-primitives/rootless": "^1.1.3",
70
- "@solid-primitives/utils": "^3.0.2"
77
+ "solid-js": "^1.5.0"
71
78
  },
72
79
  "scripts": {
73
- "start": "vite serve dev --host",
74
80
  "dev": "npm run start",
75
- "build": "tsup",
76
- "test": "vitest"
81
+ "build": "jiti ../../scripts/build.ts --ssr",
82
+ "test": "vitest -c ../../configs/vitest.config.ts",
83
+ "test:ssr": "pnpm run test --mode ssr"
77
84
  }
78
85
  }