@bigbinary/neeto-molecules 4.1.50 → 4.1.52

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 (91) hide show
  1. package/dist/CalendarView.js +2 -1
  2. package/dist/CalendarView.js.map +1 -1
  3. package/dist/{Columns-BB50-jks.js → Columns-D68XA-e7.js} +2 -53
  4. package/dist/Columns-D68XA-e7.js.map +1 -0
  5. package/dist/Columns-cUgR6NTO.js +502 -0
  6. package/dist/Columns-cUgR6NTO.js.map +1 -0
  7. package/dist/Columns.js +2 -1
  8. package/dist/Columns.js.map +1 -1
  9. package/dist/StatusDropdown.js +1 -0
  10. package/dist/StatusDropdown.js.map +1 -1
  11. package/dist/SubHeader.js +2 -1
  12. package/dist/SubHeader.js.map +1 -1
  13. package/dist/Taxonomy.js +2 -1
  14. package/dist/Taxonomy.js.map +1 -1
  15. package/dist/circle-question-mark-Dib48f5Z.js +19 -0
  16. package/dist/circle-question-mark-Dib48f5Z.js.map +1 -0
  17. package/dist/cjs/CalendarView.js +2 -1
  18. package/dist/cjs/CalendarView.js.map +1 -1
  19. package/dist/cjs/{Columns-jm_CUnLP.js → Columns-BACqpEQU.js} +3 -54
  20. package/dist/cjs/Columns-BACqpEQU.js.map +1 -0
  21. package/dist/cjs/Columns-D3eocaeY.js +508 -0
  22. package/dist/cjs/Columns-D3eocaeY.js.map +1 -0
  23. package/dist/cjs/Columns.js +2 -1
  24. package/dist/cjs/Columns.js.map +1 -1
  25. package/dist/cjs/StatusDropdown.js +1 -0
  26. package/dist/cjs/StatusDropdown.js.map +1 -1
  27. package/dist/cjs/SubHeader.js +2 -1
  28. package/dist/cjs/SubHeader.js.map +1 -1
  29. package/dist/cjs/Taxonomy.js +2 -1
  30. package/dist/cjs/Taxonomy.js.map +1 -1
  31. package/dist/cjs/circle-question-mark-kxBMPyWQ.js +21 -0
  32. package/dist/cjs/circle-question-mark-kxBMPyWQ.js.map +1 -0
  33. package/dist/cjs/ellipsis-BcfLTtl5.js +21 -0
  34. package/dist/cjs/ellipsis-BcfLTtl5.js.map +1 -0
  35. package/dist/cjs/utilities.esm-jwIHISzF.js +58 -0
  36. package/dist/cjs/utilities.esm-jwIHISzF.js.map +1 -0
  37. package/dist/cjs/v2/Breadcrumbs.js +50 -0
  38. package/dist/cjs/v2/Breadcrumbs.js.map +1 -0
  39. package/dist/cjs/v2/Columns.js +34 -0
  40. package/dist/cjs/v2/Columns.js.map +1 -0
  41. package/dist/cjs/v2/Container.js +34 -0
  42. package/dist/cjs/v2/Container.js.map +1 -0
  43. package/dist/cjs/v2/FloatingActionMenu.js +10 -24
  44. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  45. package/dist/cjs/v2/Header.js +128 -0
  46. package/dist/cjs/v2/Header.js.map +1 -0
  47. package/dist/cjs/v2/HelpPopover.js +93 -0
  48. package/dist/cjs/v2/HelpPopover.js.map +1 -0
  49. package/dist/cjs/v2/MoreDropdown.js +201 -0
  50. package/dist/cjs/v2/MoreDropdown.js.map +1 -0
  51. package/dist/cjs/v2/Search.js +129 -0
  52. package/dist/cjs/v2/Search.js.map +1 -0
  53. package/dist/cjs/v2/Sidebar.js +3 -17
  54. package/dist/cjs/v2/Sidebar.js.map +1 -1
  55. package/dist/cjs/v2/SubHeader.js +246 -0
  56. package/dist/cjs/v2/SubHeader.js.map +1 -0
  57. package/dist/ellipsis-DpI9xqUK.js +19 -0
  58. package/dist/ellipsis-DpI9xqUK.js.map +1 -0
  59. package/dist/utilities.esm-CS21Daln.js +56 -0
  60. package/dist/utilities.esm-CS21Daln.js.map +1 -0
  61. package/dist/v2/Breadcrumbs.js +48 -0
  62. package/dist/v2/Breadcrumbs.js.map +1 -0
  63. package/dist/v2/Columns.js +22 -0
  64. package/dist/v2/Columns.js.map +1 -0
  65. package/dist/v2/Container.js +32 -0
  66. package/dist/v2/Container.js.map +1 -0
  67. package/dist/v2/FloatingActionMenu.js +8 -22
  68. package/dist/v2/FloatingActionMenu.js.map +1 -1
  69. package/dist/v2/Header.js +126 -0
  70. package/dist/v2/Header.js.map +1 -0
  71. package/dist/v2/HelpPopover.js +91 -0
  72. package/dist/v2/HelpPopover.js.map +1 -0
  73. package/dist/v2/MoreDropdown.js +199 -0
  74. package/dist/v2/MoreDropdown.js.map +1 -0
  75. package/dist/v2/Search.js +127 -0
  76. package/dist/v2/Search.js.map +1 -0
  77. package/dist/v2/Sidebar.js +2 -16
  78. package/dist/v2/Sidebar.js.map +1 -1
  79. package/dist/v2/SubHeader.js +244 -0
  80. package/dist/v2/SubHeader.js.map +1 -0
  81. package/package.json +1 -1
  82. package/types/v2/Breadcrumbs.d.ts +12 -0
  83. package/types/v2/Columns.d.ts +42 -0
  84. package/types/v2/Container.d.ts +8 -0
  85. package/types/v2/Header.d.ts +22 -0
  86. package/types/v2/HelpPopover.d.ts +23 -0
  87. package/types/v2/MoreDropdown.d.ts +42 -0
  88. package/types/v2/Search.d.ts +16 -0
  89. package/types/v2/SubHeader.d.ts +51 -0
  90. package/dist/Columns-BB50-jks.js.map +0 -1
  91. 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,199 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, DropdownMenuSeparator, DropdownMenuItem, TooltipProvider, Tooltip, TooltipTrigger, Button, TooltipContent, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } from '@bigbinary/neeto-atoms';
4
+ import classnames from 'classnames';
5
+ import { hyphenate } from '@bigbinary/neeto-cist';
6
+ import { mergeRight } from 'ramda';
7
+ import { useTranslation } from 'react-i18next';
8
+ import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
9
+ import { jsxs, jsx } from 'react/jsx-runtime';
10
+ import { c as createLucideIcon } from '../createLucideIcon-mNMhCCpf.js';
11
+ import { E as Ellipsis } from '../ellipsis-DpI9xqUK.js';
12
+ import 'react';
13
+
14
+ /**
15
+ * @license lucide-react v1.7.0 - ISC
16
+ *
17
+ * This source code is licensed under the ISC license.
18
+ * See the LICENSE file in the root directory of this source tree.
19
+ */
20
+
21
+
22
+ const __iconNode = [
23
+ ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
24
+ ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
25
+ ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
26
+ ];
27
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode);
28
+
29
+ var DEFAULT_TOOLTIP_PROPS = {
30
+ disabled: true,
31
+ position: "bottom",
32
+ touch: ["hold", 500]
33
+ };
34
+ var ICON_SIZES = {
35
+ small: 20,
36
+ medium: 24,
37
+ large: 30
38
+ };
39
+ var STYLE_TO_VARIANT = {
40
+ primary: "default",
41
+ secondary: "secondary",
42
+ tertiary: "ghost",
43
+ danger: "destructive",
44
+ danger_text: "destructive",
45
+ text: "ghost",
46
+ link: "link"
47
+ };
48
+
49
+ var _excluded$2 = ["isVisible", "key"];
50
+ 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; }
51
+ 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; }
52
+ var Submenu = withT(function (_ref) {
53
+ var t = _ref.t,
54
+ label = _ref.label,
55
+ _ref$menuItems = _ref.menuItems,
56
+ menuItems = _ref$menuItems === void 0 ? [] : _ref$menuItems;
57
+ return /*#__PURE__*/jsxs(DropdownMenuSub, {
58
+ children: [/*#__PURE__*/jsx(DropdownMenuSubTrigger, {
59
+ "aria-haspopup": "menu",
60
+ children: label
61
+ }), /*#__PURE__*/jsx(DropdownMenuSubContent, {
62
+ "aria-label": t("neetoMolecules.moreDropdown.submenuAriaLabel", {
63
+ label: label
64
+ }),
65
+ children: menuItems.map(function (_ref2) {
66
+ var _ref2$isVisible = _ref2.isVisible,
67
+ isVisible = _ref2$isVisible === void 0 ? true : _ref2$isVisible,
68
+ key = _ref2.key,
69
+ itemProps = _objectWithoutProperties(_ref2, _excluded$2);
70
+ if (!isVisible) return null;
71
+ return /*#__PURE__*/jsx(MenuItem, _objectSpread$2({}, itemProps), key !== null && key !== void 0 ? key : hyphenate(itemProps.label || "menu-item"));
72
+ })
73
+ })]
74
+ });
75
+ });
76
+
77
+ var _excluded$1 = ["onClick", "label", "type", "hasSubItems", "menuItems", "dropdownProps"];
78
+ 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; }
79
+ 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; }
80
+ var MenuItem = function MenuItem(_ref) {
81
+ var onClick = _ref.onClick,
82
+ label = _ref.label,
83
+ _ref$type = _ref.type,
84
+ type = _ref$type === void 0 ? "menuItem" : _ref$type,
85
+ _ref$hasSubItems = _ref.hasSubItems,
86
+ hasSubItems = _ref$hasSubItems === void 0 ? false : _ref$hasSubItems,
87
+ menuItems = _ref.menuItems,
88
+ dropdownProps = _ref.dropdownProps,
89
+ menuItemProps = _objectWithoutProperties(_ref, _excluded$1);
90
+ if (type === "divider") return /*#__PURE__*/jsx(DropdownMenuSeparator, {
91
+ role: "separator"
92
+ });
93
+ if (hasSubItems) {
94
+ return /*#__PURE__*/jsx(Submenu, _objectSpread$1({}, _objectSpread$1({
95
+ dropdownProps: dropdownProps,
96
+ label: label,
97
+ menuItems: menuItems
98
+ }, menuItemProps)));
99
+ }
100
+ return /*#__PURE__*/jsx(DropdownMenuItem, _objectSpread$1(_objectSpread$1({
101
+ onClick: onClick,
102
+ role: "menuitem"
103
+ }, menuItemProps), {}, {
104
+ children: label
105
+ }));
106
+ };
107
+
108
+ var _excluded = ["isRounded", "size", "tooltipProps", "style"],
109
+ _excluded2 = ["isVisible", "key"];
110
+ 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; }
111
+ 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; }
112
+ var MoreDropdown = function MoreDropdown(_ref) {
113
+ var _ref$dropdownButtonPr = _ref.dropdownButtonProps,
114
+ dropdownButtonProps = _ref$dropdownButtonPr === void 0 ? {} : _ref$dropdownButtonPr,
115
+ _ref$isVertical = _ref.isVertical,
116
+ isVertical = _ref$isVertical === void 0 ? false : _ref$isVertical,
117
+ _ref$isDisabled = _ref.isDisabled,
118
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
119
+ _ref$dropdownProps = _ref.dropdownProps,
120
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
121
+ menuTopChildren = _ref.menuTopChildren,
122
+ menuBottomChildren = _ref.menuBottomChildren,
123
+ _ref$menuItems = _ref.menuItems,
124
+ menuItems = _ref$menuItems === void 0 ? [] : _ref$menuItems;
125
+ var _useTranslation = useTranslation(),
126
+ t = _useTranslation.t;
127
+ var isRoundedButton = dropdownButtonProps.isRounded,
128
+ _dropdownButtonProps$ = dropdownButtonProps.size,
129
+ buttonSize = _dropdownButtonProps$ === void 0 ? "medium" : _dropdownButtonProps$,
130
+ customTooltipProps = dropdownButtonProps.tooltipProps,
131
+ buttonStyle = dropdownButtonProps.style,
132
+ buttonProps = _objectWithoutProperties(dropdownButtonProps, _excluded);
133
+ var tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, customTooltipProps);
134
+ var variant = STYLE_TO_VARIANT[buttonStyle] || "ghost";
135
+ var TargetIcon = isVertical ? EllipsisVertical : Ellipsis;
136
+ var iconSize = ICON_SIZES[buttonSize] || 20;
137
+ var isDropdownDisabled = isDisabled || dropdownProps.disabled;
138
+ if (isDropdownDisabled && !tooltipProps.disabled) {
139
+ return /*#__PURE__*/jsx(TooltipProvider, {
140
+ children: /*#__PURE__*/jsxs(Tooltip, {
141
+ children: [/*#__PURE__*/jsx(TooltipTrigger, {
142
+ asChild: true,
143
+ children: /*#__PURE__*/jsx("span", {
144
+ children: /*#__PURE__*/jsx(Button, _objectSpread(_objectSpread({
145
+ variant: variant,
146
+ disabled: true,
147
+ "data-dropdown-button-style": "more-dropdown",
148
+ "data-testid": "more-dropdown-button",
149
+ size: "icon",
150
+ className: classnames("shrink-0", {
151
+ "rounded-full": isRoundedButton
152
+ })
153
+ }, buttonProps), {}, {
154
+ children: /*#__PURE__*/jsx(TargetIcon, {
155
+ size: iconSize
156
+ })
157
+ }))
158
+ })
159
+ }), /*#__PURE__*/jsx(TooltipContent, {
160
+ side: tooltipProps.position || "bottom",
161
+ children: tooltipProps.content
162
+ })]
163
+ })
164
+ });
165
+ }
166
+ return /*#__PURE__*/jsxs(DropdownMenu, _objectSpread(_objectSpread({}, dropdownProps), {}, {
167
+ children: [/*#__PURE__*/jsx(DropdownMenuTrigger, {
168
+ asChild: true,
169
+ children: /*#__PURE__*/jsx(Button, _objectSpread(_objectSpread({
170
+ variant: variant,
171
+ "aria-haspopup": "menu",
172
+ "aria-label": t("neetoMolecules.moreDropdown.buttonAriaLabel"),
173
+ "data-dropdown-button-style": "more-dropdown",
174
+ disabled: isDropdownDisabled,
175
+ size: "icon",
176
+ className: classnames("shrink-0", {
177
+ "rounded-full": isRoundedButton
178
+ })
179
+ }, buttonProps), {}, {
180
+ children: /*#__PURE__*/jsx(TargetIcon, {
181
+ size: iconSize
182
+ })
183
+ }))
184
+ }), /*#__PURE__*/jsxs(DropdownMenuContent, {
185
+ "aria-label": t("neetoMolecules.moreDropdown.menuAriaLabel"),
186
+ children: [menuTopChildren, menuItems.map(function (_ref2) {
187
+ var _ref2$isVisible = _ref2.isVisible,
188
+ isVisible = _ref2$isVisible === void 0 ? true : _ref2$isVisible,
189
+ key = _ref2.key,
190
+ menuItemProps = _objectWithoutProperties(_ref2, _excluded2);
191
+ if (!isVisible) return null;
192
+ return /*#__PURE__*/jsx(MenuItem, _objectSpread({}, menuItemProps), key !== null && key !== void 0 ? key : hyphenate(menuItemProps.label || "menu-item"));
193
+ }), menuBottomChildren]
194
+ })]
195
+ }));
196
+ };
197
+
198
+ export { MoreDropdown as default };
199
+ //# sourceMappingURL=MoreDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoreDropdown.js","sources":["../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.js","../../src/v2/components/MoreDropdown/constants.js","../../src/v2/components/MoreDropdown/Submenu.jsx","../../src/v2/components/MoreDropdown/MenuItem.jsx","../../src/v2/components/MoreDropdown/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 [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"12\", cy: \"5\", r: \"1\", key: \"gxeob9\" }],\n [\"circle\", { cx: \"12\", cy: \"19\", r: \"1\", key: \"lyex9k\" }]\n];\nconst EllipsisVertical = createLucideIcon(\"ellipsis-vertical\", __iconNode);\n\nexport { __iconNode, EllipsisVertical as default };\n//# sourceMappingURL=ellipsis-vertical.js.map\n","const BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n tertiary: \"tertiary\",\n danger: \"danger\",\n danger_text: \"danger_text\",\n text: \"text\",\n link: \"link\",\n};\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst STRATEGY = { absolute: \"absolute\", fixed: \"fixed\" };\n\nconst MENU_ITEM_TYPES = { menuItem: \"menuItem\", divider: \"divider\" };\n\nconst DEFAULT_TOOLTIP_PROPS = {\n disabled: true,\n position: \"bottom\",\n touch: [\"hold\", 500],\n};\n\nconst ICON_SIZES = { small: 20, medium: 24, large: 30 };\n\nconst STYLE_TO_VARIANT = {\n primary: \"default\",\n secondary: \"secondary\",\n tertiary: \"ghost\",\n danger: \"destructive\",\n danger_text: \"destructive\",\n text: \"ghost\",\n link: \"link\",\n};\n\nexport {\n BUTTON_STYLES,\n SIZES,\n STRATEGY,\n MENU_ITEM_TYPES,\n DEFAULT_TOOLTIP_PROPS,\n ICON_SIZES,\n STYLE_TO_VARIANT,\n};\n","import {\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n} from \"@bigbinary/neeto-atoms\";\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\n\nimport MenuItem from \"./MenuItem\";\n\nconst Submenu = withT(({ t, label, menuItems = [] }) => (\n <DropdownMenuSub>\n <DropdownMenuSubTrigger aria-haspopup=\"menu\">\n {label}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent\n aria-label={t(\"neetoMolecules.moreDropdown.submenuAriaLabel\", {\n label,\n })}\n >\n {menuItems.map(({ isVisible = true, key, ...itemProps }) => {\n if (!isVisible) return null;\n\n return (\n <MenuItem\n key={key ?? hyphenate(itemProps.label || \"menu-item\")}\n {...itemProps}\n />\n );\n })}\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n));\n\nexport default Submenu;\n","import {\n DropdownMenuItem,\n DropdownMenuSeparator,\n} from \"@bigbinary/neeto-atoms\";\n\nimport Submenu from \"./Submenu\";\n\nconst MenuItem = ({\n onClick,\n label,\n type = \"menuItem\",\n hasSubItems = false,\n menuItems,\n dropdownProps,\n ...menuItemProps\n}) => {\n if (type === \"divider\") return <DropdownMenuSeparator role=\"separator\" />;\n\n if (hasSubItems) {\n return (\n <Submenu {...{ dropdownProps, label, menuItems, ...menuItemProps }} />\n );\n }\n\n return (\n <DropdownMenuItem {...{ onClick }} role=\"menuitem\" {...menuItemProps}>\n {label}\n </DropdownMenuItem>\n );\n};\n\nexport default MenuItem;\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Ellipsis, EllipsisVertical } from \"lucide-react\";\nimport { hyphenate } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n DEFAULT_TOOLTIP_PROPS,\n ICON_SIZES,\n MENU_ITEM_TYPES,\n SIZES,\n STYLE_TO_VARIANT,\n} from \"./constants\";\nimport MenuItem from \"./MenuItem\";\n\nconst MoreDropdown = ({\n dropdownButtonProps = {},\n isVertical = false,\n isDisabled = false,\n dropdownProps = {},\n menuTopChildren,\n menuBottomChildren,\n menuItems = [],\n}) => {\n const { t } = useTranslation();\n\n const {\n isRounded: isRoundedButton,\n size: buttonSize = \"medium\",\n tooltipProps: customTooltipProps,\n style: buttonStyle,\n ...buttonProps\n } = dropdownButtonProps;\n\n const tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, customTooltipProps);\n const variant = STYLE_TO_VARIANT[buttonStyle] || \"ghost\";\n\n const TargetIcon = isVertical ? EllipsisVertical : Ellipsis;\n const iconSize = ICON_SIZES[buttonSize] || 20;\n\n const isDropdownDisabled = isDisabled || dropdownProps.disabled;\n\n if (isDropdownDisabled && !tooltipProps.disabled) {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span>\n <Button\n {...{ variant }}\n disabled\n data-dropdown-button-style=\"more-dropdown\"\n data-testid=\"more-dropdown-button\"\n size=\"icon\"\n className={classnames(\"shrink-0\", {\n \"rounded-full\": isRoundedButton,\n })}\n {...buttonProps}\n >\n <TargetIcon size={iconSize} />\n </Button>\n </span>\n </TooltipTrigger>\n <TooltipContent side={tooltipProps.position || \"bottom\"}>\n {tooltipProps.content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return (\n <DropdownMenu {...dropdownProps}>\n <DropdownMenuTrigger asChild>\n <Button\n {...{ variant }}\n aria-haspopup=\"menu\"\n aria-label={t(\"neetoMolecules.moreDropdown.buttonAriaLabel\")}\n data-dropdown-button-style=\"more-dropdown\"\n disabled={isDropdownDisabled}\n size=\"icon\"\n className={classnames(\"shrink-0\", {\n \"rounded-full\": isRoundedButton,\n })}\n {...buttonProps}\n >\n <TargetIcon size={iconSize} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n aria-label={t(\"neetoMolecules.moreDropdown.menuAriaLabel\")}\n >\n {menuTopChildren}\n {menuItems.map(({ isVisible = true, key, ...menuItemProps }) => {\n if (!isVisible) return null;\n\n return (\n <MenuItem\n key={key ?? hyphenate(menuItemProps.label || \"menu-item\")}\n {...menuItemProps}\n />\n );\n })}\n {menuBottomChildren}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nMoreDropdown.propTypes = {\n dropdownButtonProps: PropTypes.shape({\n style: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"danger\",\n \"danger_text\",\n \"text\",\n \"link\",\n ]),\n size: PropTypes.oneOf(Object.values(SIZES)),\n iconSize: PropTypes.number,\n disabled: PropTypes.bool,\n isRounded: PropTypes.bool,\n }),\n isVertical: PropTypes.bool,\n isDisabled: PropTypes.bool,\n dropdownProps: PropTypes.object,\n menuTopChildren: PropTypes.node,\n menuBottomChildren: PropTypes.node,\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n key: PropTypes.string,\n type: PropTypes.oneOf(Object.values(MENU_ITEM_TYPES)),\n isVisible: PropTypes.bool,\n hasSubItems: PropTypes.bool,\n dropdownProps: PropTypes.shape({\n position: PropTypes.string,\n trigger: PropTypes.string,\n }),\n })\n ),\n};\n\nexport default MoreDropdown;\n"],"names":["DEFAULT_TOOLTIP_PROPS","disabled","position","touch","ICON_SIZES","small","medium","large","STYLE_TO_VARIANT","primary","secondary","tertiary","danger","danger_text","text","link","Submenu","withT","_ref","t","label","_ref$menuItems","menuItems","_jsxs","DropdownMenuSub","children","_jsx","DropdownMenuSubTrigger","DropdownMenuSubContent","map","_ref2","_ref2$isVisible","isVisible","key","itemProps","_objectWithoutProperties","_excluded","MenuItem","_objectSpread","hyphenate","onClick","_ref$type","type","_ref$hasSubItems","hasSubItems","dropdownProps","menuItemProps","DropdownMenuSeparator","role","DropdownMenuItem","MoreDropdown","_ref$dropdownButtonPr","dropdownButtonProps","_ref$isVertical","isVertical","_ref$isDisabled","isDisabled","_ref$dropdownProps","menuTopChildren","menuBottomChildren","_useTranslation","useTranslation","isRoundedButton","isRounded","_dropdownButtonProps$","size","buttonSize","customTooltipProps","tooltipProps","buttonStyle","style","buttonProps","mergeRight","variant","TargetIcon","EllipsisVertical","Ellipsis","iconSize","isDropdownDisabled","TooltipProvider","Tooltip","TooltipTrigger","asChild","Button","className","classnames","TooltipContent","side","content","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","_excluded2"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,127 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
+ import { useId, useState, useRef, useEffect } from 'react';
5
+ import { Label, Input } from '@bigbinary/neeto-atoms';
6
+ import useFuncDebounce from '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
7
+ import useQueryParams from '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
8
+ import useUpdateEffect from '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
9
+ import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils/general';
10
+ import { mergeLeft, omit } from 'ramda';
11
+ import { useTranslation } from 'react-i18next';
12
+ import { useHistory } from 'react-router-dom';
13
+ import { getQueryParams } from '@bigbinary/neeto-commons-frontend/utils';
14
+ import { jsxs, jsx } from 'react/jsx-runtime';
15
+ import { S as Search$1 } from '../search-DCgpNjip.js';
16
+ import '../createLucideIcon-mNMhCCpf.js';
17
+
18
+ var getInitialSearchValue = function getInitialSearchValue(_ref) {
19
+ var _ref$initialValue = _ref.initialValue,
20
+ initialValue = _ref$initialValue === void 0 ? "" : _ref$initialValue,
21
+ enableUrlSync = _ref.enableUrlSync,
22
+ searchParamName = _ref.searchParamName;
23
+ if (enableUrlSync) {
24
+ var _queryParams$searchPa;
25
+ var queryParams = getQueryParams({
26
+ toCamelCase: false
27
+ });
28
+ return (_queryParams$searchPa = queryParams[searchParamName]) !== null && _queryParams$searchPa !== void 0 ? _queryParams$searchPa : "";
29
+ }
30
+ return initialValue;
31
+ };
32
+
33
+ var _excluded = ["value", "debounceTime", "onSearch", "onChange", "enableUrlSync", "searchParamName", "className", "label"];
34
+ 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; }
35
+ 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; }
36
+ var Search = function Search(_ref) {
37
+ var value = _ref.value,
38
+ _ref$debounceTime = _ref.debounceTime,
39
+ debounceTime = _ref$debounceTime === void 0 ? 300 : _ref$debounceTime,
40
+ onSearch = _ref.onSearch,
41
+ onChange = _ref.onChange,
42
+ _ref$enableUrlSync = _ref.enableUrlSync,
43
+ enableUrlSync = _ref$enableUrlSync === void 0 ? false : _ref$enableUrlSync,
44
+ _ref$searchParamName = _ref.searchParamName,
45
+ searchParamName = _ref$searchParamName === void 0 ? "search_term" : _ref$searchParamName,
46
+ className = _ref.className,
47
+ label = _ref.label,
48
+ inputProps = _objectWithoutProperties(_ref, _excluded);
49
+ var _useTranslation = useTranslation(),
50
+ t = _useTranslation.t;
51
+ var queryParams = useQueryParams({
52
+ toCamelCase: false
53
+ });
54
+ var history = useHistory();
55
+ var inputId = useId();
56
+ var _useState = useState(getInitialSearchValue({
57
+ initialValue: value,
58
+ enableUrlSync: enableUrlSync,
59
+ searchParamName: searchParamName
60
+ })),
61
+ _useState2 = _slicedToArray(_useState, 2),
62
+ internalValue = _useState2[0],
63
+ setInternalValue = _useState2[1];
64
+ var trimmedValue = value === null || value === void 0 ? void 0 : value.trim();
65
+ useUpdateEffect(function () {
66
+ var _queryParams$searchPa;
67
+ if (!enableUrlSync) return;
68
+ var searchParamValue = (_queryParams$searchPa = queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName]) !== null && _queryParams$searchPa !== void 0 ? _queryParams$searchPa : "";
69
+ setInternalValue(searchParamValue);
70
+ }, [queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName]]);
71
+ var handleSearchQueryParams = function handleSearchQueryParams(trimmedValue) {
72
+ if (!trimmedValue && !(queryParams !== null && queryParams !== void 0 && queryParams[searchParamName])) return;
73
+ if (trimmedValue === (queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
74
+ var pathname = history.location.pathname;
75
+ if (trimmedValue) {
76
+ history.push(buildUrl(pathname, mergeLeft(_defineProperty({}, searchParamName, trimmedValue), queryParams)));
77
+ } else {
78
+ history.push(buildUrl(pathname, omit([searchParamName], queryParams)));
79
+ }
80
+ };
81
+ var handleDebouncedSearchTermChange = useFuncDebounce(function (trimmedValue) {
82
+ if (onSearch) onSearch(trimmedValue);else if (enableUrlSync) handleSearchQueryParams(trimmedValue);
83
+ }, debounceTime);
84
+ useUpdateEffect(function () {
85
+ handleDebouncedSearchTermChange(trimmedValue);
86
+ }, [trimmedValue]);
87
+ var prevValueRef = useRef(value);
88
+ if (value !== undefined && value !== prevValueRef.current) {
89
+ setInternalValue(value);
90
+ prevValueRef.current = value;
91
+ }
92
+ var handleOnChange = function handleOnChange(e) {
93
+ var _e$target$value;
94
+ var trimmedValue = (_e$target$value = e.target.value) === null || _e$target$value === void 0 ? void 0 : _e$target$value.trim();
95
+ onChange === null || onChange === void 0 || onChange(e);
96
+ setInternalValue(e.target.value);
97
+ if ((internalValue === null || internalValue === void 0 ? void 0 : internalValue.trim()) !== trimmedValue) {
98
+ handleDebouncedSearchTermChange(trimmedValue);
99
+ }
100
+ };
101
+ useEffect(function () {
102
+ return handleDebouncedSearchTermChange.cancel;
103
+ }, []);
104
+ return /*#__PURE__*/jsxs("div", {
105
+ className: className,
106
+ children: [label && /*#__PURE__*/jsx(Label, {
107
+ className: "mb-1",
108
+ htmlFor: inputId,
109
+ children: label
110
+ }), /*#__PURE__*/jsxs("div", {
111
+ className: "relative",
112
+ children: [/*#__PURE__*/jsx(Search$1, {
113
+ className: "text-muted-foreground pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2"
114
+ }), /*#__PURE__*/jsx(Input, _objectSpread({
115
+ className: "pl-9 [&::-webkit-search-cancel-button:hover]:cursor-pointer [&::-webkit-search-decoration:hover]:cursor-pointer",
116
+ id: inputId,
117
+ placeholder: t("neetoMolecules.common.actions.search"),
118
+ type: "search",
119
+ value: internalValue,
120
+ onChange: handleOnChange
121
+ }, inputProps))]
122
+ })]
123
+ });
124
+ };
125
+
126
+ export { Search as default };
127
+ //# sourceMappingURL=Search.js.map