@bigbinary/neeto-molecules 4.1.52 → 4.1.53
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/ErrorPage.js +1 -1387
- package/dist/ErrorPage.js.map +1 -1
- package/dist/ShareViaLink.js +1 -0
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/cjs/ErrorPage.js +5 -1409
- package/dist/cjs/ErrorPage.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +1 -0
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/dist/cjs/unauthorized-CI14HDQo.js +1414 -0
- package/dist/cjs/unauthorized-CI14HDQo.js.map +1 -0
- package/dist/cjs/user-Ku5LVfLy.js +20 -0
- package/dist/cjs/user-Ku5LVfLy.js.map +1 -0
- package/dist/cjs/v2/AuditLogs.js +925 -0
- package/dist/cjs/v2/AuditLogs.js.map +1 -0
- package/dist/cjs/v2/CardLayout.js +52 -0
- package/dist/cjs/v2/CardLayout.js.map +1 -0
- package/dist/cjs/v2/ErrorPage.js +142 -0
- package/dist/cjs/v2/ErrorPage.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +20 -33
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Header.js +1 -1
- package/dist/cjs/v2/Header.js.map +1 -1
- package/dist/cjs/v2/KeyboardShortcuts.js +333 -0
- package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -0
- package/dist/cjs/v2/LoginPage.js +233 -0
- package/dist/cjs/v2/LoginPage.js.map +1 -0
- package/dist/cjs/v2/MenuBar.js +3 -16
- package/dist/cjs/v2/MenuBar.js.map +1 -1
- package/dist/cjs/v2/Settings.js +302 -0
- package/dist/cjs/v2/Settings.js.map +1 -0
- package/dist/cjs/x-B38UX0_0.js +20 -0
- package/dist/cjs/x-B38UX0_0.js.map +1 -0
- package/dist/unauthorized-DLPyUaeK.js +1390 -0
- package/dist/unauthorized-DLPyUaeK.js.map +1 -0
- package/dist/user-A843PT-q.js +18 -0
- package/dist/user-A843PT-q.js.map +1 -0
- package/dist/v2/AuditLogs.js +923 -0
- package/dist/v2/AuditLogs.js.map +1 -0
- package/dist/v2/CardLayout.js +50 -0
- package/dist/v2/CardLayout.js.map +1 -0
- package/dist/v2/ErrorPage.js +140 -0
- package/dist/v2/ErrorPage.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +19 -32
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Header.js +1 -1
- package/dist/v2/Header.js.map +1 -1
- package/dist/v2/KeyboardShortcuts.js +331 -0
- package/dist/v2/KeyboardShortcuts.js.map +1 -0
- package/dist/v2/LoginPage.js +212 -0
- package/dist/v2/LoginPage.js.map +1 -0
- package/dist/v2/MenuBar.js +2 -15
- package/dist/v2/MenuBar.js.map +1 -1
- package/dist/v2/Settings.js +300 -0
- package/dist/v2/Settings.js.map +1 -0
- package/dist/x-B1Er0oV4.js +18 -0
- package/dist/x-B1Er0oV4.js.map +1 -0
- package/package.json +1 -1
- package/types/v2/AuditLogs.d.ts +11 -0
- package/types/v2/CardLayout.d.ts +13 -0
- package/types/v2/ErrorPage.d.ts +16 -0
- package/types/v2/KeyboardShortcuts.d.ts +24 -0
- package/types/v2/LoginPage.d.ts +12 -0
- package/types/v2/Settings.d.ts +32 -0
package/dist/cjs/v2/Header.js
CHANGED
|
@@ -74,7 +74,7 @@ var Header = function Header(_ref) {
|
|
|
74
74
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
75
75
|
"data-testid": dataTestId,
|
|
76
76
|
ref: headerRef,
|
|
77
|
-
className: classnames("
|
|
77
|
+
className: classnames("flex w-full shrink-0 flex-row items-start justify-between gap-4 pt-10 pb-6", "flex-wrap lg:flex-nowrap", {
|
|
78
78
|
"min-h-0": isNano || size === SIZES.small
|
|
79
79
|
}, className),
|
|
80
80
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../src/v2/components/Header/constants.js","../../../src/v2/components/Header/index.jsx"],"sourcesContent":["const SIZES = { nano: \"nano\", small: \"small\" };\n\nconst DROPDOWN_BUTTON_SIZES = { nano: \"small\", small: \"medium\" };\n\nexport { SIZES, DROPDOWN_BUTTON_SIZES };\n","import { useLayoutEffect, useRef } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { noop, isNotEmpty, isPresent } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { DROPDOWN_BUTTON_SIZES, SIZES } from \"./constants\";\n\nimport Breadcrumbs from \"../Breadcrumbs\";\nimport HelpPopover from \"../HelpPopover\";\nimport MoreDropdown from \"../MoreDropdown\";\nimport Search from \"../Search\";\n\nconst Header = ({\n title,\n titleHelpPopoverProps = {},\n searchProps,\n className = \"\",\n actionBlock,\n breadcrumbs = [],\n renderDropdown = noop,\n size = \"small\",\n \"data-testid\": dataTestId = \"neeto-molecules-header\",\n}) => {\n const headerRef = useRef(null);\n\n useLayoutEffect(() => {\n const updateHeaderHeight = () => {\n if (!headerRef.current) return;\n const height = headerRef.current.offsetHeight;\n document.body.style.setProperty(\n \"--neeto-molecules-effective-header-height\",\n `${height}px`\n );\n };\n\n updateHeaderHeight();\n\n window.addEventListener(\"resize\", updateHeaderHeight);\n\n return () => {\n window.removeEventListener(\"resize\", updateHeaderHeight);\n document.body.style.removeProperty(\n \"--neeto-molecules-effective-header-height\"\n );\n };\n }, []);\n\n const isNano = size === SIZES.nano;\n const hasBreadcrumbs = isNotEmpty(breadcrumbs);\n const TitleTag = isNano ? \"h3\" : \"h1\";\n\n return (\n <div\n data-testid={dataTestId}\n ref={headerRef}\n className={classnames(\n \"bg-background text-foreground flex w-full shrink-0 flex-row items-start justify-between gap-4 pt-10 pb-6\",\n \"flex-wrap lg:flex-nowrap\",\n { \"min-h-0\": isNano || size === SIZES.small },\n className\n )}\n >\n <div className=\"flex flex-row flex-wrap items-start justify-start\">\n <div className=\"flex flex-wrap\">\n {hasBreadcrumbs && <Breadcrumbs {...{ breadcrumbs }} />}\n <div\n className={classnames(\n \"flex w-full flex-row items-center gap-3\",\n hasBreadcrumbs\n ? \"mt-0\"\n : \"-mt-1 max-lg:-mt-2.5 max-md:-mt-2 max-sm:-mt-1\"\n )}\n >\n <Typography\n asChild\n variant={isNano ? \"h3\" : \"h1\"}\n weight=\"semibold\"\n >\n <TitleTag data-testid=\"main-header\">\n {title}\n {isPresent(titleHelpPopoverProps) && (\n <HelpPopover\n className=\"ms-2 inline-flex align-middle\"\n side=\"right\"\n {...titleHelpPopoverProps}\n />\n )}\n {renderDropdown(\n ({ dropdownButtonProps = {}, ...dropdownProps }) => (\n <span className=\"ms-2 inline-flex align-middle\">\n <MoreDropdown\n dropdownButtonProps={{\n size: DROPDOWN_BUTTON_SIZES[size],\n ...dropdownButtonProps,\n }}\n {...dropdownProps}\n />\n </span>\n )\n )}\n </TitleTag>\n </Typography>\n </div>\n </div>\n </div>\n <div\n className={classnames(\n \"flex items-center gap-3 empty:hidden\",\n \"flex-wrap justify-start md:flex-nowrap md:justify-end\"\n )}\n >\n {searchProps && (\n <Search\n enableUrlSync\n className={classnames(\n \"min-w-[12.6rem] grow-0\",\n searchProps.className\n )}\n {...searchProps}\n />\n )}\n {actionBlock && (\n <div className=\"flex shrink-0 items-center justify-end gap-3 max-[360px]:shrink max-[360px]:flex-wrap max-[360px]:justify-start\">\n {actionBlock}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nHeader.propTypes = {\n /**\n * To set a title in the Header section.\n */\n title: PropTypes.node,\n /**\n * To set props for the HelpPopover component in the title.\n */\n titleHelpPopoverProps: PropTypes.object,\n /**\n * To specify additional class names.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered in the right side of the Header section.\n */\n actionBlock: PropTypes.node,\n /**\n * To add **Search** molecule to the subheader section.\n */\n searchProps: PropTypes.object,\n /**\n * To show breadcrumbs in the Header section. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n /**\n * A function to render the Dropdown next to the title. It provides the MoreDropdown component as argument.\n */\n renderDropdown: PropTypes.func,\n /**\n * To specify size of the Header.\n * `small` - Default size.\n *\n * `nano` - To be used in inner pages with menubar.\n */\n size: PropTypes.oneOf([\"nano\", \"small\"]),\n};\n\nexport default Header;\n"],"names":["SIZES","nano","small","DROPDOWN_BUTTON_SIZES","Header","_ref","title","_ref$titleHelpPopover","titleHelpPopoverProps","searchProps","_ref$className","className","actionBlock","_ref$breadcrumbs","breadcrumbs","_ref$renderDropdown","renderDropdown","noop","_ref$size","size","_ref$dataTestid","dataTestId","headerRef","useRef","useLayoutEffect","updateHeaderHeight","current","height","offsetHeight","document","body","style","setProperty","concat","window","addEventListener","removeEventListener","removeProperty","isNano","hasBreadcrumbs","isNotEmpty","TitleTag","_jsxs","ref","classnames","children","_jsx","Breadcrumbs","Typography","asChild","variant","weight","isPresent","HelpPopover","_objectSpread","side","_ref2","_ref2$dropdownButtonP","dropdownButtonProps","dropdownProps","_objectWithoutProperties","_excluded","MoreDropdown","Search","enableUrlSync"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../src/v2/components/Header/constants.js","../../../src/v2/components/Header/index.jsx"],"sourcesContent":["const SIZES = { nano: \"nano\", small: \"small\" };\n\nconst DROPDOWN_BUTTON_SIZES = { nano: \"small\", small: \"medium\" };\n\nexport { SIZES, DROPDOWN_BUTTON_SIZES };\n","import { useLayoutEffect, useRef } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { noop, isNotEmpty, isPresent } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { DROPDOWN_BUTTON_SIZES, SIZES } from \"./constants\";\n\nimport Breadcrumbs from \"../Breadcrumbs\";\nimport HelpPopover from \"../HelpPopover\";\nimport MoreDropdown from \"../MoreDropdown\";\nimport Search from \"../Search\";\n\nconst Header = ({\n title,\n titleHelpPopoverProps = {},\n searchProps,\n className = \"\",\n actionBlock,\n breadcrumbs = [],\n renderDropdown = noop,\n size = \"small\",\n \"data-testid\": dataTestId = \"neeto-molecules-header\",\n}) => {\n const headerRef = useRef(null);\n\n useLayoutEffect(() => {\n const updateHeaderHeight = () => {\n if (!headerRef.current) return;\n const height = headerRef.current.offsetHeight;\n document.body.style.setProperty(\n \"--neeto-molecules-effective-header-height\",\n `${height}px`\n );\n };\n\n updateHeaderHeight();\n\n window.addEventListener(\"resize\", updateHeaderHeight);\n\n return () => {\n window.removeEventListener(\"resize\", updateHeaderHeight);\n document.body.style.removeProperty(\n \"--neeto-molecules-effective-header-height\"\n );\n };\n }, []);\n\n const isNano = size === SIZES.nano;\n const hasBreadcrumbs = isNotEmpty(breadcrumbs);\n const TitleTag = isNano ? \"h3\" : \"h1\";\n\n return (\n <div\n data-testid={dataTestId}\n ref={headerRef}\n className={classnames(\n \"flex w-full shrink-0 flex-row items-start justify-between gap-4 pt-10 pb-6\",\n \"flex-wrap lg:flex-nowrap\",\n { \"min-h-0\": isNano || size === SIZES.small },\n className\n )}\n >\n <div className=\"flex flex-row flex-wrap items-start justify-start\">\n <div className=\"flex flex-wrap\">\n {hasBreadcrumbs && <Breadcrumbs {...{ breadcrumbs }} />}\n <div\n className={classnames(\n \"flex w-full flex-row items-center gap-3\",\n hasBreadcrumbs\n ? \"mt-0\"\n : \"-mt-1 max-lg:-mt-2.5 max-md:-mt-2 max-sm:-mt-1\"\n )}\n >\n <Typography\n asChild\n variant={isNano ? \"h3\" : \"h1\"}\n weight=\"semibold\"\n >\n <TitleTag data-testid=\"main-header\">\n {title}\n {isPresent(titleHelpPopoverProps) && (\n <HelpPopover\n className=\"ms-2 inline-flex align-middle\"\n side=\"right\"\n {...titleHelpPopoverProps}\n />\n )}\n {renderDropdown(\n ({ dropdownButtonProps = {}, ...dropdownProps }) => (\n <span className=\"ms-2 inline-flex align-middle\">\n <MoreDropdown\n dropdownButtonProps={{\n size: DROPDOWN_BUTTON_SIZES[size],\n ...dropdownButtonProps,\n }}\n {...dropdownProps}\n />\n </span>\n )\n )}\n </TitleTag>\n </Typography>\n </div>\n </div>\n </div>\n <div\n className={classnames(\n \"flex items-center gap-3 empty:hidden\",\n \"flex-wrap justify-start md:flex-nowrap md:justify-end\"\n )}\n >\n {searchProps && (\n <Search\n enableUrlSync\n className={classnames(\n \"min-w-[12.6rem] grow-0\",\n searchProps.className\n )}\n {...searchProps}\n />\n )}\n {actionBlock && (\n <div className=\"flex shrink-0 items-center justify-end gap-3 max-[360px]:shrink max-[360px]:flex-wrap max-[360px]:justify-start\">\n {actionBlock}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nHeader.propTypes = {\n /**\n * To set a title in the Header section.\n */\n title: PropTypes.node,\n /**\n * To set props for the HelpPopover component in the title.\n */\n titleHelpPopoverProps: PropTypes.object,\n /**\n * To specify additional class names.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered in the right side of the Header section.\n */\n actionBlock: PropTypes.node,\n /**\n * To add **Search** molecule to the subheader section.\n */\n searchProps: PropTypes.object,\n /**\n * To show breadcrumbs in the Header section. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n /**\n * A function to render the Dropdown next to the title. It provides the MoreDropdown component as argument.\n */\n renderDropdown: PropTypes.func,\n /**\n * To specify size of the Header.\n * `small` - Default size.\n *\n * `nano` - To be used in inner pages with menubar.\n */\n size: PropTypes.oneOf([\"nano\", \"small\"]),\n};\n\nexport default Header;\n"],"names":["SIZES","nano","small","DROPDOWN_BUTTON_SIZES","Header","_ref","title","_ref$titleHelpPopover","titleHelpPopoverProps","searchProps","_ref$className","className","actionBlock","_ref$breadcrumbs","breadcrumbs","_ref$renderDropdown","renderDropdown","noop","_ref$size","size","_ref$dataTestid","dataTestId","headerRef","useRef","useLayoutEffect","updateHeaderHeight","current","height","offsetHeight","document","body","style","setProperty","concat","window","addEventListener","removeEventListener","removeProperty","isNano","hasBreadcrumbs","isNotEmpty","TitleTag","_jsxs","ref","classnames","children","_jsx","Breadcrumbs","Typography","asChild","variant","weight","isPresent","HelpPopover","_objectSpread","side","_ref2","_ref2$dropdownButtonP","dropdownButtonProps","dropdownProps","_objectWithoutProperties","_excluded","MoreDropdown","Search","enableUrlSync"],"mappings":"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"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var shallow = require('zustand/shallow');
|
|
4
|
+
var withImmutableActions = require('@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions');
|
|
5
|
+
var zustand = require('zustand');
|
|
6
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
7
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
8
|
+
var classnames = require('classnames');
|
|
9
|
+
var useHotkeys = require('@bigbinary/neeto-hotkeys');
|
|
10
|
+
var managers = require('@bigbinary/neetoui/managers');
|
|
11
|
+
var reactI18next = require('react-i18next');
|
|
12
|
+
var React = require('react');
|
|
13
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
14
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
15
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
16
|
+
var i18next = require('i18next');
|
|
17
|
+
var ramda = require('ramda');
|
|
18
|
+
var uaParser = require('../ua-parser-DgQ3nYoO.js');
|
|
19
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
20
|
+
var x = require('../x-B38UX0_0.js');
|
|
21
|
+
require('../createLucideIcon-DBDhE7kE.js');
|
|
22
|
+
|
|
23
|
+
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
24
|
+
var useKeyboardShortcutsStore = zustand.create(withImmutableActions(function (set) {
|
|
25
|
+
return {
|
|
26
|
+
isOpen: false,
|
|
27
|
+
setIsOpen: function setIsOpen(arg) {
|
|
28
|
+
if (typeof arg === "function") {
|
|
29
|
+
set(function (state) {
|
|
30
|
+
return {
|
|
31
|
+
isOpen: arg(state.isOpen)
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
} else {
|
|
35
|
+
set({
|
|
36
|
+
isOpen: arg
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}));
|
|
42
|
+
var useKeyboardShortcutsPaneState = function useKeyboardShortcutsPaneState() {
|
|
43
|
+
var _useKeyboardShortcuts = useKeyboardShortcutsStore(shallow.useShallow(function (store) {
|
|
44
|
+
return {
|
|
45
|
+
isOpen: store["isOpen"],
|
|
46
|
+
setIsOpen: store["setIsOpen"]
|
|
47
|
+
};
|
|
48
|
+
})),
|
|
49
|
+
isOpen = _useKeyboardShortcuts.isOpen,
|
|
50
|
+
setIsOpen = _useKeyboardShortcuts.setIsOpen;
|
|
51
|
+
return [isOpen, setIsOpen];
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
var KEY_SHORTFORM_MAP = {
|
|
55
|
+
command: "\u2318",
|
|
56
|
+
escape: "esc",
|
|
57
|
+
control: "ctrl",
|
|
58
|
+
option: "opt",
|
|
59
|
+
"return": "enter"
|
|
60
|
+
};
|
|
61
|
+
var MAC_TO_WINDOWS_KEYS_MAP = {
|
|
62
|
+
option: "alt",
|
|
63
|
+
command: "ctrl",
|
|
64
|
+
"return": "enter",
|
|
65
|
+
"delete": "backspace"
|
|
66
|
+
};
|
|
67
|
+
var OS = {
|
|
68
|
+
mac: "macOS"};
|
|
69
|
+
var FULL_SHORTCUTS_LINK_PROP_NAME = "fullShortcutsLink";
|
|
70
|
+
var TOOLTIP_CONTENT = {
|
|
71
|
+
"\u2318": "command",
|
|
72
|
+
esc: "escape",
|
|
73
|
+
ctrl: "control",
|
|
74
|
+
opt: "option",
|
|
75
|
+
backspace: "delete"
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var isMultipleHotkey = function isMultipleHotkey(hotkey) {
|
|
79
|
+
return Array.isArray(hotkey);
|
|
80
|
+
};
|
|
81
|
+
var replaceKeys = function replaceKeys(hotkey, keyName, replaceWith) {
|
|
82
|
+
return isMultipleHotkey(hotkey) ? hotkey.map(function (item) {
|
|
83
|
+
return item.replaceAll(keyName, replaceWith);
|
|
84
|
+
}) : hotkey.replaceAll(keyName, replaceWith);
|
|
85
|
+
};
|
|
86
|
+
var convertHotKeyToWindows = function convertHotKeyToWindows(hotkey) {
|
|
87
|
+
ramda.toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(function (_ref) {
|
|
88
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
89
|
+
macKey = _ref2[0],
|
|
90
|
+
windowsKey = _ref2[1];
|
|
91
|
+
hotkey = replaceKeys(hotkey, macKey, windowsKey);
|
|
92
|
+
});
|
|
93
|
+
return hotkey;
|
|
94
|
+
};
|
|
95
|
+
var convertHotkeyToUsersPlatform = function convertHotkeyToUsersPlatform(hotkey) {
|
|
96
|
+
var _result$os$name;
|
|
97
|
+
var parser = new uaParser.UAParser(navigator.userAgent);
|
|
98
|
+
var result = parser.getResult();
|
|
99
|
+
var isOSX = (_result$os$name = result.os.name) === null || _result$os$name === void 0 ? void 0 : _result$os$name.includes(OS.mac);
|
|
100
|
+
if (isOSX) return hotkey;
|
|
101
|
+
return convertHotKeyToWindows(hotkey);
|
|
102
|
+
};
|
|
103
|
+
var shortenHotKey = function shortenHotKey(hotkey) {
|
|
104
|
+
var result = hotkey;
|
|
105
|
+
Object.entries(KEY_SHORTFORM_MAP).forEach(function (_ref3) {
|
|
106
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
107
|
+
longform = _ref4[0],
|
|
108
|
+
shortform = _ref4[1];
|
|
109
|
+
result = result.replaceAll(longform, shortform);
|
|
110
|
+
});
|
|
111
|
+
return result;
|
|
112
|
+
};
|
|
113
|
+
var getGlobalShortcuts = function getGlobalShortcuts() {
|
|
114
|
+
return _defineProperty({}, i18next.t("neetoMolecules.keyboardShortcuts.global.categoryName"), {
|
|
115
|
+
openKeyboardShortcutsPane: {
|
|
116
|
+
sequence: "command+/",
|
|
117
|
+
description: i18next.t("neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane")
|
|
118
|
+
},
|
|
119
|
+
close: {
|
|
120
|
+
sequence: "esc",
|
|
121
|
+
description: i18next.t("neetoMolecules.keyboardShortcuts.global.close")
|
|
122
|
+
},
|
|
123
|
+
submitForm: {
|
|
124
|
+
sequence: "command+return",
|
|
125
|
+
description: i18next.t("neetoMolecules.keyboardShortcuts.global.submitForm")
|
|
126
|
+
},
|
|
127
|
+
openProductSwitcher: {
|
|
128
|
+
sequence: "command+u",
|
|
129
|
+
description: i18next.t("neetoMolecules.keyboardShortcuts.global.openProductSwitcher")
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
var getTooltipProps = function getTooltipProps(key) {
|
|
134
|
+
if (TOOLTIP_CONTENT[key]) {
|
|
135
|
+
return {
|
|
136
|
+
position: "top",
|
|
137
|
+
content: TOOLTIP_CONTENT[key],
|
|
138
|
+
followCursor: "horizontal"
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var _excluded = ["children"];
|
|
145
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
146
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
147
|
+
var KbdWithRef = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
148
|
+
var children = _ref.children,
|
|
149
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
150
|
+
return /*#__PURE__*/jsxRuntime.jsx("span", _objectSpread(_objectSpread({}, _objectSpread({
|
|
151
|
+
ref: ref
|
|
152
|
+
}, props)), {}, {
|
|
153
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Kbd, {
|
|
154
|
+
className: "neeto-ui-kbd",
|
|
155
|
+
children: children
|
|
156
|
+
})
|
|
157
|
+
}));
|
|
158
|
+
});
|
|
159
|
+
KbdWithRef.displayName = "KbdWithRef";
|
|
160
|
+
var KbdKey = function KbdKey(_ref2) {
|
|
161
|
+
var keyName = _ref2.keyName,
|
|
162
|
+
tooltipProps = _ref2.tooltipProps;
|
|
163
|
+
if (tooltipProps) {
|
|
164
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TooltipProvider, {
|
|
165
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Tooltip, {
|
|
166
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TooltipTrigger, {
|
|
167
|
+
asChild: true,
|
|
168
|
+
children: /*#__PURE__*/jsxRuntime.jsx(KbdWithRef, {
|
|
169
|
+
children: keyName
|
|
170
|
+
})
|
|
171
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TooltipContent, {
|
|
172
|
+
side: "top",
|
|
173
|
+
children: tooltipProps.content
|
|
174
|
+
})]
|
|
175
|
+
})
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Kbd, {
|
|
179
|
+
className: "neeto-ui-kbd",
|
|
180
|
+
children: keyName
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
var HotKey$1 = function HotKey(_ref3) {
|
|
184
|
+
var description = _ref3.description,
|
|
185
|
+
sequence = _ref3.sequence;
|
|
186
|
+
var hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));
|
|
187
|
+
var isSequentialHotkey = hotkey.includes(" ");
|
|
188
|
+
var isSimultaneousHotkey = hotkey.includes("+");
|
|
189
|
+
var isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;
|
|
190
|
+
var sequences = [];
|
|
191
|
+
if (isSingleKeyHotkey) {
|
|
192
|
+
sequences = [hotkey];
|
|
193
|
+
} else if (isSequentialHotkey) {
|
|
194
|
+
sequences = hotkey.split(" ");
|
|
195
|
+
} else if (isSimultaneousHotkey) {
|
|
196
|
+
sequences = hotkey.split("+");
|
|
197
|
+
}
|
|
198
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
199
|
+
className: "my-3 w-full",
|
|
200
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
201
|
+
className: "flex items-center justify-between gap-3",
|
|
202
|
+
"data-testid": "hotkey-item",
|
|
203
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
204
|
+
className: "text-foreground min-w-0 flex-grow text-sm leading-normal break-words",
|
|
205
|
+
children: description
|
|
206
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
207
|
+
className: "flex flex-shrink-0 items-center gap-1",
|
|
208
|
+
children: sequences.map(function (keyName, idx) {
|
|
209
|
+
return /*#__PURE__*/jsxRuntime.jsxs(React.Fragment, {
|
|
210
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(KbdKey, {
|
|
211
|
+
keyName: keyName,
|
|
212
|
+
tooltipProps: getTooltipProps(keyName)
|
|
213
|
+
}), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/jsxRuntime.jsx(KbdKey, {
|
|
214
|
+
keyName: "then"
|
|
215
|
+
})]
|
|
216
|
+
}, idx);
|
|
217
|
+
})
|
|
218
|
+
})]
|
|
219
|
+
})
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
var HotKey = /*#__PURE__*/React.memo(HotKey$1);
|
|
223
|
+
|
|
224
|
+
var HotKeyList$1 = reactUtils.withT(function (_ref) {
|
|
225
|
+
var t = _ref.t,
|
|
226
|
+
hotkeys = _ref.hotkeys;
|
|
227
|
+
return Object.keys(hotkeys).map(function (categoryName) {
|
|
228
|
+
var categoryValues = hotkeys[categoryName];
|
|
229
|
+
var fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];
|
|
230
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
231
|
+
className: "mt-4 px-4",
|
|
232
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
233
|
+
className: "text-foreground text-xs font-bold uppercase",
|
|
234
|
+
children: categoryName
|
|
235
|
+
}), Object.entries(categoryValues).map(function (_ref2) {
|
|
236
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
237
|
+
_ref3$ = _ref3[1],
|
|
238
|
+
sequence = _ref3$.sequence,
|
|
239
|
+
description = _ref3$.description;
|
|
240
|
+
return sequence && /*#__PURE__*/React.createElement(HotKey, {
|
|
241
|
+
description: description,
|
|
242
|
+
sequence: sequence,
|
|
243
|
+
key: sequence
|
|
244
|
+
});
|
|
245
|
+
}), fullShortcutsLink && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
246
|
+
asChild: true,
|
|
247
|
+
className: "mb-3",
|
|
248
|
+
variant: "link",
|
|
249
|
+
children: /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
250
|
+
href: fullShortcutsLink,
|
|
251
|
+
rel: "noreferrer",
|
|
252
|
+
target: "_blank",
|
|
253
|
+
children: t("neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts")
|
|
254
|
+
})
|
|
255
|
+
})]
|
|
256
|
+
}, categoryName);
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
var HotKeyList = /*#__PURE__*/React.memo(HotKeyList$1);
|
|
260
|
+
|
|
261
|
+
var KeyboardShortcutsPane = function KeyboardShortcutsPane(_ref) {
|
|
262
|
+
var _ref$productShortcuts = _ref.productShortcuts,
|
|
263
|
+
productShortcuts = _ref$productShortcuts === void 0 ? {} : _ref$productShortcuts;
|
|
264
|
+
var _useKeyboardShortcuts = useKeyboardShortcutsPaneState(),
|
|
265
|
+
_useKeyboardShortcuts2 = _slicedToArray(_useKeyboardShortcuts, 2),
|
|
266
|
+
isOpen = _useKeyboardShortcuts2[0],
|
|
267
|
+
setIsOpen = _useKeyboardShortcuts2[1];
|
|
268
|
+
var hasOverlays = managers.manager.hasOverlays();
|
|
269
|
+
// eslint-disable-next-line @bigbinary/neeto/no-dangling-constants
|
|
270
|
+
var GLOBAL_SHORTCUTS = getGlobalShortcuts();
|
|
271
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
272
|
+
t = _useTranslation.t;
|
|
273
|
+
var shortcuts = GLOBAL_SHORTCUTS[t("neetoMolecules.keyboardShortcuts.global.categoryName")];
|
|
274
|
+
useHotkeys(shortcuts.openKeyboardShortcutsPane.sequence, function () {
|
|
275
|
+
return setIsOpen(function (prevIsOpen) {
|
|
276
|
+
return !prevIsOpen;
|
|
277
|
+
});
|
|
278
|
+
}, {
|
|
279
|
+
mode: "global"
|
|
280
|
+
});
|
|
281
|
+
useHotkeys(shortcuts.close.sequence, function () {
|
|
282
|
+
return setIsOpen(false);
|
|
283
|
+
}, {
|
|
284
|
+
mode: "global",
|
|
285
|
+
enabled: isOpen
|
|
286
|
+
});
|
|
287
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
288
|
+
"data-testid": "keyboard-shortcuts-pane",
|
|
289
|
+
style: {
|
|
290
|
+
zIndex: "calc(var(--neeto-ui-modal-z-index) + 1)"
|
|
291
|
+
},
|
|
292
|
+
className: classnames("border-border bg-background transition-width ms-auto h-dvh shrink-0 grow-0 overflow-hidden border-l duration-300 ease-in-out rtl:border-r rtl:border-l-0", {
|
|
293
|
+
"w-80": isOpen,
|
|
294
|
+
"w-0": !isOpen,
|
|
295
|
+
absolute: hasOverlays,
|
|
296
|
+
"end-0": hasOverlays
|
|
297
|
+
}),
|
|
298
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
299
|
+
className: "h-full w-80 overflow-y-auto",
|
|
300
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
301
|
+
className: "border-border my-2 flex items-center justify-between border-b px-4 pb-2",
|
|
302
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h4", {
|
|
303
|
+
className: "text-foreground text-base font-semibold",
|
|
304
|
+
"data-testid": "keyboard-shortcuts-pane-title",
|
|
305
|
+
children: t("neetoMolecules.keyboardShortcuts.title")
|
|
306
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
307
|
+
"data-testid": "keyboard-shortcuts-pane-close-button",
|
|
308
|
+
size: "icon",
|
|
309
|
+
variant: "ghost",
|
|
310
|
+
onClick: function onClick() {
|
|
311
|
+
return setIsOpen(false);
|
|
312
|
+
},
|
|
313
|
+
children: /*#__PURE__*/jsxRuntime.jsx(x.X, {
|
|
314
|
+
size: 16
|
|
315
|
+
})
|
|
316
|
+
})]
|
|
317
|
+
}), /*#__PURE__*/jsxRuntime.jsx(HotKeyList, {
|
|
318
|
+
hotkeys: GLOBAL_SHORTCUTS
|
|
319
|
+
}), /*#__PURE__*/jsxRuntime.jsx(HotKeyList, {
|
|
320
|
+
hotkeys: productShortcuts
|
|
321
|
+
})]
|
|
322
|
+
})
|
|
323
|
+
});
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
var KeyboardShortcuts = {
|
|
327
|
+
Pane: KeyboardShortcutsPane,
|
|
328
|
+
usePaneState: useKeyboardShortcutsPaneState,
|
|
329
|
+
GLOBAL_SHORTCUTS: getGlobalShortcuts()
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
module.exports = KeyboardShortcuts;
|
|
333
|
+
//# sourceMappingURL=KeyboardShortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyboardShortcuts.js","sources":["../../../src/v2/components/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js","../../../src/v2/components/KeyboardShortcuts/Pane/constants.js","../../../src/v2/components/KeyboardShortcuts/Pane/utils.js","../../../src/v2/components/KeyboardShortcuts/Pane/HotKey.jsx","../../../src/v2/components/KeyboardShortcuts/Pane/HotKeyList.jsx","../../../src/v2/components/KeyboardShortcuts/Pane/index.jsx","../../../src/v2/components/KeyboardShortcuts/index.js"],"sourcesContent":["import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useKeyboardShortcutsStore = create(\n withImmutableActions(set => ({\n isOpen: false,\n\n setIsOpen: arg => {\n if (typeof arg === \"function\") {\n set(state => ({ isOpen: arg(state.isOpen) }));\n } else {\n set({ isOpen: arg });\n }\n },\n }))\n);\n\nconst useKeyboardShortcutsPaneState = () => {\n const { isOpen, setIsOpen } = useKeyboardShortcutsStore.pick();\n\n return [isOpen, setIsOpen];\n};\n\nexport default useKeyboardShortcutsPaneState;\n","export const KEY_SHORTFORM_MAP = {\n command: \"\\u2318\",\n escape: \"esc\",\n control: \"ctrl\",\n option: \"opt\",\n return: \"enter\",\n};\n\nexport const MAC_TO_WINDOWS_KEYS_MAP = {\n option: \"alt\",\n command: \"ctrl\",\n return: \"enter\",\n delete: \"backspace\",\n};\n\nexport const OS = { mac: \"macOS\", windows: \"Windows\" };\n\nexport const FULL_SHORTCUTS_LINK_PROP_NAME = \"fullShortcutsLink\";\n\nexport const TOOLTIP_CONTENT = {\n \"\\u2318\": \"command\",\n esc: \"escape\",\n ctrl: \"control\",\n opt: \"option\",\n backspace: \"delete\",\n};\n","import i18next from \"i18next\";\nimport { toPairs } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nimport {\n KEY_SHORTFORM_MAP,\n MAC_TO_WINDOWS_KEYS_MAP,\n OS,\n TOOLTIP_CONTENT,\n} from \"./constants\";\n\nconst isMultipleHotkey = hotkey => Array.isArray(hotkey);\n\nconst replaceKeys = (hotkey, keyName, replaceWith) =>\n isMultipleHotkey(hotkey)\n ? hotkey.map(item => item.replaceAll(keyName, replaceWith))\n : hotkey.replaceAll(keyName, replaceWith);\n\nconst convertHotKeyToWindows = hotkey => {\n toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(([macKey, windowsKey]) => {\n hotkey = replaceKeys(hotkey, macKey, windowsKey);\n });\n\n return hotkey;\n};\n\nexport const convertHotkeyToUsersPlatform = hotkey => {\n const parser = new UAParser(navigator.userAgent);\n const result = parser.getResult();\n const isOSX = result.os.name?.includes(OS.mac);\n if (isOSX) return hotkey;\n\n return convertHotKeyToWindows(hotkey);\n};\n\nexport const shortenHotKey = hotkey => {\n let result = hotkey;\n Object.entries(KEY_SHORTFORM_MAP).forEach(([longform, shortform]) => {\n result = result.replaceAll(longform, shortform);\n });\n\n return result;\n};\n\nexport const getGlobalShortcuts = () => ({\n [i18next.t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")]: {\n openKeyboardShortcutsPane: {\n sequence: \"command+/\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane\"\n ),\n },\n close: {\n sequence: \"esc\",\n description: i18next.t(\"neetoMolecules.keyboardShortcuts.global.close\"),\n },\n submitForm: {\n sequence: \"command+return\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.submitForm\"\n ),\n },\n openProductSwitcher: {\n sequence: \"command+u\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openProductSwitcher\"\n ),\n },\n },\n});\n\nexport const getTooltipProps = key => {\n if (TOOLTIP_CONTENT[key]) {\n return {\n position: \"top\",\n content: TOOLTIP_CONTENT[key],\n followCursor: \"horizontal\",\n };\n }\n\n return null;\n};\n","import { memo, forwardRef, Fragment } from \"react\";\n\nimport {\n Kbd,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@bigbinary/neeto-atoms\";\n\nimport {\n convertHotkeyToUsersPlatform,\n shortenHotKey,\n getTooltipProps,\n} from \"./utils\";\n\nconst KbdWithRef = forwardRef(({ children, ...props }, ref) => (\n <span {...{ ref, ...props }}>\n <Kbd className=\"neeto-ui-kbd\">{children}</Kbd>\n </span>\n));\nKbdWithRef.displayName = \"KbdWithRef\";\n\nconst KbdKey = ({ keyName, tooltipProps }) => {\n if (tooltipProps) {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <KbdWithRef>{keyName}</KbdWithRef>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{tooltipProps.content}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <Kbd className=\"neeto-ui-kbd\">{keyName}</Kbd>;\n};\n\nconst HotKey = ({ description, sequence }) => {\n const hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));\n const isSequentialHotkey = hotkey.includes(\" \");\n const isSimultaneousHotkey = hotkey.includes(\"+\");\n const isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;\n let sequences = [];\n\n if (isSingleKeyHotkey) {\n sequences = [hotkey];\n } else if (isSequentialHotkey) {\n sequences = hotkey.split(\" \");\n } else if (isSimultaneousHotkey) {\n sequences = hotkey.split(\"+\");\n }\n\n return (\n <div className=\"my-3 w-full\">\n <div\n className=\"flex items-center justify-between gap-3\"\n data-testid=\"hotkey-item\"\n >\n <span className=\"text-foreground min-w-0 flex-grow text-sm leading-normal break-words\">\n {description}\n </span>\n <div className=\"flex flex-shrink-0 items-center gap-1\">\n {sequences.map((keyName, idx) => (\n <Fragment key={idx}>\n <KbdKey\n {...{ keyName }}\n tooltipProps={getTooltipProps(keyName)}\n />\n {isSequentialHotkey && idx + 1 !== sequences.length && (\n <KbdKey keyName=\"then\" />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(HotKey);\n","import { memo } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/react-utils\";\n\nimport { FULL_SHORTCUTS_LINK_PROP_NAME } from \"./constants\";\nimport HotKey from \"./HotKey\";\n\nconst HotKeyList = withT(({ t, hotkeys }) =>\n Object.keys(hotkeys).map(categoryName => {\n const categoryValues = hotkeys[categoryName];\n const fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];\n\n return (\n <div className=\"mt-4 px-4\" key={categoryName}>\n <span className=\"text-foreground text-xs font-bold uppercase\">\n {categoryName}\n </span>\n {Object.entries(categoryValues).map(\n ([, { sequence, description }]) =>\n sequence && <HotKey {...{ description, sequence }} key={sequence} />\n )}\n {fullShortcutsLink && (\n <Button asChild className=\"mb-3\" variant=\"link\">\n <a href={fullShortcutsLink} rel=\"noreferrer\" target=\"_blank\">\n {t(\"neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts\")}\n </a>\n </Button>\n )}\n </div>\n );\n })\n);\n\nexport default memo(HotKeyList);\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport useHotkeys from \"neetohotkeys\";\nimport { manager } from \"neetoui/managers\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport HotKeyList from \"./HotKeyList\";\nimport { getGlobalShortcuts } from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../hooks/useKeyboardShortcutsPaneState\";\n\nconst KeyboardShortcutsPane = ({ productShortcuts = {} }) => {\n const [isOpen, setIsOpen] = useKeyboardShortcutsPaneState();\n const hasOverlays = manager.hasOverlays();\n // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants\n const GLOBAL_SHORTCUTS = getGlobalShortcuts();\n const { t } = useTranslation();\n\n const shortcuts =\n GLOBAL_SHORTCUTS[t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")];\n\n useHotkeys(\n shortcuts.openKeyboardShortcutsPane.sequence,\n () => setIsOpen(prevIsOpen => !prevIsOpen),\n { mode: \"global\" }\n );\n\n useHotkeys(shortcuts.close.sequence, () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\n });\n\n return (\n <div\n data-testid=\"keyboard-shortcuts-pane\"\n style={{ zIndex: \"calc(var(--neeto-ui-modal-z-index) + 1)\" }}\n className={classnames(\n \"border-border bg-background transition-width ms-auto h-dvh shrink-0 grow-0 overflow-hidden border-l duration-300 ease-in-out rtl:border-r rtl:border-l-0\",\n {\n \"w-80\": isOpen,\n \"w-0\": !isOpen,\n absolute: hasOverlays,\n \"end-0\": hasOverlays,\n }\n )}\n >\n <div className=\"h-full w-80 overflow-y-auto\">\n <div className=\"border-border my-2 flex items-center justify-between border-b px-4 pb-2\">\n <h4\n className=\"text-foreground text-base font-semibold\"\n data-testid=\"keyboard-shortcuts-pane-title\"\n >\n {t(\"neetoMolecules.keyboardShortcuts.title\")}\n </h4>\n <Button\n data-testid=\"keyboard-shortcuts-pane-close-button\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={() => setIsOpen(false)}\n >\n <X size={16} />\n </Button>\n </div>\n <HotKeyList hotkeys={GLOBAL_SHORTCUTS} />\n <HotKeyList hotkeys={productShortcuts} />\n </div>\n </div>\n );\n};\n\nKeyboardShortcutsPane.propTypes = {\n /**\n * Used to pass in the product specific keyboard shortcuts.\n */\n productShortcuts: PropTypes.object,\n};\n\nexport default KeyboardShortcutsPane;\n","import useKeyboardShortcutsPaneState from \"./hooks/useKeyboardShortcutsPaneState\";\nimport KeyboardShortcutsPane from \"./Pane\";\nimport { getGlobalShortcuts } from \"./Pane/utils\";\n\nconst KeyboardShortcuts = {\n Pane: KeyboardShortcutsPane,\n usePaneState: useKeyboardShortcutsPaneState,\n GLOBAL_SHORTCUTS: getGlobalShortcuts(),\n};\n\nexport default KeyboardShortcuts;\n"],"names":["useKeyboardShortcutsStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useKeyboardShortcutsPaneState","_useKeyboardShortcuts","useShallow","store","KEY_SHORTFORM_MAP","command","escape","control","option","MAC_TO_WINDOWS_KEYS_MAP","OS","mac","FULL_SHORTCUTS_LINK_PROP_NAME","TOOLTIP_CONTENT","esc","ctrl","opt","backspace","isMultipleHotkey","hotkey","Array","isArray","replaceKeys","keyName","replaceWith","map","item","replaceAll","convertHotKeyToWindows","toPairs","forEach","_ref","_ref2","_slicedToArray","macKey","windowsKey","convertHotkeyToUsersPlatform","_result$os$name","parser","UAParser","navigator","userAgent","result","getResult","isOSX","os","name","includes","shortenHotKey","Object","entries","_ref3","_ref4","longform","shortform","getGlobalShortcuts","_defineProperty","i18next","t","openKeyboardShortcutsPane","sequence","description","close","submitForm","openProductSwitcher","getTooltipProps","key","position","content","followCursor","KbdWithRef","forwardRef","ref","children","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Kbd","className","displayName","KbdKey","tooltipProps","TooltipProvider","_jsxs","Tooltip","TooltipTrigger","asChild","TooltipContent","side","HotKey","isSequentialHotkey","isSimultaneousHotkey","isSingleKeyHotkey","sequences","split","idx","Fragment","length","memo","HotKeyList","withT","hotkeys","keys","categoryName","categoryValues","fullShortcutsLink","_ref3$","_createElement","Button","variant","href","rel","target","KeyboardShortcutsPane","_ref$productShortcuts","productShortcuts","_useKeyboardShortcuts2","hasOverlays","manager","GLOBAL_SHORTCUTS","_useTranslation","useTranslation","shortcuts","useHotkeys","prevIsOpen","mode","enabled","style","zIndex","classnames","absolute","size","onClick","X","KeyboardShortcuts","Pane","usePaneState"],"mappings":"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"}
|