@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.
Files changed (108) hide show
  1. package/dist/CSSTransition-DU3ZFKUe.js +1097 -0
  2. package/dist/CSSTransition-DU3ZFKUe.js.map +1 -0
  3. package/dist/CalendarView.js +2 -1
  4. package/dist/CalendarView.js.map +1 -1
  5. package/dist/{Columns-BB50-jks.js → Columns-D68XA-e7.js} +2 -53
  6. package/dist/Columns-D68XA-e7.js.map +1 -0
  7. package/dist/Columns-cUgR6NTO.js +502 -0
  8. package/dist/Columns-cUgR6NTO.js.map +1 -0
  9. package/dist/Columns.js +2 -1
  10. package/dist/Columns.js.map +1 -1
  11. package/dist/MenuBar.js +8 -1095
  12. package/dist/MenuBar.js.map +1 -1
  13. package/dist/SubHeader.js +2 -1
  14. package/dist/SubHeader.js.map +1 -1
  15. package/dist/Taxonomy.js +2 -1
  16. package/dist/Taxonomy.js.map +1 -1
  17. package/dist/circle-question-mark-Dib48f5Z.js +19 -0
  18. package/dist/circle-question-mark-Dib48f5Z.js.map +1 -0
  19. package/dist/cjs/CSSTransition-D_jVZ_GR.js +1099 -0
  20. package/dist/cjs/CSSTransition-D_jVZ_GR.js.map +1 -0
  21. package/dist/cjs/CalendarView.js +2 -1
  22. package/dist/cjs/CalendarView.js.map +1 -1
  23. package/dist/cjs/{Columns-jm_CUnLP.js → Columns-BACqpEQU.js} +3 -54
  24. package/dist/cjs/Columns-BACqpEQU.js.map +1 -0
  25. package/dist/cjs/Columns-D3eocaeY.js +508 -0
  26. package/dist/cjs/Columns-D3eocaeY.js.map +1 -0
  27. package/dist/cjs/Columns.js +2 -1
  28. package/dist/cjs/Columns.js.map +1 -1
  29. package/dist/cjs/MenuBar.js +7 -1094
  30. package/dist/cjs/MenuBar.js.map +1 -1
  31. package/dist/cjs/SubHeader.js +2 -1
  32. package/dist/cjs/SubHeader.js.map +1 -1
  33. package/dist/cjs/Taxonomy.js +2 -1
  34. package/dist/cjs/Taxonomy.js.map +1 -1
  35. package/dist/cjs/circle-question-mark-kxBMPyWQ.js +21 -0
  36. package/dist/cjs/circle-question-mark-kxBMPyWQ.js.map +1 -0
  37. package/dist/cjs/ellipsis-BcfLTtl5.js +21 -0
  38. package/dist/cjs/ellipsis-BcfLTtl5.js.map +1 -0
  39. package/dist/cjs/plus-MoDFAiKt.js +20 -0
  40. package/dist/cjs/plus-MoDFAiKt.js.map +1 -0
  41. package/dist/cjs/search-BBuFYdmG.js +20 -0
  42. package/dist/cjs/search-BBuFYdmG.js.map +1 -0
  43. package/dist/cjs/utilities.esm-jwIHISzF.js +58 -0
  44. package/dist/cjs/utilities.esm-jwIHISzF.js.map +1 -0
  45. package/dist/cjs/v2/Breadcrumbs.js +50 -0
  46. package/dist/cjs/v2/Breadcrumbs.js.map +1 -0
  47. package/dist/cjs/v2/Columns.js +34 -0
  48. package/dist/cjs/v2/Columns.js.map +1 -0
  49. package/dist/cjs/v2/Container.js +34 -0
  50. package/dist/cjs/v2/Container.js.map +1 -0
  51. package/dist/cjs/v2/FloatingActionMenu.js +22 -49
  52. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  53. package/dist/cjs/v2/Header.js +128 -0
  54. package/dist/cjs/v2/Header.js.map +1 -0
  55. package/dist/cjs/v2/HelpPopover.js +93 -0
  56. package/dist/cjs/v2/HelpPopover.js.map +1 -0
  57. package/dist/cjs/v2/MenuBar.js +265 -0
  58. package/dist/cjs/v2/MenuBar.js.map +1 -0
  59. package/dist/cjs/v2/MoreDropdown.js +201 -0
  60. package/dist/cjs/v2/MoreDropdown.js.map +1 -0
  61. package/dist/cjs/v2/Search.js +129 -0
  62. package/dist/cjs/v2/Search.js.map +1 -0
  63. package/dist/cjs/v2/Sidebar.js +5 -32
  64. package/dist/cjs/v2/Sidebar.js.map +1 -1
  65. package/dist/cjs/v2/SubHeader.js +246 -0
  66. package/dist/cjs/v2/SubHeader.js.map +1 -0
  67. package/dist/ellipsis-DpI9xqUK.js +19 -0
  68. package/dist/ellipsis-DpI9xqUK.js.map +1 -0
  69. package/dist/plus-clM1IC_E.js +18 -0
  70. package/dist/plus-clM1IC_E.js.map +1 -0
  71. package/dist/search-DCgpNjip.js +18 -0
  72. package/dist/search-DCgpNjip.js.map +1 -0
  73. package/dist/utilities.esm-CS21Daln.js +56 -0
  74. package/dist/utilities.esm-CS21Daln.js.map +1 -0
  75. package/dist/v2/Breadcrumbs.js +48 -0
  76. package/dist/v2/Breadcrumbs.js.map +1 -0
  77. package/dist/v2/Columns.js +22 -0
  78. package/dist/v2/Columns.js.map +1 -0
  79. package/dist/v2/Container.js +32 -0
  80. package/dist/v2/Container.js.map +1 -0
  81. package/dist/v2/FloatingActionMenu.js +19 -46
  82. package/dist/v2/FloatingActionMenu.js.map +1 -1
  83. package/dist/v2/Header.js +126 -0
  84. package/dist/v2/Header.js.map +1 -0
  85. package/dist/v2/HelpPopover.js +91 -0
  86. package/dist/v2/HelpPopover.js.map +1 -0
  87. package/dist/v2/MenuBar.js +263 -0
  88. package/dist/v2/MenuBar.js.map +1 -0
  89. package/dist/v2/MoreDropdown.js +199 -0
  90. package/dist/v2/MoreDropdown.js.map +1 -0
  91. package/dist/v2/Search.js +127 -0
  92. package/dist/v2/Search.js.map +1 -0
  93. package/dist/v2/Sidebar.js +3 -30
  94. package/dist/v2/Sidebar.js.map +1 -1
  95. package/dist/v2/SubHeader.js +244 -0
  96. package/dist/v2/SubHeader.js.map +1 -0
  97. package/package.json +1 -1
  98. package/types/v2/Breadcrumbs.d.ts +12 -0
  99. package/types/v2/Columns.d.ts +42 -0
  100. package/types/v2/Container.d.ts +8 -0
  101. package/types/v2/Header.d.ts +22 -0
  102. package/types/v2/HelpPopover.d.ts +23 -0
  103. package/types/v2/MenuBar.d.ts +68 -0
  104. package/types/v2/MoreDropdown.d.ts +42 -0
  105. package/types/v2/Search.d.ts +16 -0
  106. package/types/v2/SubHeader.d.ts +51 -0
  107. package/dist/Columns-BB50-jks.js.map +0 -1
  108. package/dist/cjs/Columns-jm_CUnLP.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { useRef, useLayoutEffect } from 'react';
4
+ import { Typography } from '@bigbinary/neeto-atoms';
5
+ import classnames from 'classnames';
6
+ import { isNotEmpty, isPresent, noop } from '@bigbinary/neeto-cist';
7
+ import Breadcrumbs from './Breadcrumbs.js';
8
+ import HelpPopover from './HelpPopover.js';
9
+ import MoreDropdown from './MoreDropdown.js';
10
+ import Search from './Search.js';
11
+ import { jsxs, jsx } from 'react/jsx-runtime';
12
+ import '@bigbinary/neeto-commons-frontend/react-utils';
13
+ import '@bigbinary/neeto-commons-frontend/utils/general';
14
+ import 'react-router-dom';
15
+ import '../circle-question-mark-Dib48f5Z.js';
16
+ import '../createLucideIcon-mNMhCCpf.js';
17
+ import 'ramda';
18
+ import 'react-i18next';
19
+ import '../ellipsis-DpI9xqUK.js';
20
+ import '@babel/runtime/helpers/slicedToArray';
21
+ import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
22
+ import '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
23
+ import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
24
+ import '@bigbinary/neeto-commons-frontend/utils';
25
+ import '../search-DCgpNjip.js';
26
+
27
+ var SIZES = {
28
+ nano: "nano",
29
+ small: "small"
30
+ };
31
+ var DROPDOWN_BUTTON_SIZES = {
32
+ nano: "small",
33
+ small: "medium"
34
+ };
35
+
36
+ var _excluded = ["dropdownButtonProps"];
37
+ 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; }
38
+ 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; }
39
+ var Header = function Header(_ref) {
40
+ var title = _ref.title,
41
+ _ref$titleHelpPopover = _ref.titleHelpPopoverProps,
42
+ titleHelpPopoverProps = _ref$titleHelpPopover === void 0 ? {} : _ref$titleHelpPopover,
43
+ searchProps = _ref.searchProps,
44
+ _ref$className = _ref.className,
45
+ className = _ref$className === void 0 ? "" : _ref$className,
46
+ actionBlock = _ref.actionBlock,
47
+ _ref$breadcrumbs = _ref.breadcrumbs,
48
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
49
+ _ref$renderDropdown = _ref.renderDropdown,
50
+ renderDropdown = _ref$renderDropdown === void 0 ? noop : _ref$renderDropdown,
51
+ _ref$size = _ref.size,
52
+ size = _ref$size === void 0 ? "small" : _ref$size,
53
+ _ref$dataTestid = _ref["data-testid"],
54
+ dataTestId = _ref$dataTestid === void 0 ? "neeto-molecules-header" : _ref$dataTestid;
55
+ var headerRef = useRef(null);
56
+ useLayoutEffect(function () {
57
+ var updateHeaderHeight = function updateHeaderHeight() {
58
+ if (!headerRef.current) return;
59
+ var height = headerRef.current.offsetHeight;
60
+ document.body.style.setProperty("--neeto-molecules-effective-header-height", "".concat(height, "px"));
61
+ };
62
+ updateHeaderHeight();
63
+ window.addEventListener("resize", updateHeaderHeight);
64
+ return function () {
65
+ window.removeEventListener("resize", updateHeaderHeight);
66
+ document.body.style.removeProperty("--neeto-molecules-effective-header-height");
67
+ };
68
+ }, []);
69
+ var isNano = size === SIZES.nano;
70
+ var hasBreadcrumbs = isNotEmpty(breadcrumbs);
71
+ var TitleTag = isNano ? "h3" : "h1";
72
+ return /*#__PURE__*/jsxs("div", {
73
+ "data-testid": dataTestId,
74
+ ref: headerRef,
75
+ 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", {
76
+ "min-h-0": isNano || size === SIZES.small
77
+ }, className),
78
+ children: [/*#__PURE__*/jsx("div", {
79
+ className: "flex flex-row flex-wrap items-start justify-start",
80
+ children: /*#__PURE__*/jsxs("div", {
81
+ className: "flex flex-wrap",
82
+ children: [hasBreadcrumbs && /*#__PURE__*/jsx(Breadcrumbs, {
83
+ breadcrumbs: breadcrumbs
84
+ }), /*#__PURE__*/jsx("div", {
85
+ 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"),
86
+ children: /*#__PURE__*/jsx(Typography, {
87
+ asChild: true,
88
+ variant: isNano ? "h3" : "h1",
89
+ weight: "semibold",
90
+ children: /*#__PURE__*/jsxs(TitleTag, {
91
+ "data-testid": "main-header",
92
+ children: [title, isPresent(titleHelpPopoverProps) && /*#__PURE__*/jsx(HelpPopover, _objectSpread({
93
+ className: "ms-2 inline-flex align-middle",
94
+ side: "right"
95
+ }, titleHelpPopoverProps)), renderDropdown(function (_ref2) {
96
+ var _ref2$dropdownButtonP = _ref2.dropdownButtonProps,
97
+ dropdownButtonProps = _ref2$dropdownButtonP === void 0 ? {} : _ref2$dropdownButtonP,
98
+ dropdownProps = _objectWithoutProperties(_ref2, _excluded);
99
+ return /*#__PURE__*/jsx("span", {
100
+ className: "ms-2 inline-flex align-middle",
101
+ children: /*#__PURE__*/jsx(MoreDropdown, _objectSpread({
102
+ dropdownButtonProps: _objectSpread({
103
+ size: DROPDOWN_BUTTON_SIZES[size]
104
+ }, dropdownButtonProps)
105
+ }, dropdownProps))
106
+ });
107
+ })]
108
+ })
109
+ })
110
+ })]
111
+ })
112
+ }), /*#__PURE__*/jsxs("div", {
113
+ className: classnames("flex items-center gap-3 empty:hidden", "flex-wrap justify-start md:flex-nowrap md:justify-end"),
114
+ children: [searchProps && /*#__PURE__*/jsx(Search, _objectSpread({
115
+ enableUrlSync: true,
116
+ className: classnames("min-w-[12.6rem] grow-0", searchProps.className)
117
+ }, searchProps)), actionBlock && /*#__PURE__*/jsx("div", {
118
+ className: "flex shrink-0 items-center justify-end gap-3 max-[360px]:shrink max-[360px]:flex-wrap max-[360px]:justify-start",
119
+ children: actionBlock
120
+ })]
121
+ })]
122
+ });
123
+ };
124
+
125
+ export { Header as default };
126
+ //# 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,91 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { HoverCard, HoverCardTrigger, HoverCardContent, Typography } from '@bigbinary/neeto-atoms';
4
+ import classnames from 'classnames';
5
+ import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+ import { C as CircleQuestionMark } from '../circle-question-mark-Dib48f5Z.js';
8
+ import '../createLucideIcon-mNMhCCpf.js';
9
+ import 'react';
10
+
11
+ var SIZE = {
12
+ "default": 16,
13
+ large: 20
14
+ };
15
+
16
+ var _excluded = ["label"];
17
+ 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; }
18
+ 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; }
19
+ var HelpPopover = withT(function (_ref) {
20
+ var t = _ref.t,
21
+ title = _ref.title,
22
+ _ref$size = _ref.size,
23
+ size = _ref$size === void 0 ? "large" : _ref$size,
24
+ description = _ref.description,
25
+ helpLinkProps = _ref.helpLinkProps,
26
+ className = _ref.className,
27
+ _ref$iconColor = _ref.iconColor,
28
+ iconColor = _ref$iconColor === void 0 ? "currentColor" : _ref$iconColor,
29
+ _ref$icon = _ref.icon,
30
+ IconComponent = _ref$icon === void 0 ? CircleQuestionMark : _ref$icon,
31
+ side = _ref.side,
32
+ sideOffset = _ref.sideOffset,
33
+ align = _ref.align,
34
+ alignOffset = _ref.alignOffset;
35
+ return /*#__PURE__*/jsxs(HoverCard, {
36
+ closeDelay: 150,
37
+ openDelay: 0,
38
+ children: [/*#__PURE__*/jsx(HoverCardTrigger, {
39
+ asChild: true,
40
+ children: /*#__PURE__*/jsx("button", {
41
+ "data-testid": "help-popover-button",
42
+ type: "button",
43
+ className: classnames("inline-flex cursor-pointer items-center justify-center rounded-full border-none bg-transparent p-0", className),
44
+ children: /*#__PURE__*/jsx(IconComponent, {
45
+ color: iconColor,
46
+ size: SIZE[size]
47
+ })
48
+ })
49
+ }), /*#__PURE__*/jsx(HoverCardContent, {
50
+ align: align,
51
+ alignOffset: alignOffset,
52
+ side: side,
53
+ sideOffset: sideOffset,
54
+ children: /*#__PURE__*/jsxs("div", {
55
+ className: "flex flex-col",
56
+ onClick: function onClick(event) {
57
+ return event.stopPropagation();
58
+ },
59
+ children: [title && /*#__PURE__*/jsx(Typography, {
60
+ asChild: true,
61
+ variant: "body2",
62
+ weight: "semibold",
63
+ children: /*#__PURE__*/jsx("h3", {
64
+ className: "mb-2",
65
+ "data-testid": "help-popover-title",
66
+ children: title
67
+ })
68
+ }), typeof description === "string" ? /*#__PURE__*/jsx(Typography, {
69
+ color: "muted",
70
+ "data-testid": "help-popover-description",
71
+ variant: "body2",
72
+ children: description
73
+ }) : description, helpLinkProps && function () {
74
+ var linkLabel = helpLinkProps.label,
75
+ restLinkProps = _objectWithoutProperties(helpLinkProps, _excluded);
76
+ return /*#__PURE__*/jsx("a", _objectSpread(_objectSpread({
77
+ className: "text-primary mt-3 text-sm hover:underline",
78
+ "data-testid": "help-popover-link-button",
79
+ rel: "noreferrer",
80
+ target: "_blank"
81
+ }, restLinkProps), {}, {
82
+ children: linkLabel !== null && linkLabel !== void 0 ? linkLabel : t("neetoMolecules.common.viewHelpArticle")
83
+ }));
84
+ }()]
85
+ })
86
+ })]
87
+ });
88
+ });
89
+
90
+ export { HelpPopover as default };
91
+ //# 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":"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"}
@@ -0,0 +1,263 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import { createElement, useRef } from 'react';
3
+ import classnames from 'classnames';
4
+ import { usePrefersReducedMotion } from '@bigbinary/neeto-commons-frontend/react-utils';
5
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
+ import { Button, Input } from '@bigbinary/neeto-atoms';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+ import { P as Plus } from '../plus-clM1IC_E.js';
9
+ import { noop } from '@bigbinary/neeto-cist';
10
+ import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils/general';
11
+ import { Link } from 'react-router-dom';
12
+ import { useTranslation } from 'react-i18next';
13
+ import { S as Search$1 } from '../search-DCgpNjip.js';
14
+ import { c as createLucideIcon } from '../createLucideIcon-mNMhCCpf.js';
15
+ import { C as CSSTransition } from '../CSSTransition-DU3ZFKUe.js';
16
+ import '@babel/runtime/helpers/esm/extends';
17
+ import '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';
18
+ import '@babel/runtime/helpers/esm/inheritsLoose';
19
+ import '../index-DAYCJu79.js';
20
+ import '../_commonjsHelpers-BFTU3MAI.js';
21
+ import 'react-dom';
22
+
23
+ /**
24
+ * @license lucide-react v1.7.0 - ISC
25
+ *
26
+ * This source code is licensed under the ISC license.
27
+ * See the LICENSE file in the root directory of this source tree.
28
+ */
29
+
30
+
31
+ const __iconNode = [
32
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
33
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
34
+ ];
35
+ const X = createLucideIcon("x", __iconNode);
36
+
37
+ var _excluded$5 = ["label", "onClick"];
38
+ 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; }
39
+ 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; }
40
+ var AddNew = function AddNew(_ref) {
41
+ var _ref$label = _ref.label,
42
+ label = _ref$label === void 0 ? "" : _ref$label,
43
+ onClick = _ref.onClick,
44
+ otherProps = _objectWithoutProperties(_ref, _excluded$5);
45
+ return /*#__PURE__*/jsx("div", _objectSpread$4(_objectSpread$4({
46
+ className: "mb-2 px-2 py-1.5"
47
+ }, otherProps), {}, {
48
+ children: /*#__PURE__*/jsxs(Button, {
49
+ onClick: onClick,
50
+ className: "gap-1 text-sm",
51
+ size: "sm",
52
+ variant: "link",
53
+ children: [/*#__PURE__*/jsx(Plus, {
54
+ size: 16
55
+ }), label]
56
+ })
57
+ }));
58
+ };
59
+
60
+ var _excluded$4 = ["url", "icon", "label", "count", "active", "onEdit", "onClick", "className"];
61
+ 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; }
62
+ 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; }
63
+ var Block = function Block(_ref) {
64
+ var url = _ref.url,
65
+ icon = _ref.icon,
66
+ label = _ref.label,
67
+ count = _ref.count,
68
+ _ref$active = _ref.active,
69
+ active = _ref$active === void 0 ? false : _ref$active,
70
+ onEdit = _ref.onEdit,
71
+ _ref$onClick = _ref.onClick,
72
+ onClick = _ref$onClick === void 0 ? noop : _ref$onClick,
73
+ className = _ref.className,
74
+ otherProps = _objectWithoutProperties(_ref, _excluded$4);
75
+ var handleEdit = function handleEdit(e) {
76
+ if (!onEdit) return;
77
+ e.stopPropagation();
78
+ onEdit();
79
+ };
80
+ var Parent = url ? Link : function (props) {
81
+ return /*#__PURE__*/jsx("button", _objectSpread$3({
82
+ type: "button"
83
+ }, props));
84
+ };
85
+ return /*#__PURE__*/jsxs(Parent, _objectSpread$3(_objectSpread$3({
86
+ "data-testid": otherProps["data-testid"] || "menubar-block",
87
+ to: url,
88
+ 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({
89
+ "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
90
+ }, className, className))
91
+ }, _objectSpread$3({
92
+ onClick: onClick
93
+ }, otherProps)), {}, {
94
+ children: [/*#__PURE__*/jsxs("div", {
95
+ className: "flex items-center",
96
+ "data-testid": joinHyphenCase("menubar-block-label", label),
97
+ children: [icon && /*#__PURE__*/jsx("i", {
98
+ className: "me-1 flex items-center",
99
+ children: icon
100
+ }), /*#__PURE__*/jsx("span", {
101
+ className: "text-sm font-medium",
102
+ title: label,
103
+ children: label
104
+ })]
105
+ }), Number.isInteger(count) && /*#__PURE__*/jsx("div", {
106
+ onClick: handleEdit,
107
+ children: /*#__PURE__*/jsx("span", {
108
+ className: "text-sm font-medium",
109
+ children: count
110
+ })
111
+ })]
112
+ }));
113
+ };
114
+
115
+ var _excluded$3 = ["label", "description", "active", "className"];
116
+ 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; }
117
+ 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; }
118
+ var Item = function Item(_ref) {
119
+ var _ref$label = _ref.label,
120
+ label = _ref$label === void 0 ? "" : _ref$label,
121
+ _ref$description = _ref.description,
122
+ description = _ref$description === void 0 ? "" : _ref$description,
123
+ _ref$active = _ref.active,
124
+ active = _ref$active === void 0 ? false : _ref$active,
125
+ _ref$className = _ref.className,
126
+ className = _ref$className === void 0 ? "" : _ref$className,
127
+ otherProps = _objectWithoutProperties(_ref, _excluded$3);
128
+ return /*#__PURE__*/jsxs("button", _objectSpread$2(_objectSpread$2({
129
+ type: "button",
130
+ 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({
131
+ "border-border bg-background text-foreground hover:bg-background focus:bg-background active:bg-background shadow-sm": active
132
+ }, className, className))
133
+ }, otherProps), {}, {
134
+ children: [/*#__PURE__*/jsx("h5", {
135
+ className: "text-sm font-semibold",
136
+ children: label
137
+ }), /*#__PURE__*/jsx("p", {
138
+ className: "text-muted-foreground text-xs",
139
+ children: description
140
+ })]
141
+ }));
142
+ };
143
+
144
+ var _excluded$2 = ["isCollapsed", "onCollapse"];
145
+ 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; }
146
+ 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; }
147
+ var Search = function Search(_ref) {
148
+ var _ref$isCollapsed = _ref.isCollapsed,
149
+ isCollapsed = _ref$isCollapsed === void 0 ? true : _ref$isCollapsed,
150
+ onCollapse = _ref.onCollapse,
151
+ props = _objectWithoutProperties(_ref, _excluded$2);
152
+ var _useTranslation = useTranslation(),
153
+ t = _useTranslation.t;
154
+ if (isCollapsed) return null;
155
+ return /*#__PURE__*/jsxs("div", {
156
+ className: "mb-5 flex items-center gap-1",
157
+ children: [/*#__PURE__*/jsxs("div", {
158
+ className: "relative flex-grow",
159
+ children: [/*#__PURE__*/jsx(Search$1, {
160
+ className: "text-muted-foreground absolute start-3 top-1/2 size-4 -translate-y-1/2"
161
+ }), /*#__PURE__*/jsx(Input, _objectSpread$1({
162
+ className: "ps-9",
163
+ placeholder: t("neetoMolecules.common.actions.search"),
164
+ type: "search"
165
+ }, props))]
166
+ }), /*#__PURE__*/jsx(Button, {
167
+ "data-testid": "menubar-search-close-icon",
168
+ size: "icon-sm",
169
+ variant: "ghost",
170
+ onClick: onCollapse,
171
+ children: /*#__PURE__*/jsx(X, {
172
+ size: 16
173
+ })
174
+ })]
175
+ });
176
+ };
177
+
178
+ var _excluded$1 = ["children", "iconProps"],
179
+ _excluded2 = ["icon", "onClick"];
180
+ 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; }
181
+ 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; }
182
+ var SubTitle = function SubTitle(_ref) {
183
+ var children = _ref.children,
184
+ iconProps = _ref.iconProps,
185
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
186
+ return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
187
+ className: "my-5 flex items-center justify-between",
188
+ "data-testid": otherProps["data-testid"] || "menubar-subtitle-heading"
189
+ }, otherProps), {}, {
190
+ children: [children, /*#__PURE__*/jsx("div", {
191
+ className: "flex items-center gap-1",
192
+ children: iconProps === null || iconProps === void 0 ? void 0 : iconProps.map(function (_ref2, index) {
193
+ var Icon = _ref2.icon,
194
+ onClick = _ref2.onClick,
195
+ rest = _objectWithoutProperties(_ref2, _excluded2);
196
+ return /*#__PURE__*/createElement(Button, _objectSpread({
197
+ onClick: onClick,
198
+ key: index,
199
+ size: "icon-sm",
200
+ variant: "ghost"
201
+ }, rest), Icon && /*#__PURE__*/jsx(Icon, {
202
+ size: 16
203
+ }));
204
+ })
205
+ })]
206
+ }));
207
+ };
208
+
209
+ var _excluded = ["title", "children", "showMenu", "className"];
210
+ var MenuBar = function MenuBar(_ref) {
211
+ var _ref$title = _ref.title,
212
+ title = _ref$title === void 0 ? "" : _ref$title,
213
+ children = _ref.children,
214
+ _ref$showMenu = _ref.showMenu,
215
+ showMenu = _ref$showMenu === void 0 ? false : _ref$showMenu,
216
+ _ref$className = _ref.className,
217
+ className = _ref$className === void 0 ? "" : _ref$className,
218
+ otherProps = _objectWithoutProperties(_ref, _excluded);
219
+ var prefersReducedMotion = usePrefersReducedMotion();
220
+ var nodeRef = useRef(null);
221
+ return /*#__PURE__*/jsx(CSSTransition, {
222
+ nodeRef: nodeRef,
223
+ unmountOnExit: true,
224
+ "in": showMenu,
225
+ timeout: prefersReducedMotion ? 0 : 300,
226
+ onEnter: function onEnter() {
227
+ if (nodeRef.current) nodeRef.current.style.width = "0";
228
+ },
229
+ onEntered: function onEntered() {
230
+ if (nodeRef.current) nodeRef.current.style.width = "";
231
+ },
232
+ onEntering: function onEntering() {
233
+ if (nodeRef.current) nodeRef.current.style.width = "20.25rem";
234
+ },
235
+ onExit: function onExit() {
236
+ if (nodeRef.current) nodeRef.current.style.width = "20.25rem";
237
+ },
238
+ onExiting: function onExiting() {
239
+ if (nodeRef.current) nodeRef.current.style.width = "0";
240
+ },
241
+ children: /*#__PURE__*/jsx("div", {
242
+ ref: nodeRef,
243
+ className: classnames("border-border bg-background shrink-0 overflow-hidden border-e transition-all duration-300 motion-reduce:transition-none", className),
244
+ children: /*#__PURE__*/jsxs("div", {
245
+ 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",
246
+ "data-testid": "menubar-container",
247
+ children: [title && /*#__PURE__*/jsx("h2", {
248
+ className: "mb-4 text-xl leading-tight font-semibold",
249
+ "data-testid": otherProps["data-testid"] || "menubar-heading",
250
+ children: title
251
+ }), children]
252
+ })
253
+ })
254
+ });
255
+ };
256
+ MenuBar.Block = Block;
257
+ MenuBar.Item = Item;
258
+ MenuBar.SubTitle = SubTitle;
259
+ MenuBar.Search = Search;
260
+ MenuBar.AddNew = AddNew;
261
+
262
+ export { MenuBar as default };
263
+ //# 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":["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]}