@sit-onyx/headless 1.0.0-beta.23 → 1.0.0-beta.24

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.js CHANGED
@@ -21,317 +21,8 @@ const wasKeyPressed = (event, key) => {
21
21
  event
22
22
  );
23
23
  };
24
- const isPrintableCharacter = (key) => !NAMED_KEYS_SET.has(key);
25
- const NAMED_KEYS = [
26
- "Unidentified",
27
- "Alt",
28
- "AltGraph",
29
- "CapsLock",
30
- "Control",
31
- "Fn",
32
- "FnLock",
33
- "Meta",
34
- "NumLock",
35
- "ScrollLock",
36
- "Shift",
37
- "Symbol",
38
- "SymbolLock",
39
- "Hyper",
40
- "Super",
41
- "Enter",
42
- "Tab",
43
- "ArrowDown",
44
- "ArrowLeft",
45
- "ArrowRight",
46
- "ArrowUp",
47
- "End",
48
- "Home",
49
- "PageDown",
50
- "PageUp",
51
- "Backspace",
52
- "Clear",
53
- "Copy",
54
- "CrSel",
55
- "Cut",
56
- "Delete",
57
- "EraseEof",
58
- "ExSel",
59
- "Insert",
60
- "Paste",
61
- "Redo",
62
- "Undo",
63
- "Accept",
64
- "Again",
65
- "Attn",
66
- "Cancel",
67
- "ContextMenu",
68
- "Escape",
69
- "Execute",
70
- "Find",
71
- "Help",
72
- "Pause",
73
- "Play",
74
- "Props",
75
- "Select",
76
- "ZoomIn",
77
- "ZoomOut",
78
- "BrightnessDown",
79
- "BrightnessUp",
80
- "Eject",
81
- "LogOff",
82
- "Power",
83
- "PowerOff",
84
- "PrintScreen",
85
- "Hibernate",
86
- "Standby",
87
- "WakeUp",
88
- "AllCandidates",
89
- "Alphanumeric",
90
- "CodeInput",
91
- "Compose",
92
- "Convert",
93
- "Dead",
94
- "FinalMode",
95
- "GroupFirst",
96
- "GroupLast",
97
- "GroupNext",
98
- "GroupPrevious",
99
- "ModeChange",
100
- "NextCandidate",
101
- "NonConvert",
102
- "PreviousCandidate",
103
- "Process",
104
- "SingleCandidate",
105
- "HangulMode",
106
- "HanjaMode",
107
- "JunjaMode",
108
- "Eisu",
109
- "Hankaku",
110
- "Hiragana",
111
- "HiraganaKatakana",
112
- "KanaMode",
113
- "KanjiMode",
114
- "Katakana",
115
- "Romaji",
116
- "Zenkaku",
117
- "ZenkakuHankaku",
118
- "F1",
119
- "F2",
120
- "F3",
121
- "F4",
122
- "F5",
123
- "F6",
124
- "F7",
125
- "F8",
126
- "F9",
127
- "F10",
128
- "F11",
129
- "F12",
130
- "Soft1",
131
- "Soft2",
132
- "Soft3",
133
- "Soft4",
134
- "ChannelDown",
135
- "ChannelUp",
136
- "Close",
137
- "MailForward",
138
- "MailReply",
139
- "MailSend",
140
- "MediaClose",
141
- "MediaFastForward",
142
- "MediaPause",
143
- "MediaPlay",
144
- "MediaPlayPause",
145
- "MediaRecord",
146
- "MediaRewind",
147
- "MediaStop",
148
- "MediaTrackNext",
149
- "MediaTrackPrevious",
150
- "New",
151
- "Open",
152
- "Print",
153
- "Save",
154
- "SpellCheck",
155
- "Key11",
156
- "Key12",
157
- "AudioBalanceLeft",
158
- "AudioBalanceRight",
159
- "AudioBassBoostDown",
160
- "AudioBassBoostToggle",
161
- "AudioBassBoostUp",
162
- "AudioFaderFront",
163
- "AudioFaderRear",
164
- "AudioSurroundModeNext",
165
- "AudioTrebleDown",
166
- "AudioTrebleUp",
167
- "AudioVolumeDown",
168
- "AudioVolumeUp",
169
- "AudioVolumeMute",
170
- "MicrophoneToggle",
171
- "MicrophoneVolumeDown",
172
- "MicrophoneVolumeUp",
173
- "MicrophoneVolumeMute",
174
- "SpeechCorrectionList",
175
- "SpeechInputToggle",
176
- "LaunchApplication1",
177
- "LaunchApplication2",
178
- "LaunchCalendar",
179
- "LaunchContacts",
180
- "LaunchMail",
181
- "LaunchMediaPlayer",
182
- "LaunchMusicPlayer",
183
- "LaunchPhone",
184
- "LaunchScreenSaver",
185
- "LaunchSpreadsheet",
186
- "LaunchWebBrowser",
187
- "LaunchWebCam",
188
- "LaunchWordProcessor",
189
- "BrowserBack",
190
- "BrowserFavorites",
191
- "BrowserForward",
192
- "BrowserHome",
193
- "BrowserRefresh",
194
- "BrowserSearch",
195
- "BrowserStop",
196
- "AppSwitch",
197
- "Call",
198
- "Camera",
199
- "CameraFocus",
200
- "EndCall",
201
- "GoBack",
202
- "GoHome",
203
- "HeadsetHook",
204
- "LastNumberRedial",
205
- "Notification",
206
- "MannerMode",
207
- "VoiceDial",
208
- "TV",
209
- "TV3DMode",
210
- "TVAntennaCable",
211
- "TVAudioDescription",
212
- "TVAudioDescriptionMixDown",
213
- "TVAudioDescriptionMixUp",
214
- "TVContentsMenu",
215
- "TVDataService",
216
- "TVInput",
217
- "TVInputComponent1",
218
- "TVInputComponent2",
219
- "TVInputComposite1",
220
- "TVInputComposite2",
221
- "TVInputHDMI1",
222
- "TVInputHDMI2",
223
- "TVInputHDMI3",
224
- "TVInputHDMI4",
225
- "TVInputVGA1",
226
- "TVMediaContext",
227
- "TVNetwork",
228
- "TVNumberEntry",
229
- "TVPower",
230
- "TVRadioService",
231
- "TVSatellite",
232
- "TVSatelliteBS",
233
- "TVSatelliteCS",
234
- "TVSatelliteToggle",
235
- "TVTerrestrialAnalog",
236
- "TVTerrestrialDigital",
237
- "TVTimer",
238
- "AVRInput",
239
- "AVRPower",
240
- "ColorF0Red",
241
- "ColorF1Green",
242
- "ColorF2Yellow",
243
- "ColorF3Blue",
244
- "ColorF4Grey",
245
- "ColorF5Brown",
246
- "ClosedCaptionToggle",
247
- "Dimmer",
248
- "DisplaySwap",
249
- "DVR",
250
- "Exit",
251
- "FavoriteClear0",
252
- "FavoriteClear1",
253
- "FavoriteClear2",
254
- "FavoriteClear3",
255
- "FavoriteRecall0",
256
- "FavoriteRecall1",
257
- "FavoriteRecall2",
258
- "FavoriteRecall3",
259
- "FavoriteStore0",
260
- "FavoriteStore1",
261
- "FavoriteStore2",
262
- "FavoriteStore3",
263
- "Guide",
264
- "GuideNextDay",
265
- "GuidePreviousDay",
266
- "Info",
267
- "InstantReplay",
268
- "Link",
269
- "ListProgram",
270
- "LiveContent",
271
- "Lock",
272
- "MediaApps",
273
- "MediaAudioTrack",
274
- "MediaLast",
275
- "MediaSkipBackward",
276
- "MediaSkipForward",
277
- "MediaStepBackward",
278
- "MediaStepForward",
279
- "MediaTopMenu",
280
- "NavigateIn",
281
- "NavigateNext",
282
- "NavigateOut",
283
- "NavigatePrevious",
284
- "NextFavoriteChannel",
285
- "NextUserProfile",
286
- "OnDemand",
287
- "Pairing",
288
- "PinPDown",
289
- "PinPMove",
290
- "PinPToggle",
291
- "PinPUp",
292
- "PlaySpeedDown",
293
- "PlaySpeedReset",
294
- "PlaySpeedUp",
295
- "RandomToggle",
296
- "RcLowBattery",
297
- "RecordSpeedNext",
298
- "RfBypass",
299
- "ScanChannelsToggle",
300
- "ScreenModeNext",
301
- "Settings",
302
- "SplitScreenToggle",
303
- "STBInput",
304
- "STBPower",
305
- "Subtitle",
306
- "Teletext",
307
- "VideoModeNext",
308
- "Wink",
309
- "ZoomToggle",
310
- "AudioVolumeDown",
311
- "AudioVolumeUp",
312
- "AudioVolumeMute",
313
- "BrowserBack",
314
- "BrowserForward",
315
- "ChannelDown",
316
- "ChannelUp",
317
- "ContextMenu",
318
- "Eject",
319
- "End",
320
- "Enter",
321
- "Home",
322
- "MediaFastForward",
323
- "MediaPlay",
324
- "MediaPlayPause",
325
- "MediaRecord",
326
- "MediaRewind",
327
- "MediaStop",
328
- "MediaNextTrack",
329
- "MediaPause",
330
- "MediaPreviousTrack",
331
- "Power",
332
- "Unidentified"
333
- ];
334
- const NAMED_KEYS_SET = new Set(NAMED_KEYS);
24
+ const GRAPHEME_SEGMENTER = new Intl.Segmenter("en-US");
25
+ const isPrintableCharacter = (key) => [...GRAPHEME_SEGMENTER.segment(key)].length === 1;
335
26
  const GLOBAL_LISTENERS = reactive(/* @__PURE__ */ new Map());
336
27
  const updateRemainingListeners = (type, remaining) => {
337
28
  if (remaining?.size) {
@@ -11,16 +11,7 @@ export declare const wasKeyPressed: (event: KeyboardEvent, key: PressedKey) => b
11
11
  * Check if the `key` property of a KeyboardEvent is a printable character.
12
12
  *
13
13
  * There is no standardized or specified algorithm to check for [named keys](https://www.w3.org/TR/uievents-key/#named-key-attribute-values) vs printable characters.
14
- * For this check we use the provided list provided by the standard, which might be incomplete.
14
+ * For this check we assume that any `key` value that is a single Grapheme is a printable characters.
15
+ * This way we can ensure that combining characters and emojis are correctly recognized without need to keep a list of all named key.
15
16
  */
16
17
  export declare const isPrintableCharacter: (key: string) => boolean;
17
- /**
18
- * Based on https://www.w3.org/TR/uievents-key/#named-key-attribute-values
19
- *
20
- * Extracted using
21
- * ```js
22
- * copy(JSON.stringify([...document.querySelectorAll(".key-table-key")].map(e => e.innerText.replaceAll("\"", ""))));
23
- * ```
24
- */
25
- export declare const NAMED_KEYS: readonly ["Unidentified", "Alt", "AltGraph", "CapsLock", "Control", "Fn", "FnLock", "Meta", "NumLock", "ScrollLock", "Shift", "Symbol", "SymbolLock", "Hyper", "Super", "Enter", "Tab", "ArrowDown", "ArrowLeft", "ArrowRight", "ArrowUp", "End", "Home", "PageDown", "PageUp", "Backspace", "Clear", "Copy", "CrSel", "Cut", "Delete", "EraseEof", "ExSel", "Insert", "Paste", "Redo", "Undo", "Accept", "Again", "Attn", "Cancel", "ContextMenu", "Escape", "Execute", "Find", "Help", "Pause", "Play", "Props", "Select", "ZoomIn", "ZoomOut", "BrightnessDown", "BrightnessUp", "Eject", "LogOff", "Power", "PowerOff", "PrintScreen", "Hibernate", "Standby", "WakeUp", "AllCandidates", "Alphanumeric", "CodeInput", "Compose", "Convert", "Dead", "FinalMode", "GroupFirst", "GroupLast", "GroupNext", "GroupPrevious", "ModeChange", "NextCandidate", "NonConvert", "PreviousCandidate", "Process", "SingleCandidate", "HangulMode", "HanjaMode", "JunjaMode", "Eisu", "Hankaku", "Hiragana", "HiraganaKatakana", "KanaMode", "KanjiMode", "Katakana", "Romaji", "Zenkaku", "ZenkakuHankaku", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "Soft1", "Soft2", "Soft3", "Soft4", "ChannelDown", "ChannelUp", "Close", "MailForward", "MailReply", "MailSend", "MediaClose", "MediaFastForward", "MediaPause", "MediaPlay", "MediaPlayPause", "MediaRecord", "MediaRewind", "MediaStop", "MediaTrackNext", "MediaTrackPrevious", "New", "Open", "Print", "Save", "SpellCheck", "Key11", "Key12", "AudioBalanceLeft", "AudioBalanceRight", "AudioBassBoostDown", "AudioBassBoostToggle", "AudioBassBoostUp", "AudioFaderFront", "AudioFaderRear", "AudioSurroundModeNext", "AudioTrebleDown", "AudioTrebleUp", "AudioVolumeDown", "AudioVolumeUp", "AudioVolumeMute", "MicrophoneToggle", "MicrophoneVolumeDown", "MicrophoneVolumeUp", "MicrophoneVolumeMute", "SpeechCorrectionList", "SpeechInputToggle", "LaunchApplication1", "LaunchApplication2", "LaunchCalendar", "LaunchContacts", "LaunchMail", "LaunchMediaPlayer", "LaunchMusicPlayer", "LaunchPhone", "LaunchScreenSaver", "LaunchSpreadsheet", "LaunchWebBrowser", "LaunchWebCam", "LaunchWordProcessor", "BrowserBack", "BrowserFavorites", "BrowserForward", "BrowserHome", "BrowserRefresh", "BrowserSearch", "BrowserStop", "AppSwitch", "Call", "Camera", "CameraFocus", "EndCall", "GoBack", "GoHome", "HeadsetHook", "LastNumberRedial", "Notification", "MannerMode", "VoiceDial", "TV", "TV3DMode", "TVAntennaCable", "TVAudioDescription", "TVAudioDescriptionMixDown", "TVAudioDescriptionMixUp", "TVContentsMenu", "TVDataService", "TVInput", "TVInputComponent1", "TVInputComponent2", "TVInputComposite1", "TVInputComposite2", "TVInputHDMI1", "TVInputHDMI2", "TVInputHDMI3", "TVInputHDMI4", "TVInputVGA1", "TVMediaContext", "TVNetwork", "TVNumberEntry", "TVPower", "TVRadioService", "TVSatellite", "TVSatelliteBS", "TVSatelliteCS", "TVSatelliteToggle", "TVTerrestrialAnalog", "TVTerrestrialDigital", "TVTimer", "AVRInput", "AVRPower", "ColorF0Red", "ColorF1Green", "ColorF2Yellow", "ColorF3Blue", "ColorF4Grey", "ColorF5Brown", "ClosedCaptionToggle", "Dimmer", "DisplaySwap", "DVR", "Exit", "FavoriteClear0", "FavoriteClear1", "FavoriteClear2", "FavoriteClear3", "FavoriteRecall0", "FavoriteRecall1", "FavoriteRecall2", "FavoriteRecall3", "FavoriteStore0", "FavoriteStore1", "FavoriteStore2", "FavoriteStore3", "Guide", "GuideNextDay", "GuidePreviousDay", "Info", "InstantReplay", "Link", "ListProgram", "LiveContent", "Lock", "MediaApps", "MediaAudioTrack", "MediaLast", "MediaSkipBackward", "MediaSkipForward", "MediaStepBackward", "MediaStepForward", "MediaTopMenu", "NavigateIn", "NavigateNext", "NavigateOut", "NavigatePrevious", "NextFavoriteChannel", "NextUserProfile", "OnDemand", "Pairing", "PinPDown", "PinPMove", "PinPToggle", "PinPUp", "PlaySpeedDown", "PlaySpeedReset", "PlaySpeedUp", "RandomToggle", "RcLowBattery", "RecordSpeedNext", "RfBypass", "ScanChannelsToggle", "ScreenModeNext", "Settings", "SplitScreenToggle", "STBInput", "STBPower", "Subtitle", "Teletext", "VideoModeNext", "Wink", "ZoomToggle", "AudioVolumeDown", "AudioVolumeUp", "AudioVolumeMute", "BrowserBack", "BrowserForward", "ChannelDown", "ChannelUp", "ContextMenu", "Eject", "End", "Enter", "Home", "MediaFastForward", "MediaPlay", "MediaPlayPause", "MediaRecord", "MediaRewind", "MediaStop", "MediaNextTrack", "MediaPause", "MediaPreviousTrack", "Power", "Unidentified"];
26
- export declare const NAMED_KEYS_SET: Set<string>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sit-onyx/headless",
3
3
  "description": "Headless composables for Vue",
4
- "version": "1.0.0-beta.23",
4
+ "version": "1.0.0-beta.24",
5
5
  "type": "module",
6
6
  "author": "Schwarz IT KG",
7
7
  "license": "Apache-2.0",