@flipdish/ui-library 0.26.3 → 0.28.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/dist/components/organisms/ApplicationHeader/applicationHeader.types.d.ts +64 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.types.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.utils.cjs +15 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.utils.cjs.map +1 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.utils.d.ts +5 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.utils.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.utils.js +12 -0
- package/dist/components/organisms/ApplicationHeader/applicationHeader.utils.js.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/avatar-button.cjs +14 -0
- package/dist/components/organisms/ApplicationHeader/components/avatar-button.cjs.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/avatar-button.d.ts +11 -0
- package/dist/components/organisms/ApplicationHeader/components/avatar-button.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/avatar-button.js +12 -0
- package/dist/components/organisms/ApplicationHeader/components/avatar-button.js.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/header-action.cjs +12 -0
- package/dist/components/organisms/ApplicationHeader/components/header-action.cjs.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/header-action.d.ts +19 -0
- package/dist/components/organisms/ApplicationHeader/components/header-action.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/header-action.js +10 -0
- package/dist/components/organisms/ApplicationHeader/components/header-action.js.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/menu-button.cjs +11 -0
- package/dist/components/organisms/ApplicationHeader/components/menu-button.cjs.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/menu-button.d.ts +11 -0
- package/dist/components/organisms/ApplicationHeader/components/menu-button.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/menu-button.js +9 -0
- package/dist/components/organisms/ApplicationHeader/components/menu-button.js.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/search-trigger.cjs +19 -0
- package/dist/components/organisms/ApplicationHeader/components/search-trigger.cjs.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/search-trigger.d.ts +25 -0
- package/dist/components/organisms/ApplicationHeader/components/search-trigger.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/components/search-trigger.js +17 -0
- package/dist/components/organisms/ApplicationHeader/components/search-trigger.js.map +1 -0
- package/dist/components/organisms/ApplicationHeader/index.cjs +52 -0
- package/dist/components/organisms/ApplicationHeader/index.cjs.map +1 -0
- package/dist/components/organisms/ApplicationHeader/index.d.ts +43 -0
- package/dist/components/organisms/ApplicationHeader/index.d.ts.map +1 -0
- package/dist/components/organisms/ApplicationHeader/index.js +50 -0
- package/dist/components/organisms/ApplicationHeader/index.js.map +1 -0
- package/dist/components/organisms/CommandMenu/index.cjs +1 -1
- package/dist/components/organisms/CommandMenu/index.d.ts.map +1 -1
- package/dist/components/organisms/CommandMenu/index.js +1 -1
- package/dist/components/organisms/SidebarNavigation/components/logo-link.cjs +23 -0
- package/dist/components/organisms/SidebarNavigation/components/logo-link.cjs.map +1 -0
- package/dist/components/organisms/SidebarNavigation/components/logo-link.d.ts +16 -0
- package/dist/components/organisms/SidebarNavigation/components/logo-link.d.ts.map +1 -0
- package/dist/components/organisms/SidebarNavigation/components/logo-link.js +21 -0
- package/dist/components/organisms/SidebarNavigation/components/logo-link.js.map +1 -0
- package/dist/components/organisms/SidebarNavigation/components/mobile-header.cjs +2 -2
- package/dist/components/organisms/SidebarNavigation/components/mobile-header.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/mobile-header.d.ts +7 -1
- package/dist/components/organisms/SidebarNavigation/components/mobile-header.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/mobile-header.js +2 -2
- package/dist/components/organisms/SidebarNavigation/components/mobile-header.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.cjs +6 -5
- package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.d.ts +17 -6
- package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.js +6 -5
- package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts +17 -0
- package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts.map +1 -1
- package/dist/native/components/organisms/ApplicationHeader/index.d.ts +12 -0
- package/dist/utilities/__internal__/hotkeysUtils/hotkeys.utils.cjs +105 -0
- package/dist/utilities/__internal__/hotkeysUtils/hotkeys.utils.cjs.map +1 -0
- package/dist/{components/organisms/CommandMenu → utilities/__internal__/hotkeysUtils}/hotkeys.utils.d.ts +10 -0
- package/dist/utilities/__internal__/hotkeysUtils/hotkeys.utils.d.ts.map +1 -0
- package/dist/utilities/__internal__/hotkeysUtils/hotkeys.utils.js +98 -0
- package/dist/utilities/__internal__/hotkeysUtils/hotkeys.utils.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/organisms/CommandMenu/hotkeys.utils.cjs +0 -64
- package/dist/components/organisms/CommandMenu/hotkeys.utils.cjs.map +0 -1
- package/dist/components/organisms/CommandMenu/hotkeys.utils.d.ts.map +0 -1
- package/dist/components/organisms/CommandMenu/hotkeys.utils.js +0 -61
- package/dist/components/organisms/CommandMenu/hotkeys.utils.js.map +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Helpers for `react-hotkeys-hook` hotkey strings (`mod+k`). INTERNAL: imported by components as
|
|
5
|
+
* `#internal/utilities/hotkeysUtils/hotkeys.utils`.
|
|
6
|
+
*
|
|
7
|
+
* The parser section is a 1:1 copy of the library's `parseHotkeys.ts`, which cannot be imported from the
|
|
8
|
+
* package directly. Keep it in sync with the source rather than editing it:
|
|
9
|
+
* https://github.com/JohannesKlauss/react-hotkeys-hook/blob/main/packages/react-hotkeys-hook/src/lib/parseHotkeys.ts
|
|
10
|
+
*
|
|
11
|
+
* The display section below it is ours: platform detection and hint formatting built on that parser.
|
|
12
|
+
*/
|
|
13
|
+
const reservedModifierKeywords = ['shift', 'alt', 'meta', 'mod', 'ctrl', 'control'];
|
|
14
|
+
const mappedKeys = {
|
|
15
|
+
esc: 'escape',
|
|
16
|
+
return: 'enter',
|
|
17
|
+
left: 'arrowleft',
|
|
18
|
+
right: 'arrowright',
|
|
19
|
+
up: 'arrowup',
|
|
20
|
+
down: 'arrowdown',
|
|
21
|
+
ShiftLeft: 'shift',
|
|
22
|
+
ShiftRight: 'shift',
|
|
23
|
+
AltLeft: 'alt',
|
|
24
|
+
AltRight: 'alt',
|
|
25
|
+
MetaLeft: 'meta',
|
|
26
|
+
MetaRight: 'meta',
|
|
27
|
+
OSLeft: 'meta',
|
|
28
|
+
OSRight: 'meta',
|
|
29
|
+
ControlLeft: 'ctrl',
|
|
30
|
+
ControlRight: 'ctrl',
|
|
31
|
+
};
|
|
32
|
+
function mapCode(key) {
|
|
33
|
+
return (mappedKeys[key.trim()] || key.trim()).toLowerCase().replace(/key|digit|numpad/, '');
|
|
34
|
+
}
|
|
35
|
+
function isHotkeyModifier(key) {
|
|
36
|
+
return reservedModifierKeywords.includes(key);
|
|
37
|
+
}
|
|
38
|
+
function parseKeysHookInput(keys, delimiter = ',') {
|
|
39
|
+
return keys.toLowerCase().split(delimiter);
|
|
40
|
+
}
|
|
41
|
+
function parseHotkey(hotkey, splitKey = '+', sequenceSplitKey = '>', useKey = false, description) {
|
|
42
|
+
let keys = [];
|
|
43
|
+
let isSequence = false;
|
|
44
|
+
if (hotkey.includes(sequenceSplitKey)) {
|
|
45
|
+
isSequence = true;
|
|
46
|
+
keys = hotkey
|
|
47
|
+
.toLocaleLowerCase()
|
|
48
|
+
.split(sequenceSplitKey)
|
|
49
|
+
.map((k) => mapCode(k));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
keys = hotkey
|
|
53
|
+
.toLocaleLowerCase()
|
|
54
|
+
.split(splitKey)
|
|
55
|
+
.map((k) => mapCode(k));
|
|
56
|
+
}
|
|
57
|
+
const modifiers = {
|
|
58
|
+
alt: keys.includes('alt'),
|
|
59
|
+
ctrl: keys.includes('ctrl') || keys.includes('control'),
|
|
60
|
+
shift: keys.includes('shift'),
|
|
61
|
+
meta: keys.includes('meta'),
|
|
62
|
+
mod: keys.includes('mod'),
|
|
63
|
+
useKey,
|
|
64
|
+
};
|
|
65
|
+
const singleCharKeys = keys.filter((k) => !reservedModifierKeywords.includes(k));
|
|
66
|
+
return {
|
|
67
|
+
...modifiers,
|
|
68
|
+
hotkey,
|
|
69
|
+
keys: singleCharKeys,
|
|
70
|
+
description,
|
|
71
|
+
isSequence,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// #endregion
|
|
75
|
+
// #region Display
|
|
76
|
+
const APPLE_MODIFIERS = { mod: '⌘', meta: '⌘', ctrl: '⌃', control: '⌃', alt: '⌥', shift: '⇧' };
|
|
77
|
+
const OTHER_MODIFIERS = { mod: 'Ctrl', meta: 'Win', ctrl: 'Ctrl', control: 'Ctrl', alt: 'Alt', shift: 'Shift' };
|
|
78
|
+
/**
|
|
79
|
+
* Whether `mod` means ⌘ on this device. Mirrors `react-hotkeys-hook`'s own rule exactly (macOS only, not
|
|
80
|
+
* iOS/iPadOS) so a hint always names the key that fires the hotkey. Always `false` on the server.
|
|
81
|
+
*/
|
|
82
|
+
const isApplePlatform = () => typeof navigator !== 'undefined' && /mac/i.test(navigator.userAgent) && !/iphone|ipad|ipod/i.test(navigator.userAgent);
|
|
83
|
+
/**
|
|
84
|
+
* Formats a hotkey for display: `mod+k` reads `⌘K` on macOS and `Ctrl K` elsewhere.
|
|
85
|
+
* When several comma-separated alternatives are given, only the first is shown.
|
|
86
|
+
*/
|
|
87
|
+
const formatHotkeyHint = (hotkey, isApple) => {
|
|
88
|
+
const modifiers = isApple ? APPLE_MODIFIERS : OTHER_MODIFIERS;
|
|
89
|
+
const [firstHotkey = ''] = parseKeysHookInput(hotkey);
|
|
90
|
+
return firstHotkey
|
|
91
|
+
.split('+')
|
|
92
|
+
.map(mapCode)
|
|
93
|
+
.filter(Boolean)
|
|
94
|
+
.map((key) => (isHotkeyModifier(key) ? modifiers[key] : key.toUpperCase()))
|
|
95
|
+
.join(isApple ? '' : ' ');
|
|
96
|
+
};
|
|
97
|
+
// #endregion
|
|
98
|
+
|
|
99
|
+
exports.formatHotkeyHint = formatHotkeyHint;
|
|
100
|
+
exports.isApplePlatform = isApplePlatform;
|
|
101
|
+
exports.isHotkeyModifier = isHotkeyModifier;
|
|
102
|
+
exports.mapCode = mapCode;
|
|
103
|
+
exports.parseHotkey = parseHotkey;
|
|
104
|
+
exports.parseKeysHookInput = parseKeysHookInput;
|
|
105
|
+
//# sourceMappingURL=hotkeys.utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotkeys.utils.cjs","sources":["../../../../src/utilities/__internal__/hotkeysUtils/hotkeys.utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;;;;AASG;AAoBH,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AAEnF,MAAM,UAAU,GAA2B;AACzC,IAAA,GAAG,EAAE,QAAQ;AACb,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,YAAY,EAAE,MAAM;CACrB;AAEK,SAAU,OAAO,CAAC,GAAW,EAAA;IACjC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAC7F;AAEM,SAAU,gBAAgB,CAAC,GAAW,EAAA;AAC1C,IAAA,OAAO,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC/C;SAEgB,kBAAkB,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG,EAAA;IAC9D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;AAC5C;SAEgB,WAAW,CAAC,MAAc,EAAE,QAAQ,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,WAAoB,EAAA;IACtH,IAAI,IAAI,GAAa,EAAE;IACvB,IAAI,UAAU,GAAG,KAAK;AAEtB,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACrC,UAAU,GAAG,IAAI;AACjB,QAAA,IAAI,GAAG;AACJ,aAAA,iBAAiB;aACjB,KAAK,CAAC,gBAAgB;aACtB,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;SAAO;AACL,QAAA,IAAI,GAAG;AACJ,aAAA,iBAAiB;aACjB,KAAK,CAAC,QAAQ;aACd,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;AAEA,IAAA,MAAM,SAAS,GAAsB;AACnC,QAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,QAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC3B,QAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,MAAM;KACP;AAED,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhF,OAAO;AACL,QAAA,GAAG,SAAS;QACZ,MAAM;AACN,QAAA,IAAI,EAAE,cAAc;QACpB,WAAW;QACX,UAAU;KACX;AACH;AACA;AAEA;AACA,MAAM,eAAe,GAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACtH,MAAM,eAAe,GAA2B,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAEvI;;;AAGG;AACI,MAAM,eAAe,GAAG,MAC7B,OAAO,SAAS,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;AAEvH;;;AAGG;MACU,gBAAgB,GAAG,CAAC,MAAc,EAAE,OAAgB,KAAY;IAC3E,MAAM,SAAS,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe;IAC7D,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAErD,IAAA,OAAO;SACJ,KAAK,CAAC,GAAG;SACT,GAAG,CAAC,OAAO;SACX,MAAM,CAAC,OAAO;SACd,GAAG,CAAC,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC;AAC7B;AACA;;;;;;;;;"}
|
|
@@ -16,5 +16,15 @@ export declare function mapCode(key: string): string;
|
|
|
16
16
|
export declare function isHotkeyModifier(key: string): boolean;
|
|
17
17
|
export declare function parseKeysHookInput(keys: string, delimiter?: string): string[];
|
|
18
18
|
export declare function parseHotkey(hotkey: string, splitKey?: string, sequenceSplitKey?: string, useKey?: boolean, description?: string): Hotkey;
|
|
19
|
+
/**
|
|
20
|
+
* Whether `mod` means ⌘ on this device. Mirrors `react-hotkeys-hook`'s own rule exactly (macOS only, not
|
|
21
|
+
* iOS/iPadOS) so a hint always names the key that fires the hotkey. Always `false` on the server.
|
|
22
|
+
*/
|
|
23
|
+
export declare const isApplePlatform: () => boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Formats a hotkey for display: `mod+k` reads `⌘K` on macOS and `Ctrl K` elsewhere.
|
|
26
|
+
* When several comma-separated alternatives are given, only the first is shown.
|
|
27
|
+
*/
|
|
28
|
+
export declare const formatHotkeyHint: (hotkey: string, isApple: boolean) => string;
|
|
19
29
|
export {};
|
|
20
30
|
//# sourceMappingURL=hotkeys.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotkeys.utils.d.ts","sourceRoot":"","sources":["../../../../src/utilities/__internal__/hotkeysUtils/hotkeys.utils.ts"],"names":[],"mappings":"AAaA,UAAU,iBAAiB;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,MAAO,SAAQ,iBAAiB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAuBD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,WAE3C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,EAAE,CAE1E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM,EAAE,gBAAgB,SAAM,EAAE,MAAM,UAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAmChI;AAOD;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,OACqF,CAAC;AAEzH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,SAAS,OAAO,KAAG,MAUnE,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Helpers for `react-hotkeys-hook` hotkey strings (`mod+k`). INTERNAL: imported by components as
|
|
3
|
+
* `#internal/utilities/hotkeysUtils/hotkeys.utils`.
|
|
4
|
+
*
|
|
5
|
+
* The parser section is a 1:1 copy of the library's `parseHotkeys.ts`, which cannot be imported from the
|
|
6
|
+
* package directly. Keep it in sync with the source rather than editing it:
|
|
7
|
+
* https://github.com/JohannesKlauss/react-hotkeys-hook/blob/main/packages/react-hotkeys-hook/src/lib/parseHotkeys.ts
|
|
8
|
+
*
|
|
9
|
+
* The display section below it is ours: platform detection and hint formatting built on that parser.
|
|
10
|
+
*/
|
|
11
|
+
const reservedModifierKeywords = ['shift', 'alt', 'meta', 'mod', 'ctrl', 'control'];
|
|
12
|
+
const mappedKeys = {
|
|
13
|
+
esc: 'escape',
|
|
14
|
+
return: 'enter',
|
|
15
|
+
left: 'arrowleft',
|
|
16
|
+
right: 'arrowright',
|
|
17
|
+
up: 'arrowup',
|
|
18
|
+
down: 'arrowdown',
|
|
19
|
+
ShiftLeft: 'shift',
|
|
20
|
+
ShiftRight: 'shift',
|
|
21
|
+
AltLeft: 'alt',
|
|
22
|
+
AltRight: 'alt',
|
|
23
|
+
MetaLeft: 'meta',
|
|
24
|
+
MetaRight: 'meta',
|
|
25
|
+
OSLeft: 'meta',
|
|
26
|
+
OSRight: 'meta',
|
|
27
|
+
ControlLeft: 'ctrl',
|
|
28
|
+
ControlRight: 'ctrl',
|
|
29
|
+
};
|
|
30
|
+
function mapCode(key) {
|
|
31
|
+
return (mappedKeys[key.trim()] || key.trim()).toLowerCase().replace(/key|digit|numpad/, '');
|
|
32
|
+
}
|
|
33
|
+
function isHotkeyModifier(key) {
|
|
34
|
+
return reservedModifierKeywords.includes(key);
|
|
35
|
+
}
|
|
36
|
+
function parseKeysHookInput(keys, delimiter = ',') {
|
|
37
|
+
return keys.toLowerCase().split(delimiter);
|
|
38
|
+
}
|
|
39
|
+
function parseHotkey(hotkey, splitKey = '+', sequenceSplitKey = '>', useKey = false, description) {
|
|
40
|
+
let keys = [];
|
|
41
|
+
let isSequence = false;
|
|
42
|
+
if (hotkey.includes(sequenceSplitKey)) {
|
|
43
|
+
isSequence = true;
|
|
44
|
+
keys = hotkey
|
|
45
|
+
.toLocaleLowerCase()
|
|
46
|
+
.split(sequenceSplitKey)
|
|
47
|
+
.map((k) => mapCode(k));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
keys = hotkey
|
|
51
|
+
.toLocaleLowerCase()
|
|
52
|
+
.split(splitKey)
|
|
53
|
+
.map((k) => mapCode(k));
|
|
54
|
+
}
|
|
55
|
+
const modifiers = {
|
|
56
|
+
alt: keys.includes('alt'),
|
|
57
|
+
ctrl: keys.includes('ctrl') || keys.includes('control'),
|
|
58
|
+
shift: keys.includes('shift'),
|
|
59
|
+
meta: keys.includes('meta'),
|
|
60
|
+
mod: keys.includes('mod'),
|
|
61
|
+
useKey,
|
|
62
|
+
};
|
|
63
|
+
const singleCharKeys = keys.filter((k) => !reservedModifierKeywords.includes(k));
|
|
64
|
+
return {
|
|
65
|
+
...modifiers,
|
|
66
|
+
hotkey,
|
|
67
|
+
keys: singleCharKeys,
|
|
68
|
+
description,
|
|
69
|
+
isSequence,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// #endregion
|
|
73
|
+
// #region Display
|
|
74
|
+
const APPLE_MODIFIERS = { mod: '⌘', meta: '⌘', ctrl: '⌃', control: '⌃', alt: '⌥', shift: '⇧' };
|
|
75
|
+
const OTHER_MODIFIERS = { mod: 'Ctrl', meta: 'Win', ctrl: 'Ctrl', control: 'Ctrl', alt: 'Alt', shift: 'Shift' };
|
|
76
|
+
/**
|
|
77
|
+
* Whether `mod` means ⌘ on this device. Mirrors `react-hotkeys-hook`'s own rule exactly (macOS only, not
|
|
78
|
+
* iOS/iPadOS) so a hint always names the key that fires the hotkey. Always `false` on the server.
|
|
79
|
+
*/
|
|
80
|
+
const isApplePlatform = () => typeof navigator !== 'undefined' && /mac/i.test(navigator.userAgent) && !/iphone|ipad|ipod/i.test(navigator.userAgent);
|
|
81
|
+
/**
|
|
82
|
+
* Formats a hotkey for display: `mod+k` reads `⌘K` on macOS and `Ctrl K` elsewhere.
|
|
83
|
+
* When several comma-separated alternatives are given, only the first is shown.
|
|
84
|
+
*/
|
|
85
|
+
const formatHotkeyHint = (hotkey, isApple) => {
|
|
86
|
+
const modifiers = isApple ? APPLE_MODIFIERS : OTHER_MODIFIERS;
|
|
87
|
+
const [firstHotkey = ''] = parseKeysHookInput(hotkey);
|
|
88
|
+
return firstHotkey
|
|
89
|
+
.split('+')
|
|
90
|
+
.map(mapCode)
|
|
91
|
+
.filter(Boolean)
|
|
92
|
+
.map((key) => (isHotkeyModifier(key) ? modifiers[key] : key.toUpperCase()))
|
|
93
|
+
.join(isApple ? '' : ' ');
|
|
94
|
+
};
|
|
95
|
+
// #endregion
|
|
96
|
+
|
|
97
|
+
export { formatHotkeyHint, isApplePlatform, isHotkeyModifier, mapCode, parseHotkey, parseKeysHookInput };
|
|
98
|
+
//# sourceMappingURL=hotkeys.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotkeys.utils.js","sources":["../../../../src/utilities/__internal__/hotkeysUtils/hotkeys.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// This is a 1:1 copy of the `parseHotkeys.ts` file from `react-hotkeys-hook`.
|
|
4
|
-
// We need this because there's no way to import it from the package directly.
|
|
5
|
-
// Source: https://github.com/JohannesKlauss/react-hotkeys-hook/blob/main/packages/react-hotkeys-hook/src/lib/parseHotkeys.ts
|
|
6
|
-
const reservedModifierKeywords = ['shift', 'alt', 'meta', 'mod', 'ctrl', 'control'];
|
|
7
|
-
const mappedKeys = {
|
|
8
|
-
esc: 'escape',
|
|
9
|
-
return: 'enter',
|
|
10
|
-
left: 'arrowleft',
|
|
11
|
-
right: 'arrowright',
|
|
12
|
-
up: 'arrowup',
|
|
13
|
-
down: 'arrowdown',
|
|
14
|
-
ShiftLeft: 'shift',
|
|
15
|
-
ShiftRight: 'shift',
|
|
16
|
-
AltLeft: 'alt',
|
|
17
|
-
AltRight: 'alt',
|
|
18
|
-
MetaLeft: 'meta',
|
|
19
|
-
MetaRight: 'meta',
|
|
20
|
-
OSLeft: 'meta',
|
|
21
|
-
OSRight: 'meta',
|
|
22
|
-
ControlLeft: 'ctrl',
|
|
23
|
-
ControlRight: 'ctrl',
|
|
24
|
-
};
|
|
25
|
-
function mapCode(key) {
|
|
26
|
-
return (mappedKeys[key.trim()] || key.trim()).toLowerCase().replace(/key|digit|numpad/, '');
|
|
27
|
-
}
|
|
28
|
-
function parseHotkey(hotkey, splitKey = '+', sequenceSplitKey = '>', useKey = false, description) {
|
|
29
|
-
let keys = [];
|
|
30
|
-
let isSequence = false;
|
|
31
|
-
if (hotkey.includes(sequenceSplitKey)) {
|
|
32
|
-
isSequence = true;
|
|
33
|
-
keys = hotkey
|
|
34
|
-
.toLocaleLowerCase()
|
|
35
|
-
.split(sequenceSplitKey)
|
|
36
|
-
.map((k) => mapCode(k));
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
keys = hotkey
|
|
40
|
-
.toLocaleLowerCase()
|
|
41
|
-
.split(splitKey)
|
|
42
|
-
.map((k) => mapCode(k));
|
|
43
|
-
}
|
|
44
|
-
const modifiers = {
|
|
45
|
-
alt: keys.includes('alt'),
|
|
46
|
-
ctrl: keys.includes('ctrl') || keys.includes('control'),
|
|
47
|
-
shift: keys.includes('shift'),
|
|
48
|
-
meta: keys.includes('meta'),
|
|
49
|
-
mod: keys.includes('mod'),
|
|
50
|
-
useKey,
|
|
51
|
-
};
|
|
52
|
-
const singleCharKeys = keys.filter((k) => !reservedModifierKeywords.includes(k));
|
|
53
|
-
return {
|
|
54
|
-
...modifiers,
|
|
55
|
-
hotkey,
|
|
56
|
-
keys: singleCharKeys,
|
|
57
|
-
description,
|
|
58
|
-
isSequence,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
exports.mapCode = mapCode;
|
|
63
|
-
exports.parseHotkey = parseHotkey;
|
|
64
|
-
//# sourceMappingURL=hotkeys.utils.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hotkeys.utils.cjs","sources":["../../../../src/components/organisms/CommandMenu/hotkeys.utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;AACA;AAkBA,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AAEnF,MAAM,UAAU,GAA2B;AACzC,IAAA,GAAG,EAAE,QAAQ;AACb,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,YAAY,EAAE,MAAM;CACrB;AAEK,SAAU,OAAO,CAAC,GAAW,EAAA;IACjC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAC7F;SAUgB,WAAW,CAAC,MAAc,EAAE,QAAQ,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,WAAoB,EAAA;IACtH,IAAI,IAAI,GAAa,EAAE;IACvB,IAAI,UAAU,GAAG,KAAK;AAEtB,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACrC,UAAU,GAAG,IAAI;AACjB,QAAA,IAAI,GAAG;AACJ,aAAA,iBAAiB;aACjB,KAAK,CAAC,gBAAgB;aACtB,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;SAAO;AACL,QAAA,IAAI,GAAG;AACJ,aAAA,iBAAiB;aACjB,KAAK,CAAC,QAAQ;aACd,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;AAEA,IAAA,MAAM,SAAS,GAAsB;AACnC,QAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,QAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC3B,QAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,MAAM;KACP;AAED,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhF,OAAO;AACL,QAAA,GAAG,SAAS;QACZ,MAAM;AACN,QAAA,IAAI,EAAE,cAAc;QACpB,WAAW;QACX,UAAU;KACX;AACH;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hotkeys.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/CommandMenu/hotkeys.utils.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,MAAO,SAAQ,iBAAiB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAuBD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,WAE3C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,EAAE,CAE1E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM,EAAE,gBAAgB,SAAM,EAAE,MAAM,UAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAmChI"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
// This is a 1:1 copy of the `parseHotkeys.ts` file from `react-hotkeys-hook`.
|
|
2
|
-
// We need this because there's no way to import it from the package directly.
|
|
3
|
-
// Source: https://github.com/JohannesKlauss/react-hotkeys-hook/blob/main/packages/react-hotkeys-hook/src/lib/parseHotkeys.ts
|
|
4
|
-
const reservedModifierKeywords = ['shift', 'alt', 'meta', 'mod', 'ctrl', 'control'];
|
|
5
|
-
const mappedKeys = {
|
|
6
|
-
esc: 'escape',
|
|
7
|
-
return: 'enter',
|
|
8
|
-
left: 'arrowleft',
|
|
9
|
-
right: 'arrowright',
|
|
10
|
-
up: 'arrowup',
|
|
11
|
-
down: 'arrowdown',
|
|
12
|
-
ShiftLeft: 'shift',
|
|
13
|
-
ShiftRight: 'shift',
|
|
14
|
-
AltLeft: 'alt',
|
|
15
|
-
AltRight: 'alt',
|
|
16
|
-
MetaLeft: 'meta',
|
|
17
|
-
MetaRight: 'meta',
|
|
18
|
-
OSLeft: 'meta',
|
|
19
|
-
OSRight: 'meta',
|
|
20
|
-
ControlLeft: 'ctrl',
|
|
21
|
-
ControlRight: 'ctrl',
|
|
22
|
-
};
|
|
23
|
-
function mapCode(key) {
|
|
24
|
-
return (mappedKeys[key.trim()] || key.trim()).toLowerCase().replace(/key|digit|numpad/, '');
|
|
25
|
-
}
|
|
26
|
-
function parseHotkey(hotkey, splitKey = '+', sequenceSplitKey = '>', useKey = false, description) {
|
|
27
|
-
let keys = [];
|
|
28
|
-
let isSequence = false;
|
|
29
|
-
if (hotkey.includes(sequenceSplitKey)) {
|
|
30
|
-
isSequence = true;
|
|
31
|
-
keys = hotkey
|
|
32
|
-
.toLocaleLowerCase()
|
|
33
|
-
.split(sequenceSplitKey)
|
|
34
|
-
.map((k) => mapCode(k));
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
keys = hotkey
|
|
38
|
-
.toLocaleLowerCase()
|
|
39
|
-
.split(splitKey)
|
|
40
|
-
.map((k) => mapCode(k));
|
|
41
|
-
}
|
|
42
|
-
const modifiers = {
|
|
43
|
-
alt: keys.includes('alt'),
|
|
44
|
-
ctrl: keys.includes('ctrl') || keys.includes('control'),
|
|
45
|
-
shift: keys.includes('shift'),
|
|
46
|
-
meta: keys.includes('meta'),
|
|
47
|
-
mod: keys.includes('mod'),
|
|
48
|
-
useKey,
|
|
49
|
-
};
|
|
50
|
-
const singleCharKeys = keys.filter((k) => !reservedModifierKeywords.includes(k));
|
|
51
|
-
return {
|
|
52
|
-
...modifiers,
|
|
53
|
-
hotkey,
|
|
54
|
-
keys: singleCharKeys,
|
|
55
|
-
description,
|
|
56
|
-
isSequence,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export { mapCode, parseHotkey };
|
|
61
|
-
//# sourceMappingURL=hotkeys.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hotkeys.utils.js","sources":["../../../../src/components/organisms/CommandMenu/hotkeys.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AAkBA,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AAEnF,MAAM,UAAU,GAA2B;AACzC,IAAA,GAAG,EAAE,QAAQ;AACb,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,YAAY,EAAE,MAAM;CACrB;AAEK,SAAU,OAAO,CAAC,GAAW,EAAA;IACjC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAC7F;SAUgB,WAAW,CAAC,MAAc,EAAE,QAAQ,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,WAAoB,EAAA;IACtH,IAAI,IAAI,GAAa,EAAE;IACvB,IAAI,UAAU,GAAG,KAAK;AAEtB,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACrC,UAAU,GAAG,IAAI;AACjB,QAAA,IAAI,GAAG;AACJ,aAAA,iBAAiB;aACjB,KAAK,CAAC,gBAAgB;aACtB,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;SAAO;AACL,QAAA,IAAI,GAAG;AACJ,aAAA,iBAAiB;aACjB,KAAK,CAAC,QAAQ;aACd,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;AAEA,IAAA,MAAM,SAAS,GAAsB;AACnC,QAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,QAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC3B,QAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,MAAM;KACP;AAED,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhF,OAAO;AACL,QAAA,GAAG,SAAS;QACZ,MAAM;AACN,QAAA,IAAI,EAAE,cAAc;QACpB,WAAW;QACX,UAAU;KACX;AACH;;;;"}
|