@bigbinary/neeto-molecules 4.1.49 → 4.1.51
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/CSSTransition-DU3ZFKUe.js +1097 -0
- package/dist/CSSTransition-DU3ZFKUe.js.map +1 -0
- package/dist/CalendarView.js +2 -1
- package/dist/CalendarView.js.map +1 -1
- package/dist/{Columns-BB50-jks.js → Columns-D68XA-e7.js} +2 -53
- package/dist/Columns-D68XA-e7.js.map +1 -0
- package/dist/Columns-cUgR6NTO.js +502 -0
- package/dist/Columns-cUgR6NTO.js.map +1 -0
- package/dist/Columns.js +2 -1
- package/dist/Columns.js.map +1 -1
- package/dist/MenuBar.js +8 -1095
- package/dist/MenuBar.js.map +1 -1
- package/dist/SubHeader.js +2 -1
- package/dist/SubHeader.js.map +1 -1
- package/dist/Taxonomy.js +2 -1
- package/dist/Taxonomy.js.map +1 -1
- package/dist/circle-question-mark-Dib48f5Z.js +19 -0
- package/dist/circle-question-mark-Dib48f5Z.js.map +1 -0
- package/dist/cjs/CSSTransition-D_jVZ_GR.js +1099 -0
- package/dist/cjs/CSSTransition-D_jVZ_GR.js.map +1 -0
- package/dist/cjs/CalendarView.js +2 -1
- package/dist/cjs/CalendarView.js.map +1 -1
- package/dist/cjs/{Columns-jm_CUnLP.js → Columns-BACqpEQU.js} +3 -54
- package/dist/cjs/Columns-BACqpEQU.js.map +1 -0
- package/dist/cjs/Columns-D3eocaeY.js +508 -0
- package/dist/cjs/Columns-D3eocaeY.js.map +1 -0
- package/dist/cjs/Columns.js +2 -1
- package/dist/cjs/Columns.js.map +1 -1
- package/dist/cjs/MenuBar.js +7 -1094
- package/dist/cjs/MenuBar.js.map +1 -1
- package/dist/cjs/SubHeader.js +2 -1
- package/dist/cjs/SubHeader.js.map +1 -1
- package/dist/cjs/Taxonomy.js +2 -1
- package/dist/cjs/Taxonomy.js.map +1 -1
- package/dist/cjs/circle-question-mark-kxBMPyWQ.js +21 -0
- package/dist/cjs/circle-question-mark-kxBMPyWQ.js.map +1 -0
- package/dist/cjs/ellipsis-BcfLTtl5.js +21 -0
- package/dist/cjs/ellipsis-BcfLTtl5.js.map +1 -0
- package/dist/cjs/plus-MoDFAiKt.js +20 -0
- package/dist/cjs/plus-MoDFAiKt.js.map +1 -0
- package/dist/cjs/search-BBuFYdmG.js +20 -0
- package/dist/cjs/search-BBuFYdmG.js.map +1 -0
- package/dist/cjs/utilities.esm-jwIHISzF.js +58 -0
- package/dist/cjs/utilities.esm-jwIHISzF.js.map +1 -0
- package/dist/cjs/v2/Breadcrumbs.js +50 -0
- package/dist/cjs/v2/Breadcrumbs.js.map +1 -0
- package/dist/cjs/v2/Columns.js +34 -0
- package/dist/cjs/v2/Columns.js.map +1 -0
- package/dist/cjs/v2/Container.js +34 -0
- package/dist/cjs/v2/Container.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +22 -49
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Header.js +128 -0
- package/dist/cjs/v2/Header.js.map +1 -0
- package/dist/cjs/v2/HelpPopover.js +93 -0
- package/dist/cjs/v2/HelpPopover.js.map +1 -0
- package/dist/cjs/v2/MenuBar.js +265 -0
- package/dist/cjs/v2/MenuBar.js.map +1 -0
- package/dist/cjs/v2/MoreDropdown.js +201 -0
- package/dist/cjs/v2/MoreDropdown.js.map +1 -0
- package/dist/cjs/v2/Search.js +129 -0
- package/dist/cjs/v2/Search.js.map +1 -0
- package/dist/cjs/v2/Sidebar.js +5 -32
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/cjs/v2/SubHeader.js +246 -0
- package/dist/cjs/v2/SubHeader.js.map +1 -0
- package/dist/ellipsis-DpI9xqUK.js +19 -0
- package/dist/ellipsis-DpI9xqUK.js.map +1 -0
- package/dist/plus-clM1IC_E.js +18 -0
- package/dist/plus-clM1IC_E.js.map +1 -0
- package/dist/search-DCgpNjip.js +18 -0
- package/dist/search-DCgpNjip.js.map +1 -0
- package/dist/utilities.esm-CS21Daln.js +56 -0
- package/dist/utilities.esm-CS21Daln.js.map +1 -0
- package/dist/v2/Breadcrumbs.js +48 -0
- package/dist/v2/Breadcrumbs.js.map +1 -0
- package/dist/v2/Columns.js +22 -0
- package/dist/v2/Columns.js.map +1 -0
- package/dist/v2/Container.js +32 -0
- package/dist/v2/Container.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +19 -46
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Header.js +126 -0
- package/dist/v2/Header.js.map +1 -0
- package/dist/v2/HelpPopover.js +91 -0
- package/dist/v2/HelpPopover.js.map +1 -0
- package/dist/v2/MenuBar.js +263 -0
- package/dist/v2/MenuBar.js.map +1 -0
- package/dist/v2/MoreDropdown.js +199 -0
- package/dist/v2/MoreDropdown.js.map +1 -0
- package/dist/v2/Search.js +127 -0
- package/dist/v2/Search.js.map +1 -0
- package/dist/v2/Sidebar.js +3 -30
- package/dist/v2/Sidebar.js.map +1 -1
- package/dist/v2/SubHeader.js +244 -0
- package/dist/v2/SubHeader.js.map +1 -0
- package/package.json +1 -1
- package/types/v2/Breadcrumbs.d.ts +12 -0
- package/types/v2/Columns.d.ts +42 -0
- package/types/v2/Container.d.ts +8 -0
- package/types/v2/Header.d.ts +22 -0
- package/types/v2/HelpPopover.d.ts +23 -0
- package/types/v2/MenuBar.d.ts +68 -0
- package/types/v2/MoreDropdown.d.ts +42 -0
- package/types/v2/Search.d.ts +16 -0
- package/types/v2/SubHeader.d.ts +51 -0
- package/dist/Columns-BB50-jks.js.map +0 -1
- package/dist/cjs/Columns-jm_CUnLP.js.map +0 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
7
|
+
var classnames = require('classnames');
|
|
8
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
9
|
+
var v2_Breadcrumbs = require('./Breadcrumbs.js');
|
|
10
|
+
var v2_HelpPopover = require('./HelpPopover.js');
|
|
11
|
+
var v2_MoreDropdown = require('./MoreDropdown.js');
|
|
12
|
+
var v2_Search = require('./Search.js');
|
|
13
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
14
|
+
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
15
|
+
require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
16
|
+
require('react-router-dom');
|
|
17
|
+
require('../circle-question-mark-kxBMPyWQ.js');
|
|
18
|
+
require('../createLucideIcon-DBDhE7kE.js');
|
|
19
|
+
require('ramda');
|
|
20
|
+
require('react-i18next');
|
|
21
|
+
require('../ellipsis-BcfLTtl5.js');
|
|
22
|
+
require('@babel/runtime/helpers/slicedToArray');
|
|
23
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce');
|
|
24
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/useQueryParams');
|
|
25
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect');
|
|
26
|
+
require('@bigbinary/neeto-commons-frontend/utils');
|
|
27
|
+
require('../search-BBuFYdmG.js');
|
|
28
|
+
|
|
29
|
+
var SIZES = {
|
|
30
|
+
nano: "nano",
|
|
31
|
+
small: "small"
|
|
32
|
+
};
|
|
33
|
+
var DROPDOWN_BUTTON_SIZES = {
|
|
34
|
+
nano: "small",
|
|
35
|
+
small: "medium"
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var _excluded = ["dropdownButtonProps"];
|
|
39
|
+
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; }
|
|
40
|
+
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; }
|
|
41
|
+
var Header = function Header(_ref) {
|
|
42
|
+
var title = _ref.title,
|
|
43
|
+
_ref$titleHelpPopover = _ref.titleHelpPopoverProps,
|
|
44
|
+
titleHelpPopoverProps = _ref$titleHelpPopover === void 0 ? {} : _ref$titleHelpPopover,
|
|
45
|
+
searchProps = _ref.searchProps,
|
|
46
|
+
_ref$className = _ref.className,
|
|
47
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
48
|
+
actionBlock = _ref.actionBlock,
|
|
49
|
+
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
50
|
+
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
51
|
+
_ref$renderDropdown = _ref.renderDropdown,
|
|
52
|
+
renderDropdown = _ref$renderDropdown === void 0 ? neetoCist.noop : _ref$renderDropdown,
|
|
53
|
+
_ref$size = _ref.size,
|
|
54
|
+
size = _ref$size === void 0 ? "small" : _ref$size,
|
|
55
|
+
_ref$dataTestid = _ref["data-testid"],
|
|
56
|
+
dataTestId = _ref$dataTestid === void 0 ? "neeto-molecules-header" : _ref$dataTestid;
|
|
57
|
+
var headerRef = React.useRef(null);
|
|
58
|
+
React.useLayoutEffect(function () {
|
|
59
|
+
var updateHeaderHeight = function updateHeaderHeight() {
|
|
60
|
+
if (!headerRef.current) return;
|
|
61
|
+
var height = headerRef.current.offsetHeight;
|
|
62
|
+
document.body.style.setProperty("--neeto-molecules-effective-header-height", "".concat(height, "px"));
|
|
63
|
+
};
|
|
64
|
+
updateHeaderHeight();
|
|
65
|
+
window.addEventListener("resize", updateHeaderHeight);
|
|
66
|
+
return function () {
|
|
67
|
+
window.removeEventListener("resize", updateHeaderHeight);
|
|
68
|
+
document.body.style.removeProperty("--neeto-molecules-effective-header-height");
|
|
69
|
+
};
|
|
70
|
+
}, []);
|
|
71
|
+
var isNano = size === SIZES.nano;
|
|
72
|
+
var hasBreadcrumbs = neetoCist.isNotEmpty(breadcrumbs);
|
|
73
|
+
var TitleTag = isNano ? "h3" : "h1";
|
|
74
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
75
|
+
"data-testid": dataTestId,
|
|
76
|
+
ref: headerRef,
|
|
77
|
+
className: classnames("bg-background text-foreground flex w-full shrink-0 flex-row items-start justify-between gap-4 pt-10 pb-6", "flex-wrap lg:flex-nowrap", {
|
|
78
|
+
"min-h-0": isNano || size === SIZES.small
|
|
79
|
+
}, className),
|
|
80
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
81
|
+
className: "flex flex-row flex-wrap items-start justify-start",
|
|
82
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
83
|
+
className: "flex flex-wrap",
|
|
84
|
+
children: [hasBreadcrumbs && /*#__PURE__*/jsxRuntime.jsx(v2_Breadcrumbs, {
|
|
85
|
+
breadcrumbs: breadcrumbs
|
|
86
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
87
|
+
className: classnames("flex w-full flex-row items-center gap-3", hasBreadcrumbs ? "mt-0" : "-mt-1 max-lg:-mt-2.5 max-md:-mt-2 max-sm:-mt-1"),
|
|
88
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
89
|
+
asChild: true,
|
|
90
|
+
variant: isNano ? "h3" : "h1",
|
|
91
|
+
weight: "semibold",
|
|
92
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(TitleTag, {
|
|
93
|
+
"data-testid": "main-header",
|
|
94
|
+
children: [title, neetoCist.isPresent(titleHelpPopoverProps) && /*#__PURE__*/jsxRuntime.jsx(v2_HelpPopover, _objectSpread({
|
|
95
|
+
className: "ms-2 inline-flex align-middle",
|
|
96
|
+
side: "right"
|
|
97
|
+
}, titleHelpPopoverProps)), renderDropdown(function (_ref2) {
|
|
98
|
+
var _ref2$dropdownButtonP = _ref2.dropdownButtonProps,
|
|
99
|
+
dropdownButtonProps = _ref2$dropdownButtonP === void 0 ? {} : _ref2$dropdownButtonP,
|
|
100
|
+
dropdownProps = _objectWithoutProperties(_ref2, _excluded);
|
|
101
|
+
return /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
102
|
+
className: "ms-2 inline-flex align-middle",
|
|
103
|
+
children: /*#__PURE__*/jsxRuntime.jsx(v2_MoreDropdown, _objectSpread({
|
|
104
|
+
dropdownButtonProps: _objectSpread({
|
|
105
|
+
size: DROPDOWN_BUTTON_SIZES[size]
|
|
106
|
+
}, dropdownButtonProps)
|
|
107
|
+
}, dropdownProps))
|
|
108
|
+
});
|
|
109
|
+
})]
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
})]
|
|
113
|
+
})
|
|
114
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
115
|
+
className: classnames("flex items-center gap-3 empty:hidden", "flex-wrap justify-start md:flex-nowrap md:justify-end"),
|
|
116
|
+
children: [searchProps && /*#__PURE__*/jsxRuntime.jsx(v2_Search, _objectSpread({
|
|
117
|
+
enableUrlSync: true,
|
|
118
|
+
className: classnames("min-w-[12.6rem] grow-0", searchProps.className)
|
|
119
|
+
}, searchProps)), actionBlock && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
120
|
+
className: "flex shrink-0 items-center justify-end gap-3 max-[360px]:shrink max-[360px]:flex-wrap max-[360px]:justify-start",
|
|
121
|
+
children: actionBlock
|
|
122
|
+
})]
|
|
123
|
+
})]
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
module.exports = Header;
|
|
128
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
6
|
+
var classnames = require('classnames');
|
|
7
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var circleQuestionMark = require('../circle-question-mark-kxBMPyWQ.js');
|
|
10
|
+
require('../createLucideIcon-DBDhE7kE.js');
|
|
11
|
+
require('react');
|
|
12
|
+
|
|
13
|
+
var SIZE = {
|
|
14
|
+
"default": 16,
|
|
15
|
+
large: 20
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var _excluded = ["label"];
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
var HelpPopover = reactUtils.withT(function (_ref) {
|
|
22
|
+
var t = _ref.t,
|
|
23
|
+
title = _ref.title,
|
|
24
|
+
_ref$size = _ref.size,
|
|
25
|
+
size = _ref$size === void 0 ? "large" : _ref$size,
|
|
26
|
+
description = _ref.description,
|
|
27
|
+
helpLinkProps = _ref.helpLinkProps,
|
|
28
|
+
className = _ref.className,
|
|
29
|
+
_ref$iconColor = _ref.iconColor,
|
|
30
|
+
iconColor = _ref$iconColor === void 0 ? "currentColor" : _ref$iconColor,
|
|
31
|
+
_ref$icon = _ref.icon,
|
|
32
|
+
IconComponent = _ref$icon === void 0 ? circleQuestionMark.CircleQuestionMark : _ref$icon,
|
|
33
|
+
side = _ref.side,
|
|
34
|
+
sideOffset = _ref.sideOffset,
|
|
35
|
+
align = _ref.align,
|
|
36
|
+
alignOffset = _ref.alignOffset;
|
|
37
|
+
return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.HoverCard, {
|
|
38
|
+
closeDelay: 150,
|
|
39
|
+
openDelay: 0,
|
|
40
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.HoverCardTrigger, {
|
|
41
|
+
asChild: true,
|
|
42
|
+
children: /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
43
|
+
"data-testid": "help-popover-button",
|
|
44
|
+
type: "button",
|
|
45
|
+
className: classnames("inline-flex cursor-pointer items-center justify-center rounded-full border-none bg-transparent p-0", className),
|
|
46
|
+
children: /*#__PURE__*/jsxRuntime.jsx(IconComponent, {
|
|
47
|
+
color: iconColor,
|
|
48
|
+
size: SIZE[size]
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.HoverCardContent, {
|
|
52
|
+
align: align,
|
|
53
|
+
alignOffset: alignOffset,
|
|
54
|
+
side: side,
|
|
55
|
+
sideOffset: sideOffset,
|
|
56
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
57
|
+
className: "flex flex-col",
|
|
58
|
+
onClick: function onClick(event) {
|
|
59
|
+
return event.stopPropagation();
|
|
60
|
+
},
|
|
61
|
+
children: [title && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
62
|
+
asChild: true,
|
|
63
|
+
variant: "body2",
|
|
64
|
+
weight: "semibold",
|
|
65
|
+
children: /*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
66
|
+
className: "mb-2",
|
|
67
|
+
"data-testid": "help-popover-title",
|
|
68
|
+
children: title
|
|
69
|
+
})
|
|
70
|
+
}), typeof description === "string" ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
71
|
+
color: "muted",
|
|
72
|
+
"data-testid": "help-popover-description",
|
|
73
|
+
variant: "body2",
|
|
74
|
+
children: description
|
|
75
|
+
}) : description, helpLinkProps && function () {
|
|
76
|
+
var linkLabel = helpLinkProps.label,
|
|
77
|
+
restLinkProps = _objectWithoutProperties(helpLinkProps, _excluded);
|
|
78
|
+
return /*#__PURE__*/jsxRuntime.jsx("a", _objectSpread(_objectSpread({
|
|
79
|
+
className: "text-primary mt-3 text-sm hover:underline",
|
|
80
|
+
"data-testid": "help-popover-link-button",
|
|
81
|
+
rel: "noreferrer",
|
|
82
|
+
target: "_blank"
|
|
83
|
+
}, restLinkProps), {}, {
|
|
84
|
+
children: linkLabel !== null && linkLabel !== void 0 ? linkLabel : t("neetoMolecules.common.viewHelpArticle")
|
|
85
|
+
}));
|
|
86
|
+
}()]
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
module.exports = HelpPopover;
|
|
93
|
+
//# sourceMappingURL=HelpPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpPopover.js","sources":["../../../src/v2/components/HelpPopover/constants.js","../../../src/v2/components/HelpPopover/index.jsx"],"sourcesContent":["export const SIZE = { default: 16, large: 20 };\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { CircleHelp } from \"lucide-react\";\nimport { withT } from \"neetocommons/react-utils\";\nimport PropTypes from \"prop-types\";\n\nimport { SIZE } from \"./constants\";\n\nconst HelpPopover = withT(\n ({\n t,\n title,\n size = \"large\",\n description,\n helpLinkProps,\n className,\n iconColor = \"currentColor\",\n icon: IconComponent = CircleHelp,\n side,\n sideOffset,\n align,\n alignOffset,\n }) => (\n <HoverCard closeDelay={150} openDelay={0}>\n <HoverCardTrigger asChild>\n <button\n data-testid=\"help-popover-button\"\n type=\"button\"\n className={classNames(\n \"inline-flex cursor-pointer items-center justify-center rounded-full border-none bg-transparent p-0\",\n className\n )}\n >\n <IconComponent color={iconColor} size={SIZE[size]} />\n </button>\n </HoverCardTrigger>\n <HoverCardContent {...{ align, alignOffset, side, sideOffset }}>\n <div\n className=\"flex flex-col\"\n onClick={event => event.stopPropagation()}\n >\n {title && (\n <Typography asChild variant=\"body2\" weight=\"semibold\">\n <h3 className=\"mb-2\" data-testid=\"help-popover-title\">\n {title}\n </h3>\n </Typography>\n )}\n {typeof description === \"string\" ? (\n <Typography\n color=\"muted\"\n data-testid=\"help-popover-description\"\n variant=\"body2\"\n >\n {description}\n </Typography>\n ) : (\n description\n )}\n {helpLinkProps &&\n (() => {\n const { label: linkLabel, ...restLinkProps } = helpLinkProps;\n\n return (\n <a\n className=\"text-primary mt-3 text-sm hover:underline\"\n data-testid=\"help-popover-link-button\"\n rel=\"noreferrer\"\n target=\"_blank\"\n {...restLinkProps}\n >\n {linkLabel ?? t(\"neetoMolecules.common.viewHelpArticle\")}\n </a>\n );\n })()}\n </div>\n </HoverCardContent>\n </HoverCard>\n )\n);\n\nHelpPopover.propTypes = {\n title: PropTypes.string,\n size: PropTypes.oneOf([\"default\", \"large\"]),\n description: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n helpLinkProps: PropTypes.object,\n className: PropTypes.string,\n iconColor: PropTypes.string,\n icon: PropTypes.node,\n side: PropTypes.oneOf([\"top\", \"right\", \"bottom\", \"left\"]),\n sideOffset: PropTypes.number,\n align: PropTypes.oneOf([\"start\", \"center\", \"end\"]),\n alignOffset: PropTypes.number,\n};\n\nexport default HelpPopover;\n"],"names":["SIZE","large","HelpPopover","withT","_ref","t","title","_ref$size","size","description","helpLinkProps","className","_ref$iconColor","iconColor","_ref$icon","icon","IconComponent","CircleHelp","side","sideOffset","align","alignOffset","_jsxs","HoverCard","closeDelay","openDelay","children","_jsx","HoverCardTrigger","asChild","type","classNames","color","HoverCardContent","onClick","event","stopPropagation","Typography","variant","weight","linkLabel","label","restLinkProps","_objectWithoutProperties","_excluded","_objectSpread","rel","target"],"mappings":";;;;;;;;;;;;AAAO,IAAMA,IAAI,GAAG;AAAE,EAAA,SAAA,EAAS,EAAE;AAAEC,EAAAA,KAAK,EAAE;AAAG,CAAC;;;;;ACc9C,IAAMC,WAAW,GAAGC,gBAAK,CACvB,UAAAC,IAAA,EAAA;AAAA,EAAA,IACEC,CAAC,GAAAD,IAAA,CAADC,CAAC;IACDC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAAC,SAAA,GAAAH,IAAA,CACLI,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,OAAO,GAAAA,SAAA;IACdE,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,SAAS,GAAAP,IAAA,CAATO,SAAS;IAAAC,cAAA,GAAAR,IAAA,CACTS,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,cAAc,GAAAA,cAAA;IAAAE,SAAA,GAAAV,IAAA,CAC1BW,IAAI;AAAEC,IAAAA,aAAa,GAAAF,SAAA,KAAA,MAAA,GAAGG,qCAAU,GAAAH,SAAA;IAChCI,IAAI,GAAAd,IAAA,CAAJc,IAAI;IACJC,UAAU,GAAAf,IAAA,CAAVe,UAAU;IACVC,KAAK,GAAAhB,IAAA,CAALgB,KAAK;IACLC,WAAW,GAAAjB,IAAA,CAAXiB,WAAW;EAAA,oBAEXC,eAAA,CAACC,oBAAS,EAAA;AAACC,IAAAA,UAAU,EAAE,GAAI;AAACC,IAAAA,SAAS,EAAE,CAAE;IAAAC,QAAA,EAAA,cACvCC,cAAA,CAACC,2BAAgB,EAAA;MAACC,OAAO,EAAA,IAAA;AAAAH,MAAAA,QAAA,eACvBC,cAAA,CAAA,QAAA,EAAA;AACE,QAAA,aAAA,EAAY,qBAAqB;AACjCG,QAAAA,IAAI,EAAC,QAAQ;AACbnB,QAAAA,SAAS,EAAEoB,UAAU,CACnB,oGAAoG,EACpGpB,SACF,CAAE;QAAAe,QAAA,eAEFC,cAAA,CAACX,aAAa,EAAA;AAACgB,UAAAA,KAAK,EAAEnB,SAAU;UAACL,IAAI,EAAER,IAAI,CAACQ,IAAI;SAAI;OAC9C;AAAC,KACO,CAAC,eACnBmB,cAAA,CAACM,2BAAgB,EAAA;AAAOb,MAAAA,KAAK,EAALA,KAAK;AAAEC,MAAAA,WAAW,EAAXA,WAAW;AAAEH,MAAAA,IAAI,EAAJA,IAAI;AAAEC,MAAAA,UAAU,EAAVA,UAAU;AAAAO,MAAAA,QAAA,eAC1DJ,eAAA,CAAA,KAAA,EAAA;AACEX,QAAAA,SAAS,EAAC,eAAe;AACzBuB,QAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEC,KAAK,EAAA;AAAA,UAAA,OAAIA,KAAK,CAACC,eAAe,EAAE;QAAA,CAAC;AAAAV,QAAAA,QAAA,EAAA,CAEzCpB,KAAK,iBACJqB,cAAA,CAACU,qBAAU,EAAA;UAACR,OAAO,EAAA,IAAA;AAACS,UAAAA,OAAO,EAAC,OAAO;AAACC,UAAAA,MAAM,EAAC,UAAU;AAAAb,UAAAA,QAAA,eACnDC,cAAA,CAAA,IAAA,EAAA;AAAIhB,YAAAA,SAAS,EAAC,MAAM;AAAC,YAAA,aAAA,EAAY,oBAAoB;AAAAe,YAAAA,QAAA,EAClDpB;WACC;SACM,CACb,EACA,OAAOG,WAAW,KAAK,QAAQ,gBAC9BkB,cAAA,CAACU,qBAAU,EAAA;AACTL,UAAAA,KAAK,EAAC,OAAO;AACb,UAAA,aAAA,EAAY,0BAA0B;AACtCM,UAAAA,OAAO,EAAC,OAAO;AAAAZ,UAAAA,QAAA,EAEdjB;AAAW,SACF,CAAC,GAEbA,WACD,EACAC,aAAa,IACX,YAAM;AACL,UAAA,IAAe8B,SAAS,GAAuB9B,aAAa,CAApD+B,KAAK;AAAgBC,YAAAA,aAAa,GAAAC,wBAAA,CAAKjC,aAAa,EAAAkC,SAAA,CAAA;AAE5D,UAAA,oBACEjB,cAAA,CAAA,GAAA,EAAAkB,aAAA,CAAAA,aAAA,CAAA;AACElC,YAAAA,SAAS,EAAC,2CAA2C;AACrD,YAAA,aAAA,EAAY,0BAA0B;AACtCmC,YAAAA,GAAG,EAAC,YAAY;AAChBC,YAAAA,MAAM,EAAC;AAAQ,WAAA,EACXL,aAAa,CAAA,EAAA,EAAA,EAAA;YAAAhB,QAAA,EAEhBc,SAAS,KAAA,IAAA,IAATA,SAAS,cAATA,SAAS,GAAInC,CAAC,CAAC,uCAAuC;AAAC,WAAA,CACvD,CAAC;AAER,QAAA,CAAC,EAAG;OACH;AAAC,KACU,CAAC;AAAA,GACV,CAAC;AAAA,CAEhB;;;;"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var classnames = require('classnames');
|
|
6
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
7
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
var plus = require('../plus-MoDFAiKt.js');
|
|
11
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
12
|
+
var general = require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
13
|
+
var reactRouterDom = require('react-router-dom');
|
|
14
|
+
var reactI18next = require('react-i18next');
|
|
15
|
+
var search = require('../search-BBuFYdmG.js');
|
|
16
|
+
var createLucideIcon = require('../createLucideIcon-DBDhE7kE.js');
|
|
17
|
+
var CSSTransition = require('../CSSTransition-D_jVZ_GR.js');
|
|
18
|
+
require('@babel/runtime/helpers/esm/extends');
|
|
19
|
+
require('@babel/runtime/helpers/esm/objectWithoutPropertiesLoose');
|
|
20
|
+
require('@babel/runtime/helpers/esm/inheritsLoose');
|
|
21
|
+
require('../index-JY2zVpnv.js');
|
|
22
|
+
require('../_commonjsHelpers-BJu3ubxk.js');
|
|
23
|
+
require('react-dom');
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @license lucide-react v1.7.0 - ISC
|
|
27
|
+
*
|
|
28
|
+
* This source code is licensed under the ISC license.
|
|
29
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
const __iconNode = [
|
|
34
|
+
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
35
|
+
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
36
|
+
];
|
|
37
|
+
const X = createLucideIcon.createLucideIcon("x", __iconNode);
|
|
38
|
+
|
|
39
|
+
var _excluded$5 = ["label", "onClick"];
|
|
40
|
+
function ownKeys$4(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; }
|
|
41
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
42
|
+
var AddNew = function AddNew(_ref) {
|
|
43
|
+
var _ref$label = _ref.label,
|
|
44
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
45
|
+
onClick = _ref.onClick,
|
|
46
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
47
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$4(_objectSpread$4({
|
|
48
|
+
className: "mb-2 px-2 py-1.5"
|
|
49
|
+
}, otherProps), {}, {
|
|
50
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Button, {
|
|
51
|
+
onClick: onClick,
|
|
52
|
+
className: "gap-1 text-sm",
|
|
53
|
+
size: "sm",
|
|
54
|
+
variant: "link",
|
|
55
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(plus.Plus, {
|
|
56
|
+
size: 16
|
|
57
|
+
}), label]
|
|
58
|
+
})
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
var _excluded$4 = ["url", "icon", "label", "count", "active", "onEdit", "onClick", "className"];
|
|
63
|
+
function ownKeys$3(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; }
|
|
64
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
65
|
+
var Block = function Block(_ref) {
|
|
66
|
+
var url = _ref.url,
|
|
67
|
+
icon = _ref.icon,
|
|
68
|
+
label = _ref.label,
|
|
69
|
+
count = _ref.count,
|
|
70
|
+
_ref$active = _ref.active,
|
|
71
|
+
active = _ref$active === void 0 ? false : _ref$active,
|
|
72
|
+
onEdit = _ref.onEdit,
|
|
73
|
+
_ref$onClick = _ref.onClick,
|
|
74
|
+
onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick,
|
|
75
|
+
className = _ref.className,
|
|
76
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$4);
|
|
77
|
+
var handleEdit = function handleEdit(e) {
|
|
78
|
+
if (!onEdit) return;
|
|
79
|
+
e.stopPropagation();
|
|
80
|
+
onEdit();
|
|
81
|
+
};
|
|
82
|
+
var Parent = url ? reactRouterDom.Link : function (props) {
|
|
83
|
+
return /*#__PURE__*/jsxRuntime.jsx("button", _objectSpread$3({
|
|
84
|
+
type: "button"
|
|
85
|
+
}, props));
|
|
86
|
+
};
|
|
87
|
+
return /*#__PURE__*/jsxRuntime.jsxs(Parent, _objectSpread$3(_objectSpread$3({
|
|
88
|
+
"data-testid": otherProps["data-testid"] || "menubar-block",
|
|
89
|
+
to: url,
|
|
90
|
+
className: classnames("hover:bg-accent focus:bg-accent active:bg-accent relative mb-2 flex w-full cursor-pointer items-center justify-between rounded-md border border-transparent px-2 py-1.5 text-start transition-all hover:no-underline focus:outline-none motion-reduce:transition-none", _defineProperty({
|
|
91
|
+
"bg-primary/10 border-primary/10 after:bg-primary hover:bg-primary/10 focus:bg-primary/10 active:bg-primary/10 after:absolute after:inset-y-0 after:start-[-1px] after:w-[3px] after:rounded-s-md": active
|
|
92
|
+
}, className, className))
|
|
93
|
+
}, _objectSpread$3({
|
|
94
|
+
onClick: onClick
|
|
95
|
+
}, otherProps)), {}, {
|
|
96
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
97
|
+
className: "flex items-center",
|
|
98
|
+
"data-testid": general.joinHyphenCase("menubar-block-label", label),
|
|
99
|
+
children: [icon && /*#__PURE__*/jsxRuntime.jsx("i", {
|
|
100
|
+
className: "me-1 flex items-center",
|
|
101
|
+
children: icon
|
|
102
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
103
|
+
className: "text-sm font-medium",
|
|
104
|
+
title: label,
|
|
105
|
+
children: label
|
|
106
|
+
})]
|
|
107
|
+
}), Number.isInteger(count) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
108
|
+
onClick: handleEdit,
|
|
109
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
110
|
+
className: "text-sm font-medium",
|
|
111
|
+
children: count
|
|
112
|
+
})
|
|
113
|
+
})]
|
|
114
|
+
}));
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var _excluded$3 = ["label", "description", "active", "className"];
|
|
118
|
+
function ownKeys$2(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; }
|
|
119
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
120
|
+
var Item = function Item(_ref) {
|
|
121
|
+
var _ref$label = _ref.label,
|
|
122
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
123
|
+
_ref$description = _ref.description,
|
|
124
|
+
description = _ref$description === void 0 ? "" : _ref$description,
|
|
125
|
+
_ref$active = _ref.active,
|
|
126
|
+
active = _ref$active === void 0 ? false : _ref$active,
|
|
127
|
+
_ref$className = _ref.className,
|
|
128
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
129
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$3);
|
|
130
|
+
return /*#__PURE__*/jsxRuntime.jsxs("button", _objectSpread$2(_objectSpread$2({
|
|
131
|
+
type: "button",
|
|
132
|
+
className: classnames("hover:bg-accent focus:bg-accent active:bg-accent mb-2 w-full cursor-pointer rounded-md border border-transparent p-3 text-start transition-all focus:outline-none motion-reduce:transition-none max-lg:p-2.5 max-md:p-2", _defineProperty({
|
|
133
|
+
"border-border bg-background text-foreground hover:bg-background focus:bg-background active:bg-background shadow-sm": active
|
|
134
|
+
}, className, className))
|
|
135
|
+
}, otherProps), {}, {
|
|
136
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h5", {
|
|
137
|
+
className: "text-sm font-semibold",
|
|
138
|
+
children: label
|
|
139
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
140
|
+
className: "text-muted-foreground text-xs",
|
|
141
|
+
children: description
|
|
142
|
+
})]
|
|
143
|
+
}));
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
var _excluded$2 = ["isCollapsed", "onCollapse"];
|
|
147
|
+
function ownKeys$1(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; }
|
|
148
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
149
|
+
var Search = function Search(_ref) {
|
|
150
|
+
var _ref$isCollapsed = _ref.isCollapsed,
|
|
151
|
+
isCollapsed = _ref$isCollapsed === void 0 ? true : _ref$isCollapsed,
|
|
152
|
+
onCollapse = _ref.onCollapse,
|
|
153
|
+
props = _objectWithoutProperties(_ref, _excluded$2);
|
|
154
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
155
|
+
t = _useTranslation.t;
|
|
156
|
+
if (isCollapsed) return null;
|
|
157
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
158
|
+
className: "mb-5 flex items-center gap-1",
|
|
159
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
160
|
+
className: "relative flex-grow",
|
|
161
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(search.Search, {
|
|
162
|
+
className: "text-muted-foreground absolute start-3 top-1/2 size-4 -translate-y-1/2"
|
|
163
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Input, _objectSpread$1({
|
|
164
|
+
className: "ps-9",
|
|
165
|
+
placeholder: t("neetoMolecules.common.actions.search"),
|
|
166
|
+
type: "search"
|
|
167
|
+
}, props))]
|
|
168
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
169
|
+
"data-testid": "menubar-search-close-icon",
|
|
170
|
+
size: "icon-sm",
|
|
171
|
+
variant: "ghost",
|
|
172
|
+
onClick: onCollapse,
|
|
173
|
+
children: /*#__PURE__*/jsxRuntime.jsx(X, {
|
|
174
|
+
size: 16
|
|
175
|
+
})
|
|
176
|
+
})]
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
var _excluded$1 = ["children", "iconProps"],
|
|
181
|
+
_excluded2 = ["icon", "onClick"];
|
|
182
|
+
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; }
|
|
183
|
+
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; }
|
|
184
|
+
var SubTitle = function SubTitle(_ref) {
|
|
185
|
+
var children = _ref.children,
|
|
186
|
+
iconProps = _ref.iconProps,
|
|
187
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$1);
|
|
188
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
|
|
189
|
+
className: "my-5 flex items-center justify-between",
|
|
190
|
+
"data-testid": otherProps["data-testid"] || "menubar-subtitle-heading"
|
|
191
|
+
}, otherProps), {}, {
|
|
192
|
+
children: [children, /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
193
|
+
className: "flex items-center gap-1",
|
|
194
|
+
children: iconProps === null || iconProps === void 0 ? void 0 : iconProps.map(function (_ref2, index) {
|
|
195
|
+
var Icon = _ref2.icon,
|
|
196
|
+
onClick = _ref2.onClick,
|
|
197
|
+
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
198
|
+
return /*#__PURE__*/React.createElement(neetoAtoms.Button, _objectSpread({
|
|
199
|
+
onClick: onClick,
|
|
200
|
+
key: index,
|
|
201
|
+
size: "icon-sm",
|
|
202
|
+
variant: "ghost"
|
|
203
|
+
}, rest), Icon && /*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
204
|
+
size: 16
|
|
205
|
+
}));
|
|
206
|
+
})
|
|
207
|
+
})]
|
|
208
|
+
}));
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
var _excluded = ["title", "children", "showMenu", "className"];
|
|
212
|
+
var MenuBar = function MenuBar(_ref) {
|
|
213
|
+
var _ref$title = _ref.title,
|
|
214
|
+
title = _ref$title === void 0 ? "" : _ref$title,
|
|
215
|
+
children = _ref.children,
|
|
216
|
+
_ref$showMenu = _ref.showMenu,
|
|
217
|
+
showMenu = _ref$showMenu === void 0 ? false : _ref$showMenu,
|
|
218
|
+
_ref$className = _ref.className,
|
|
219
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
220
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
221
|
+
var prefersReducedMotion = reactUtils.usePrefersReducedMotion();
|
|
222
|
+
var nodeRef = React.useRef(null);
|
|
223
|
+
return /*#__PURE__*/jsxRuntime.jsx(CSSTransition.CSSTransition, {
|
|
224
|
+
nodeRef: nodeRef,
|
|
225
|
+
unmountOnExit: true,
|
|
226
|
+
"in": showMenu,
|
|
227
|
+
timeout: prefersReducedMotion ? 0 : 300,
|
|
228
|
+
onEnter: function onEnter() {
|
|
229
|
+
if (nodeRef.current) nodeRef.current.style.width = "0";
|
|
230
|
+
},
|
|
231
|
+
onEntered: function onEntered() {
|
|
232
|
+
if (nodeRef.current) nodeRef.current.style.width = "";
|
|
233
|
+
},
|
|
234
|
+
onEntering: function onEntering() {
|
|
235
|
+
if (nodeRef.current) nodeRef.current.style.width = "20.25rem";
|
|
236
|
+
},
|
|
237
|
+
onExit: function onExit() {
|
|
238
|
+
if (nodeRef.current) nodeRef.current.style.width = "20.25rem";
|
|
239
|
+
},
|
|
240
|
+
onExiting: function onExiting() {
|
|
241
|
+
if (nodeRef.current) nodeRef.current.style.width = "0";
|
|
242
|
+
},
|
|
243
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
244
|
+
ref: nodeRef,
|
|
245
|
+
className: classnames("border-border bg-background shrink-0 overflow-hidden border-e transition-all duration-300 motion-reduce:transition-none", className),
|
|
246
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
247
|
+
className: "h-dvh w-[20.25rem] overflow-y-auto p-8 max-lg:w-[17.5rem] max-lg:px-6 max-lg:pt-10 max-lg:pb-6 max-md:w-60 max-md:px-5 max-md:pt-10 max-md:pb-6",
|
|
248
|
+
"data-testid": "menubar-container",
|
|
249
|
+
children: [title && /*#__PURE__*/jsxRuntime.jsx("h2", {
|
|
250
|
+
className: "mb-4 text-xl leading-tight font-semibold",
|
|
251
|
+
"data-testid": otherProps["data-testid"] || "menubar-heading",
|
|
252
|
+
children: title
|
|
253
|
+
}), children]
|
|
254
|
+
})
|
|
255
|
+
})
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
MenuBar.Block = Block;
|
|
259
|
+
MenuBar.Item = Item;
|
|
260
|
+
MenuBar.SubTitle = SubTitle;
|
|
261
|
+
MenuBar.Search = Search;
|
|
262
|
+
MenuBar.AddNew = AddNew;
|
|
263
|
+
|
|
264
|
+
module.exports = MenuBar;
|
|
265
|
+
//# sourceMappingURL=MenuBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuBar.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/x.js","../../../src/v2/components/MenuBar/AddNew.jsx","../../../src/v2/components/MenuBar/Block.jsx","../../../src/v2/components/MenuBar/Item.jsx","../../../src/v2/components/MenuBar/Search.jsx","../../../src/v2/components/MenuBar/SubTitle.jsx","../../../src/v2/components/MenuBar/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport { Plus } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\n\nconst AddNew = ({ label = \"\", onClick, ...otherProps }) => (\n <div className=\"mb-2 px-2 py-1.5\" {...otherProps}>\n <Button {...{ onClick }} className=\"gap-1 text-sm\" size=\"sm\" variant=\"link\">\n <Plus size={16} />\n {label}\n </Button>\n </div>\n);\n\nAddNew.propTypes = {\n label: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default AddNew;\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nconst Block = ({\n url,\n icon,\n label,\n count,\n active = false,\n onEdit,\n onClick = noop,\n className,\n ...otherProps\n}) => {\n const handleEdit = e => {\n if (!onEdit) return;\n\n e.stopPropagation();\n onEdit();\n };\n\n const Parent = url ? Link : props => <button type=\"button\" {...props} />;\n\n return (\n <Parent\n data-testid={otherProps[\"data-testid\"] || \"menubar-block\"}\n to={url}\n className={classnames(\n \"hover:bg-accent focus:bg-accent active:bg-accent relative mb-2 flex w-full cursor-pointer items-center justify-between rounded-md border border-transparent px-2 py-1.5 text-start transition-all hover:no-underline focus:outline-none motion-reduce:transition-none\",\n {\n \"bg-primary/10 border-primary/10 after:bg-primary hover:bg-primary/10 focus:bg-primary/10 active:bg-primary/10 after:absolute after:inset-y-0 after:start-[-1px] after:w-[3px] after:rounded-s-md\":\n active,\n [className]: className,\n }\n )}\n {...{ onClick, ...otherProps }}\n >\n <div\n className=\"flex items-center\"\n data-testid={joinHyphenCase(\"menubar-block-label\", label)}\n >\n {icon && <i className=\"me-1 flex items-center\">{icon}</i>}\n <span className=\"text-sm font-medium\" title={label}>\n {label}\n </span>\n </div>\n {Number.isInteger(count) && (\n <div onClick={handleEdit}>\n <span className=\"text-sm font-medium\">{count}</span>\n </div>\n )}\n </Parent>\n );\n};\n\nBlock.propTypes = {\n url: PropTypes.string,\n icon: PropTypes.node,\n label: PropTypes.string,\n count: PropTypes.number,\n active: PropTypes.bool,\n onEdit: PropTypes.func,\n onClick: PropTypes.func,\n className: PropTypes.string,\n};\n\nexport default Block;\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Item = ({\n label = \"\",\n description = \"\",\n active = false,\n className = \"\",\n ...otherProps\n}) => (\n <button\n type=\"button\"\n className={classnames(\n \"hover:bg-accent focus:bg-accent active:bg-accent mb-2 w-full cursor-pointer rounded-md border border-transparent p-3 text-start transition-all focus:outline-none motion-reduce:transition-none max-lg:p-2.5 max-md:p-2\",\n {\n \"border-border bg-background text-foreground hover:bg-background focus:bg-background active:bg-background shadow-sm\":\n active,\n [className]: className,\n }\n )}\n {...otherProps}\n >\n <h5 className=\"text-sm font-semibold\">{label}</h5>\n <p className=\"text-muted-foreground text-xs\">{description}</p>\n </button>\n);\n\nItem.propTypes = {\n label: PropTypes.string,\n description: PropTypes.string,\n active: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default Item;\n","import { Button, Input } from \"@bigbinary/neeto-atoms\";\nimport { Search as SearchIcon, X } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Search = ({ isCollapsed = true, onCollapse, ...props }) => {\n const { t } = useTranslation();\n\n if (isCollapsed) return null;\n\n return (\n <div className=\"mb-5 flex items-center gap-1\">\n <div className=\"relative flex-grow\">\n <SearchIcon className=\"text-muted-foreground absolute start-3 top-1/2 size-4 -translate-y-1/2\" />\n <Input\n className=\"ps-9\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n type=\"search\"\n {...props}\n />\n </div>\n <Button\n data-testid=\"menubar-search-close-icon\"\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={onCollapse}\n >\n <X size={16} />\n </Button>\n </div>\n );\n};\n\nSearch.propTypes = {\n isCollapsed: PropTypes.bool,\n onCollapse: PropTypes.func,\n};\n\nexport default Search;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport PropTypes from \"prop-types\";\n\nconst SubTitle = ({ children, iconProps, ...otherProps }) => (\n <div\n className=\"my-5 flex items-center justify-between\"\n data-testid={otherProps[\"data-testid\"] || \"menubar-subtitle-heading\"}\n {...otherProps}\n >\n {children}\n <div className=\"flex items-center gap-1\">\n {iconProps?.map(({ icon: Icon, onClick, ...rest }, index) => (\n <Button\n {...{ onClick }}\n key={index}\n size=\"icon-sm\"\n variant=\"ghost\"\n {...rest}\n >\n {Icon && <Icon size={16} />}\n </Button>\n ))}\n </div>\n </div>\n);\n\nSubTitle.propTypes = {\n children: PropTypes.node,\n iconProps: PropTypes.array,\n};\n\nexport default SubTitle;\n","import { useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { usePrefersReducedMotion } from \"neetocommons/react-utils\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport AddNew from \"./AddNew\";\nimport Block from \"./Block\";\nimport Item from \"./Item\";\nimport Search from \"./Search\";\nimport SubTitle from \"./SubTitle\";\n\nconst MenuBar = ({\n title = \"\",\n children,\n showMenu = false,\n className = \"\",\n ...otherProps\n}) => {\n const prefersReducedMotion = usePrefersReducedMotion();\n const nodeRef = useRef(null);\n\n return (\n <CSSTransition\n {...{ nodeRef }}\n unmountOnExit\n in={showMenu}\n timeout={prefersReducedMotion ? 0 : 300}\n onEnter={() => {\n if (nodeRef.current) nodeRef.current.style.width = \"0\";\n }}\n onEntered={() => {\n if (nodeRef.current) nodeRef.current.style.width = \"\";\n }}\n onEntering={() => {\n if (nodeRef.current) nodeRef.current.style.width = \"20.25rem\";\n }}\n onExit={() => {\n if (nodeRef.current) nodeRef.current.style.width = \"20.25rem\";\n }}\n onExiting={() => {\n if (nodeRef.current) nodeRef.current.style.width = \"0\";\n }}\n >\n <div\n ref={nodeRef}\n className={classnames(\n \"border-border bg-background shrink-0 overflow-hidden border-e transition-all duration-300 motion-reduce:transition-none\",\n className\n )}\n >\n <div\n className=\"h-dvh w-[20.25rem] overflow-y-auto p-8 max-lg:w-[17.5rem] max-lg:px-6 max-lg:pt-10 max-lg:pb-6 max-md:w-60 max-md:px-5 max-md:pt-10 max-md:pb-6\"\n data-testid=\"menubar-container\"\n >\n {title && (\n <h2\n className=\"mb-4 text-xl leading-tight font-semibold\"\n data-testid={otherProps[\"data-testid\"] || \"menubar-heading\"}\n >\n {title}\n </h2>\n )}\n {children}\n </div>\n </div>\n </CSSTransition>\n );\n};\n\nMenuBar.Block = Block;\nMenuBar.Item = Item;\nMenuBar.SubTitle = SubTitle;\nMenuBar.Search = Search;\nMenuBar.AddNew = AddNew;\n\nMenuBar.propTypes = {\n title: PropTypes.node,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n showMenu: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default MenuBar;\n"],"names":["createLucideIcon","AddNew","_ref","_ref$label","label","onClick","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","children","_jsxs","Button","size","variant","Plus","Block","url","icon","count","_ref$active","active","onEdit","_ref$onClick","noop","handleEdit","e","stopPropagation","Parent","Link","props","type","to","classnames","_defineProperty","joinHyphenCase","title","Number","isInteger","Item","_ref$description","description","_ref$className","Search","_ref$isCollapsed","isCollapsed","onCollapse","_useTranslation","useTranslation","t","SearchIcon","Input","placeholder","X","SubTitle","iconProps","map","_ref2","index","Icon","rest","_excluded2","_createElement","key","MenuBar","_ref$title","_ref$showMenu","showMenu","prefersReducedMotion","usePrefersReducedMotion","nodeRef","useRef","CSSTransition","unmountOnExit","timeout","onEnter","current","style","width","onEntered","onEntering","onExit","onExiting","ref"],"mappings":"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","x_google_ignoreList":[0]}
|