@bigbinary/neeto-molecules 4.1.54 → 4.1.56

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 (72) hide show
  1. package/dist/{Columns-cUgR6NTO.js → Columns-BVXRaORo.js} +8 -11
  2. package/dist/Columns-BVXRaORo.js.map +1 -0
  3. package/dist/{ConfigureView-C84AmCMq.js → ConfigureView-DAZrBZPv.js} +3 -2
  4. package/dist/{ConfigureView-C84AmCMq.js.map → ConfigureView-DAZrBZPv.js.map} +1 -1
  5. package/dist/cjs/{Columns-D3eocaeY.js → Columns-ZySdkGqV.js} +12 -15
  6. package/dist/cjs/Columns-ZySdkGqV.js.map +1 -0
  7. package/dist/cjs/{ConfigureView-DGf7cRMQ.js → ConfigureView-CAWRNNYI.js} +12 -11
  8. package/dist/cjs/{ConfigureView-DGf7cRMQ.js.map → ConfigureView-CAWRNNYI.js.map} +1 -1
  9. package/dist/cjs/v2/AuditLogs.js +19 -80
  10. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  11. package/dist/cjs/v2/Breadcrumbs.js +7 -7
  12. package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
  13. package/dist/cjs/v2/Columns.js +2 -1
  14. package/dist/cjs/v2/Columns.js.map +1 -1
  15. package/dist/cjs/v2/ConfigurePageSidebar.js +7 -6
  16. package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
  17. package/dist/cjs/v2/CopyToClipboardButton.js +11 -17
  18. package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
  19. package/dist/cjs/v2/FloatingActionMenu.js +48 -66
  20. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  21. package/dist/cjs/v2/Header.js +2 -1
  22. package/dist/cjs/v2/Header.js.map +1 -1
  23. package/dist/cjs/v2/HelpPopover.js +51 -54
  24. package/dist/cjs/v2/HelpPopover.js.map +1 -1
  25. package/dist/cjs/v2/KeyboardShortcuts.js +7 -15
  26. package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
  27. package/dist/cjs/v2/MoreDropdown.js +59 -78
  28. package/dist/cjs/v2/MoreDropdown.js.map +1 -1
  29. package/dist/cjs/v2/Settings.js +1 -0
  30. package/dist/cjs/v2/Settings.js.map +1 -1
  31. package/dist/cjs/v2/Sidebar.js +101 -116
  32. package/dist/cjs/v2/Sidebar.js.map +1 -1
  33. package/dist/cjs/v2/SubHeader.js +31 -43
  34. package/dist/cjs/v2/SubHeader.js.map +1 -1
  35. package/dist/v2/AuditLogs.js +20 -81
  36. package/dist/v2/AuditLogs.js.map +1 -1
  37. package/dist/v2/Breadcrumbs.js +1 -1
  38. package/dist/v2/Breadcrumbs.js.map +1 -1
  39. package/dist/v2/Columns.js +2 -1
  40. package/dist/v2/Columns.js.map +1 -1
  41. package/dist/v2/ConfigurePageSidebar.js +3 -2
  42. package/dist/v2/ConfigurePageSidebar.js.map +1 -1
  43. package/dist/v2/CopyToClipboardButton.js +13 -19
  44. package/dist/v2/CopyToClipboardButton.js.map +1 -1
  45. package/dist/v2/FloatingActionMenu.js +25 -43
  46. package/dist/v2/FloatingActionMenu.js.map +1 -1
  47. package/dist/v2/Header.js +2 -1
  48. package/dist/v2/Header.js.map +1 -1
  49. package/dist/v2/HelpPopover.js +53 -56
  50. package/dist/v2/HelpPopover.js.map +1 -1
  51. package/dist/v2/KeyboardShortcuts.js +8 -16
  52. package/dist/v2/KeyboardShortcuts.js.map +1 -1
  53. package/dist/v2/MoreDropdown.js +61 -80
  54. package/dist/v2/MoreDropdown.js.map +1 -1
  55. package/dist/v2/Settings.js +1 -0
  56. package/dist/v2/Settings.js.map +1 -1
  57. package/dist/v2/Sidebar.js +87 -102
  58. package/dist/v2/Sidebar.js.map +1 -1
  59. package/dist/v2/SubHeader.js +32 -44
  60. package/dist/v2/SubHeader.js.map +1 -1
  61. package/package.json +5 -3
  62. package/src/translations/et.json +2 -2
  63. package/src/translations/fi.json +2 -2
  64. package/src/translations/hi.json +2 -2
  65. package/src/translations/hu.json +2 -2
  66. package/src/translations/ja.json +2 -2
  67. package/src/translations/ko.json +2 -2
  68. package/src/translations/tr.json +2 -2
  69. package/src/translations/zh-CN.json +2 -2
  70. package/src/translations/zh-TW.json +2 -2
  71. package/dist/Columns-cUgR6NTO.js.map +0 -1
  72. package/dist/cjs/Columns-D3eocaeY.js.map +0 -1
@@ -1 +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]}
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 { DropdownMenu } 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 <DropdownMenu.SubMenu\n {...{ label }}\n triggerProps={{ \"aria-haspopup\": \"menu\" }}\n contentProps={{\n \"aria-label\": t(\"neetoMolecules.moreDropdown.submenuAriaLabel\", {\n label,\n }),\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 </DropdownMenu.SubMenu>\n));\n\nexport default Submenu;\n","import { DropdownMenu } 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 <DropdownMenu.Divider role=\"separator\" />;\n\n if (hasSubItems) {\n return (\n <Submenu {...{ dropdownProps, label, menuItems, ...menuItemProps }} />\n );\n }\n\n return (\n <DropdownMenu.MenuItem.Button\n {...{ onClick }}\n role=\"menuitem\"\n {...menuItemProps}\n >\n {label}\n </DropdownMenu.MenuItem.Button>\n );\n};\n\nexport default MenuItem;\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport { Button, DropdownMenu, Tooltip } 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 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 // eslint-disable-next-line no-unused-vars\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\n const isDropdownDisabled = isDisabled || dropdownProps.disabled;\n\n if (isDropdownDisabled && !tooltipProps.disabled) {\n return (\n <Tooltip\n content={tooltipProps.content}\n position={tooltipProps.position || \"bottom\"}\n >\n <span>\n <Button\n {...{ variant }}\n disabled\n data-dropdown-button-style=\"more-dropdown\"\n data-testid=\"more-dropdown-button\"\n icon={TargetIcon}\n size=\"icon\"\n className={classnames(\"shrink-0\", {\n \"rounded-full\": isRoundedButton,\n })}\n {...buttonProps}\n />\n </span>\n </Tooltip>\n );\n }\n\n return (\n <DropdownMenu\n customTarget={\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 icon={TargetIcon}\n size=\"icon\"\n className={classnames(\"shrink-0\", {\n \"rounded-full\": isRoundedButton,\n })}\n {...buttonProps}\n />\n }\n dropdownProps={{\n \"aria-label\": t(\"neetoMolecules.moreDropdown.menuAriaLabel\"),\n }}\n {...dropdownProps}\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 </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","STYLE_TO_VARIANT","primary","secondary","tertiary","danger","danger_text","text","link","Submenu","withT","_ref","t","label","_ref$menuItems","menuItems","_jsx","DropdownMenu","SubMenu","triggerProps","contentProps","children","map","_ref2","_ref2$isVisible","isVisible","key","itemProps","_objectWithoutProperties","_excluded","MenuItem","_objectSpread","hyphenate","onClick","_ref$type","type","_ref$hasSubItems","hasSubItems","dropdownProps","menuItemProps","Divider","role","Button","MoreDropdown","_ref$dropdownButtonPr","dropdownButtonProps","_ref$isVertical","isVertical","_ref$isDisabled","isDisabled","_ref$dropdownProps","menuTopChildren","menuBottomChildren","_useTranslation","useTranslation","isRoundedButton","isRounded","size","_buttonSize","customTooltipProps","tooltipProps","buttonStyle","style","buttonProps","mergeRight","variant","TargetIcon","EllipsisVertical","Ellipsis","isDropdownDisabled","Tooltip","content","icon","className","classnames","_jsxs","customTarget","_excluded2"],"mappings":"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","x_google_ignoreList":[0]}
@@ -13,6 +13,7 @@ import { Link } from 'react-router-dom';
13
13
  import { jsxs, jsx } from 'react/jsx-runtime';
14
14
  import Header from './Header.js';
15
15
  import './Breadcrumbs.js';
16
+ import '@bigbinary/neeto-atoms/primitives';
16
17
  import './HelpPopover.js';
17
18
  import '../circle-question-mark-Dib48f5Z.js';
18
19
  import '../createLucideIcon-mNMhCCpf.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sources":["../../src/v2/components/Settings/constants.js","../../src/v2/components/Settings/IntegrationItem.jsx","../../src/v2/components/Settings/Item.jsx","../../src/v2/components/Settings/Category.jsx","../../src/v2/components/Settings/utils.js","../../src/v2/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport { memo } from \"react\";\n\nimport { Badge, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { hyphenate } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst IntegrationItem = ({\n icon: Icon = null,\n description,\n label,\n path,\n href,\n isConnected,\n isMobileOrTablet = false,\n className = \"\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const commonProps = {\n \"data-testid\": `${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`,\n className: classnames(\n \"relative flex cursor-pointer flex-col items-start gap-3 rounded-lg border border-border px-6 py-6 no-underline outline-none transition-shadow duration-300 ease-in-out md:py-8 lg:flex-row xl:gap-4\",\n \"hover:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] hover:[&_[data-settings-heading]]:text-primary\",\n \"active:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] active:[&_[data-settings-heading]]:text-primary\",\n \"focus:border-primary focus:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus:[&_[data-settings-heading]]:text-primary\",\n \"focus-visible:border-primary focus-visible:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus-visible:[&_[data-settings-heading]]:text-primary\",\n className\n ),\n ...omit(UNSUPPORTED_LINK_PROPS, otherProps),\n };\n\n const LinkElement = href ? \"a\" : Link;\n const linkProps = href\n ? { href, ...commonProps }\n : { to: path, ...commonProps };\n\n return (\n <LinkElement {...linkProps}>\n {Icon && (\n <div className=\"border-border mt-0.5 flex shrink-0 items-center justify-center rounded-lg border p-1.5 shadow-sm xl:p-2.5\">\n <Icon\n data-testid={`${joinHyphenCase(label)}-integration-icon`}\n size={isMobileOrTablet ? 26 : 32}\n />\n </div>\n )}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Typography asChild variant=\"h3\" weight=\"semibold\">\n <span\n className=\"text-foreground text-lg leading-6 transition-colors duration-300 ease-in-out\"\n data-settings-heading=\"\"\n data-testid=\"settings-item-heading\"\n >\n {label}\n </span>\n </Typography>\n <Typography asChild variant=\"body2\">\n <p\n className=\"text-muted-foreground\"\n data-testid=\"settings-item-description\"\n >\n {description}\n </p>\n </Typography>\n </div>\n {isConnected && (\n <Badge\n className=\"absolute top-2 right-2\"\n data-testid=\"integration-status-tag\"\n variant=\"default\"\n >\n {t(\"neetoMolecules.integrationCard.connected\")}\n </Badge>\n )}\n </LinkElement>\n );\n};\n\nIntegrationItem.propTypes = {\n /**\n * The icon component to display. Accepts lucide-react icons or brand logos.\n */\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n /**\n * A description of the integration.\n */\n description: PropTypes.string,\n /**\n * The label text for the integration item.\n */\n label: PropTypes.string.isRequired,\n /**\n * The internal route path for the integration item link.\n */\n path: PropTypes.string,\n /**\n * The external URL for the integration item link.\n */\n href: PropTypes.string,\n /**\n * Whether the integration is currently connected.\n */\n isConnected: PropTypes.bool,\n /**\n * Whether the current viewport is mobile or tablet size.\n */\n isMobileOrTablet: PropTypes.bool,\n /**\n * Additional CSS classes for the link element.\n */\n className: PropTypes.string,\n};\n\nexport default memo(IntegrationItem);\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { omit } from \"ramda\";\nimport { Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n href,\n dataTestid,\n className = \"\",\n children,\n ...otherProps\n}) => {\n const commonProps = {\n \"data-testid\": dataTestid,\n className: classnames(\n \"group flex cursor-pointer flex-col gap-y-4 rounded-lg border border-border p-6 no-underline outline-none transition-shadow duration-300 ease-in-out\",\n \"hover:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] hover:[&_[data-settings-heading]]:text-primary\",\n \"active:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] active:[&_[data-settings-heading]]:text-primary\",\n \"focus:border-primary focus:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus:[&_[data-settings-heading]]:text-primary\",\n \"focus-visible:border-primary focus-visible:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus-visible:[&_[data-settings-heading]]:text-primary\",\n className\n ),\n ...omit(UNSUPPORTED_LINK_PROPS, otherProps),\n };\n\n const LinkElement = href ? \"a\" : Link;\n const linkProps = href\n ? { href, ...commonProps }\n : { to: path, ...commonProps };\n\n return (\n <LinkElement {...linkProps}>\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2.5 flex items-center gap-3\">\n {Icon && <Icon className=\"text-muted-foreground\" size={24} />}\n <Typography asChild variant=\"h3\" weight=\"semibold\">\n <span\n className=\"text-foreground text-lg leading-6 transition-colors duration-300 ease-in-out\"\n data-settings-heading=\"\"\n data-testid=\"settings-item-heading\"\n >\n {label}\n </span>\n </Typography>\n </div>\n <Typography asChild variant=\"body2\">\n <p\n className=\"text-muted-foreground\"\n data-testid=\"settings-item-description\"\n >\n {description}\n </p>\n </Typography>\n </div>\n {children && (\n <div className=\"border-border border-t pt-3\">{children}</div>\n )}\n </LinkElement>\n );\n};\n\nItem.propTypes = {\n /**\n * The label text for the settings item.\n */\n label: PropTypes.string.isRequired,\n /**\n * A description of the settings item.\n */\n description: PropTypes.string,\n /**\n * The icon component to display. Accepts lucide-react icons.\n */\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n /**\n * The internal route path for the settings item link.\n */\n path: PropTypes.string,\n /**\n * The external URL for the settings item link.\n */\n href: PropTypes.string,\n /**\n * A custom data-testid attribute for the link element.\n */\n dataTestid: PropTypes.string,\n /**\n * Additional CSS classes for the link element.\n */\n className: PropTypes.string,\n /**\n * Optional children rendered below the description, separated by a border.\n */\n children: PropTypes.node,\n};\n\nexport default memo(Item);\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { useBreakpoints } from \"neetocommons/react-utils\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const { isSize } = useBreakpoints();\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n const isMobileOrTablet = isSize(\"mobile\") || isSize(\"tablet\");\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classnames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography asChild variant=\"h2\" weight=\"semibold\">\n <h2 className=\"mt-2 mb-6\" data-testid=\"settings-category-heading\">\n {label}\n </h2>\n </Typography>\n )}\n <div\n className={classnames(\n \"grid grid-cols-1 gap-3 py-1 md:grid-cols-2 lg:grid-cols-2 lg:gap-4\",\n {\n \"xl:grid-cols-2 2xl:grid-cols-3\": isIntegration,\n \"xl:grid-cols-3 2xl:grid-cols-4\": !isIntegration,\n }\n )}\n >\n {items.map(item => (\n <SettingsCard\n key={item.label}\n {...item}\n {...(isIntegration && { isMobileOrTablet })}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import { useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nimport Header from \"../Header\";\n\nconst Settings = ({\n isTitleHidden = false,\n isSearchHidden = false,\n title,\n headerProps = {},\n categories = [],\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n const isHeaderVisible = !isSearchHidden || !isTitleHidden;\n\n const headerTitle = title ?? t(\"neetoMolecules.settingsPage.title\");\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classnames(\n \"flex h-dvh grow flex-col items-start justify-start overflow-y-auto px-5 md:px-10\",\n { \"h-auto overflow-y-auto\": isTitleHidden },\n className\n )}\n >\n {isHeaderVisible && (\n <Header\n className={classnames({ \"min-h-0 pt-8 pb-4\": isTitleHidden })}\n title={!isTitleHidden && headerTitle}\n searchProps={\n isSearchHidden\n ? null\n : {\n className: \"w-72\",\n placeholder: t(\n \"neetoMolecules.settingsPage.placeholder.search\"\n ),\n }\n }\n {...headerProps}\n />\n )}\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <div className=\"text-muted-foreground flex flex-col items-center gap-2\">\n <p className=\"text-lg font-medium\">\n {t(\"neetoMolecules.settingsPage.noData\")}\n </p>\n </div>\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: PropTypes.bool,\n /**\n * This can be used to customize the title.\n */\n title: PropTypes.string,\n /**\n * Whether to hide the search bar or not.\n */\n isSearchHidden: PropTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: PropTypes.array,\n /**\n * Additional classes to be added to the container.\n */\n className: PropTypes.string,\n /**\n * Props to be passed to the header component.\n */\n headerProps: PropTypes.object,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","IntegrationItem","_ref","_ref$icon","icon","Icon","description","label","path","href","isConnected","_ref$isMobileOrTablet","isMobileOrTablet","_ref$className","className","otherProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","commonProps","_objectSpread","concat","hyphenate","replace","classnames","omit","LinkElement","Link","linkProps","to","_jsxs","children","_jsx","joinHyphenCase","size","Typography","asChild","variant","weight","Badge","memo","Item","dataTestid","Category","items","id","isIntegration","_useBreakpoints","useBreakpoints","isSize","SettingsCard","isLabelPresent","isPresent","map","item","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_ref$isSearchHidden","isSearchHidden","title","_ref$headerProps","headerProps","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","isHeaderVisible","headerTitle","useEffect","Header","searchProps","placeholder","isEmpty","_createElement","key"],"mappings":"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"}
1
+ {"version":3,"file":"Settings.js","sources":["../../src/v2/components/Settings/constants.js","../../src/v2/components/Settings/IntegrationItem.jsx","../../src/v2/components/Settings/Item.jsx","../../src/v2/components/Settings/Category.jsx","../../src/v2/components/Settings/utils.js","../../src/v2/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport { memo } from \"react\";\n\nimport { Badge, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { hyphenate } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst IntegrationItem = ({\n icon: Icon = null,\n description,\n label,\n path,\n href,\n isConnected,\n isMobileOrTablet = false,\n className = \"\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const commonProps = {\n \"data-testid\": `${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`,\n className: classnames(\n \"relative flex cursor-pointer flex-col items-start gap-3 rounded-lg border border-border px-6 py-6 no-underline outline-none transition-shadow duration-300 ease-in-out md:py-8 lg:flex-row xl:gap-4\",\n \"hover:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] hover:[&_[data-settings-heading]]:text-primary\",\n \"active:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] active:[&_[data-settings-heading]]:text-primary\",\n \"focus:border-primary focus:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus:[&_[data-settings-heading]]:text-primary\",\n \"focus-visible:border-primary focus-visible:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus-visible:[&_[data-settings-heading]]:text-primary\",\n className\n ),\n ...omit(UNSUPPORTED_LINK_PROPS, otherProps),\n };\n\n const LinkElement = href ? \"a\" : Link;\n const linkProps = href\n ? { href, ...commonProps }\n : { to: path, ...commonProps };\n\n return (\n <LinkElement {...linkProps}>\n {Icon && (\n <div className=\"border-border mt-0.5 flex shrink-0 items-center justify-center rounded-lg border p-1.5 shadow-sm xl:p-2.5\">\n <Icon\n data-testid={`${joinHyphenCase(label)}-integration-icon`}\n size={isMobileOrTablet ? 26 : 32}\n />\n </div>\n )}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Typography asChild variant=\"h3\" weight=\"semibold\">\n <span\n className=\"text-foreground text-lg leading-6 transition-colors duration-300 ease-in-out\"\n data-settings-heading=\"\"\n data-testid=\"settings-item-heading\"\n >\n {label}\n </span>\n </Typography>\n <Typography asChild variant=\"body2\">\n <p\n className=\"text-muted-foreground\"\n data-testid=\"settings-item-description\"\n >\n {description}\n </p>\n </Typography>\n </div>\n {isConnected && (\n <Badge\n className=\"absolute top-2 right-2\"\n data-testid=\"integration-status-tag\"\n variant=\"default\"\n >\n {t(\"neetoMolecules.integrationCard.connected\")}\n </Badge>\n )}\n </LinkElement>\n );\n};\n\nIntegrationItem.propTypes = {\n /**\n * The icon component to display. Accepts lucide-react icons or brand logos.\n */\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n /**\n * A description of the integration.\n */\n description: PropTypes.string,\n /**\n * The label text for the integration item.\n */\n label: PropTypes.string.isRequired,\n /**\n * The internal route path for the integration item link.\n */\n path: PropTypes.string,\n /**\n * The external URL for the integration item link.\n */\n href: PropTypes.string,\n /**\n * Whether the integration is currently connected.\n */\n isConnected: PropTypes.bool,\n /**\n * Whether the current viewport is mobile or tablet size.\n */\n isMobileOrTablet: PropTypes.bool,\n /**\n * Additional CSS classes for the link element.\n */\n className: PropTypes.string,\n};\n\nexport default memo(IntegrationItem);\n","/* eslint-disable @bigbinary/neeto/use-neetoui-classes */\nimport { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { omit } from \"ramda\";\nimport { Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n href,\n dataTestid,\n className = \"\",\n children,\n ...otherProps\n}) => {\n const commonProps = {\n \"data-testid\": dataTestid,\n className: classnames(\n \"group flex cursor-pointer flex-col gap-y-4 rounded-lg border border-border p-6 no-underline outline-none transition-shadow duration-300 ease-in-out\",\n \"hover:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] hover:[&_[data-settings-heading]]:text-primary\",\n \"active:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] active:[&_[data-settings-heading]]:text-primary\",\n \"focus:border-primary focus:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus:[&_[data-settings-heading]]:text-primary\",\n \"focus-visible:border-primary focus-visible:shadow-[0px_0px_9.2px_0px_rgba(29,33,59,0.12)] focus-visible:[&_[data-settings-heading]]:text-primary\",\n className\n ),\n ...omit(UNSUPPORTED_LINK_PROPS, otherProps),\n };\n\n const LinkElement = href ? \"a\" : Link;\n const linkProps = href\n ? { href, ...commonProps }\n : { to: path, ...commonProps };\n\n return (\n <LinkElement {...linkProps}>\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2.5 flex items-center gap-3\">\n {Icon && <Icon className=\"text-muted-foreground\" size={24} />}\n <Typography asChild variant=\"h3\" weight=\"semibold\">\n <span\n className=\"text-foreground text-lg leading-6 transition-colors duration-300 ease-in-out\"\n data-settings-heading=\"\"\n data-testid=\"settings-item-heading\"\n >\n {label}\n </span>\n </Typography>\n </div>\n <Typography asChild variant=\"body2\">\n <p\n className=\"text-muted-foreground\"\n data-testid=\"settings-item-description\"\n >\n {description}\n </p>\n </Typography>\n </div>\n {children && (\n <div className=\"border-border border-t pt-3\">{children}</div>\n )}\n </LinkElement>\n );\n};\n\nItem.propTypes = {\n /**\n * The label text for the settings item.\n */\n label: PropTypes.string.isRequired,\n /**\n * A description of the settings item.\n */\n description: PropTypes.string,\n /**\n * The icon component to display. Accepts lucide-react icons.\n */\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n /**\n * The internal route path for the settings item link.\n */\n path: PropTypes.string,\n /**\n * The external URL for the settings item link.\n */\n href: PropTypes.string,\n /**\n * A custom data-testid attribute for the link element.\n */\n dataTestid: PropTypes.string,\n /**\n * Additional CSS classes for the link element.\n */\n className: PropTypes.string,\n /**\n * Optional children rendered below the description, separated by a border.\n */\n children: PropTypes.node,\n};\n\nexport default memo(Item);\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { useBreakpoints } from \"neetocommons/react-utils\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const { isSize } = useBreakpoints();\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n const isMobileOrTablet = isSize(\"mobile\") || isSize(\"tablet\");\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classnames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography asChild variant=\"h2\" weight=\"semibold\">\n <h2 className=\"mt-2 mb-6\" data-testid=\"settings-category-heading\">\n {label}\n </h2>\n </Typography>\n )}\n <div\n className={classnames(\n \"grid grid-cols-1 gap-3 py-1 md:grid-cols-2 lg:grid-cols-2 lg:gap-4\",\n {\n \"xl:grid-cols-2 2xl:grid-cols-3\": isIntegration,\n \"xl:grid-cols-3 2xl:grid-cols-4\": !isIntegration,\n }\n )}\n >\n {items.map(item => (\n <SettingsCard\n key={item.label}\n {...item}\n {...(isIntegration && { isMobileOrTablet })}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import { useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nimport Header from \"../Header\";\n\nconst Settings = ({\n isTitleHidden = false,\n isSearchHidden = false,\n title,\n headerProps = {},\n categories = [],\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n const isHeaderVisible = !isSearchHidden || !isTitleHidden;\n\n const headerTitle = title ?? t(\"neetoMolecules.settingsPage.title\");\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classnames(\n \"flex h-dvh grow flex-col items-start justify-start overflow-y-auto px-5 md:px-10\",\n { \"h-auto overflow-y-auto\": isTitleHidden },\n className\n )}\n >\n {isHeaderVisible && (\n <Header\n className={classnames({ \"min-h-0 pt-8 pb-4\": isTitleHidden })}\n title={!isTitleHidden && headerTitle}\n searchProps={\n isSearchHidden\n ? null\n : {\n className: \"w-72\",\n placeholder: t(\n \"neetoMolecules.settingsPage.placeholder.search\"\n ),\n }\n }\n {...headerProps}\n />\n )}\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <div className=\"text-muted-foreground flex flex-col items-center gap-2\">\n <p className=\"text-lg font-medium\">\n {t(\"neetoMolecules.settingsPage.noData\")}\n </p>\n </div>\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: PropTypes.bool,\n /**\n * This can be used to customize the title.\n */\n title: PropTypes.string,\n /**\n * Whether to hide the search bar or not.\n */\n isSearchHidden: PropTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: PropTypes.array,\n /**\n * Additional classes to be added to the container.\n */\n className: PropTypes.string,\n /**\n * Props to be passed to the header component.\n */\n headerProps: PropTypes.object,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","IntegrationItem","_ref","_ref$icon","icon","Icon","description","label","path","href","isConnected","_ref$isMobileOrTablet","isMobileOrTablet","_ref$className","className","otherProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","commonProps","_objectSpread","concat","hyphenate","replace","classnames","omit","LinkElement","Link","linkProps","to","_jsxs","children","_jsx","joinHyphenCase","size","Typography","asChild","variant","weight","Badge","memo","Item","dataTestid","Category","items","id","isIntegration","_useBreakpoints","useBreakpoints","isSize","SettingsCard","isLabelPresent","isPresent","map","item","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_ref$isSearchHidden","isSearchHidden","title","_ref$headerProps","headerProps","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","isHeaderVisible","headerTitle","useEffect","Header","searchProps","placeholder","isEmpty","_createElement","key"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import { memo, useState, Fragment, useRef, useEffect, useCallback, useMemo } from 'react';
3
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, SidebarMenuItem, Badge, TooltipProvider, Tooltip, TooltipTrigger, Button, TooltipContent, SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuButton, SidebarMenuSub, SidebarProvider, Sidebar as Sidebar$1, SidebarHeader, SidebarTrigger, SidebarContent, SidebarRail } from '@bigbinary/neeto-atoms';
3
+ import { SidebarMenuItem, SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuButton, SidebarMenuSub, SidebarProvider, Sidebar as Sidebar$1, SidebarHeader, SidebarTrigger, SidebarContent, SidebarRail } from '@bigbinary/neeto-atoms/primitives';
4
4
  import { capitalize, isPresent, hyphenate, isNotEmpty, isNot } from '@bigbinary/neeto-cist';
5
5
  import useLocalStorage from '@bigbinary/neeto-commons-frontend/react-utils/useLocalStorage';
6
6
  import { append, is, findLast } from 'ramda';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { Link, useLocation, useHistory } from 'react-router-dom';
9
9
  import { u as useKeyboardShortcutsPaneState } from '../useKeyboardShortcutsPaneState-Ckzn5mVZ.js';
10
- import { S as SPECIAL_APP_NAMES, D as DEFAULT_HOME_PATH, f as filterByPermissions, a as CheckPointNavLinks, P as PINNED_MORE_NAV_LINKS_KEY, b as SubLinkItem, c as SELECTED_NAV_LINK_ROUTE_STORAGE_KEY, g as getSidebarStateLocalStorageKey, d as SIDEBAR_WIDTH_KEY, e as DEFAULT_SIDEBAR_WIDTH, C as ConfigureView, h as getActiveConfigurePageLink, M as MIN_SIDEBAR_WIDTH, i as MAX_SIDEBAR_WIDTH } from '../ConfigureView-C84AmCMq.js';
10
+ import { S as SPECIAL_APP_NAMES, D as DEFAULT_HOME_PATH, f as filterByPermissions, a as CheckPointNavLinks, P as PINNED_MORE_NAV_LINKS_KEY, b as SubLinkItem, c as SELECTED_NAV_LINK_ROUTE_STORAGE_KEY, g as getSidebarStateLocalStorageKey, d as SIDEBAR_WIDTH_KEY, e as DEFAULT_SIDEBAR_WIDTH, C as ConfigureView, h as getActiveConfigurePageLink, M as MIN_SIDEBAR_WIDTH, i as MAX_SIDEBAR_WIDTH } from '../ConfigureView-DAZrBZPv.js';
11
11
  import classnames from 'classnames';
12
12
  import { globalProps as globalProps$1 } from '@bigbinary/neeto-commons-frontend/initializers';
13
13
  import Neeto from '@bigbinary/neeto-icons/typeface-logos/Neeto';
@@ -16,6 +16,7 @@ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
16
16
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
17
17
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
18
18
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
19
+ import { DropdownMenu, Badge, Tooltip, Button } from '@bigbinary/neeto-atoms';
19
20
  import { P as Plus } from '../plus-clM1IC_E.js';
20
21
  import { E as Ellipsis } from '../ellipsis-DpI9xqUK.js';
21
22
  import { C as ChevronRight } from '../chevron-right-DcaO-Hlu.js';
@@ -63,31 +64,29 @@ var Header$1 = /*#__PURE__*/memo(Header);
63
64
  /* eslint-disable @bigbinary/neeto/use-neetoui-classes */
64
65
  var AddAction = function AddAction(_ref) {
65
66
  var actions = _ref.actions;
66
- return /*#__PURE__*/jsxs(DropdownMenu, {
67
- children: [/*#__PURE__*/jsx(DropdownMenuTrigger, {
68
- asChild: true,
69
- children: /*#__PURE__*/jsx("button", {
70
- className: "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-sidebar-ring absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden focus-visible:ring-2 md:opacity-0 md:group-focus-within/menu-item:opacity-100 md:group-hover/menu-item:opacity-100",
71
- "data-testid": "add-dropdown-trigger",
72
- onClick: function onClick(e) {
73
- e.preventDefault();
74
- e.stopPropagation();
75
- },
76
- children: /*#__PURE__*/jsx(Plus, {})
77
- })
78
- }), /*#__PURE__*/jsx(DropdownMenuContent, {
67
+ return /*#__PURE__*/jsx(DropdownMenu, {
68
+ dropdownProps: {
79
69
  align: "end",
80
- side: "bottom",
81
- children: actions.map(function (action) {
82
- return /*#__PURE__*/jsx(DropdownMenuItem, {
83
- onSelect: function onSelect() {
84
- var _action$onClick;
85
- (_action$onClick = action.onClick) === null || _action$onClick === void 0 || _action$onClick.call(action);
86
- },
87
- children: action.label
88
- }, action.key);
89
- })
90
- })]
70
+ side: "bottom"
71
+ },
72
+ customTarget: /*#__PURE__*/jsx("button", {
73
+ className: "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-sidebar-ring absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden focus-visible:ring-2 md:opacity-0 md:group-focus-within/menu-item:opacity-100 md:group-hover/menu-item:opacity-100",
74
+ "data-testid": "add-dropdown-trigger",
75
+ onClick: function onClick(e) {
76
+ e.preventDefault();
77
+ e.stopPropagation();
78
+ },
79
+ children: /*#__PURE__*/jsx(Plus, {})
80
+ }),
81
+ children: actions.map(function (action) {
82
+ return /*#__PURE__*/jsx(DropdownMenu.MenuItem.Button, {
83
+ onClick: function onClick() {
84
+ var _action$onClick;
85
+ (_action$onClick = action.onClick) === null || _action$onClick === void 0 || _action$onClick.call(action);
86
+ },
87
+ children: action.label
88
+ }, action.key);
89
+ })
91
90
  });
92
91
  };
93
92
 
@@ -135,87 +134,73 @@ var MoreDropdown = function MoreDropdown(_ref) {
135
134
  handleTogglePin = _ref.handleTogglePin;
136
135
  var _useTranslation = useTranslation(),
137
136
  t = _useTranslation.t;
138
- var _useState = useState(false),
139
- _useState2 = _slicedToArray(_useState, 2),
140
- isOpen = _useState2[0],
141
- setIsOpen = _useState2[1];
142
137
  var isRTL = document.documentElement.dir === "rtl";
143
138
  return /*#__PURE__*/jsx(SidebarMenuItem, {
144
- children: /*#__PURE__*/jsxs(DropdownMenu, {
145
- open: isOpen,
146
- onOpenChange: setIsOpen,
147
- children: [/*#__PURE__*/jsx(DropdownMenuTrigger, {
148
- asChild: true,
149
- children: /*#__PURE__*/jsxs("button", {
150
- className: "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex w-full items-center gap-2 rounded-md p-2 text-sm outline-hidden",
151
- "data-testid": "more-nav-links-dropdown-button",
152
- children: [/*#__PURE__*/jsx(Ellipsis, {}), /*#__PURE__*/jsx("span", {
153
- className: "truncate",
154
- children: t("neetoMolecules.sidebar.more")
155
- })]
156
- })
157
- }), /*#__PURE__*/jsx(DropdownMenuContent, {
158
- align: "start",
139
+ children: /*#__PURE__*/jsx(DropdownMenu, {
140
+ closeOnSelect: false,
141
+ position: isRTL ? "left-start" : "right-start",
142
+ customTarget: /*#__PURE__*/jsxs("button", {
143
+ className: "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex w-full items-center gap-2 rounded-md p-2 text-sm outline-hidden",
144
+ "data-testid": "more-nav-links-dropdown-button",
145
+ children: [/*#__PURE__*/jsx(Ellipsis, {}), /*#__PURE__*/jsx("span", {
146
+ className: "truncate",
147
+ children: t("neetoMolecules.sidebar.more")
148
+ })]
149
+ }),
150
+ dropdownProps: {
159
151
  className: "z-[99999] p-0",
160
- "data-testid": "more-nav-links-dropdown-menu",
161
- side: isRTL ? "left" : "right",
162
- children: moreNavLinks.filter(filterByPermissions).map(function (navLink, index) {
163
- var label = navLink.label,
164
- icon = navLink.icon,
165
- navLinkKey = navLink.key,
166
- to = navLink.to,
167
- onClick = navLink.onClick,
168
- tag = navLink.tag;
169
- var IconSVG = icon;
170
- var isPinned = isNavLinkPinned(navLink);
171
- return /*#__PURE__*/jsx(DropdownMenuItem, {
172
- "data-testid": label,
173
- onSelect: function onSelect(e) {
174
- return e.preventDefault();
175
- },
176
- children: /*#__PURE__*/jsxs(CheckPointNavLinks, {
177
- onClick: onClick,
178
- to: to,
179
- className: "flex w-full cursor-pointer items-center justify-between gap-2 px-2 py-1",
180
- children: [/*#__PURE__*/jsxs("span", {
152
+ "data-testid": "more-nav-links-dropdown-menu"
153
+ },
154
+ children: moreNavLinks.filter(filterByPermissions).map(function (navLink, index) {
155
+ var label = navLink.label,
156
+ icon = navLink.icon,
157
+ navLinkKey = navLink.key,
158
+ to = navLink.to,
159
+ onClick = navLink.onClick,
160
+ tag = navLink.tag;
161
+ var IconSVG = icon;
162
+ var isPinned = isNavLinkPinned(navLink);
163
+ return /*#__PURE__*/jsx(DropdownMenu.MenuItem, {
164
+ "data-testid": label,
165
+ onSelect: function onSelect(e) {
166
+ return e.preventDefault();
167
+ },
168
+ children: /*#__PURE__*/jsxs(CheckPointNavLinks, {
169
+ onClick: onClick,
170
+ to: to,
171
+ className: "flex w-full cursor-pointer items-center justify-between gap-2 px-2 py-1",
172
+ children: [/*#__PURE__*/jsxs("span", {
173
+ className: "flex min-w-0 flex-grow items-center gap-2",
174
+ children: [icon && /*#__PURE__*/jsx(IconSVG, {
175
+ className: "flex-shrink-0",
176
+ size: 20
177
+ }), /*#__PURE__*/jsxs("span", {
181
178
  className: "flex min-w-0 flex-grow items-center gap-2",
182
- children: [icon && /*#__PURE__*/jsx(IconSVG, {
183
- className: "flex-shrink-0",
184
- size: 20
185
- }), /*#__PURE__*/jsxs("span", {
186
- className: "flex min-w-0 flex-grow items-center gap-2",
187
- children: [label, tag && /*#__PURE__*/jsx(Badge, _objectSpread$1({}, tag))]
188
- })]
189
- }), /*#__PURE__*/jsx(TooltipProvider, {
190
- children: /*#__PURE__*/jsxs(Tooltip, {
191
- children: [/*#__PURE__*/jsx(TooltipTrigger, {
192
- asChild: true,
193
- children: /*#__PURE__*/jsx(Button, {
194
- className: "flex-shrink-0",
195
- "data-testid": "pin-button",
196
- size: "icon-sm",
197
- variant: "ghost",
198
- onClick: function onClick(event) {
199
- return handleTogglePin(navLink, event);
200
- },
201
- children: isPinned ? /*#__PURE__*/jsx(UnpinIcon, {
202
- otherProps: {},
203
- size: 16
204
- }) : /*#__PURE__*/jsx(PinIcon, {
205
- otherProps: {},
206
- size: 16
207
- })
208
- })
209
- }), /*#__PURE__*/jsx(TooltipContent, {
210
- side: "right",
211
- children: isPinned ? t("neetoMolecules.sidebar.unpin") : t("neetoMolecules.sidebar.pin")
212
- })]
213
- })
179
+ children: [label, tag && /*#__PURE__*/jsx(Badge, _objectSpread$1({}, tag))]
214
180
  })]
215
- })
216
- }, navLinkKey || index);
217
- })
218
- })]
181
+ }), /*#__PURE__*/jsx(Tooltip, {
182
+ position: "right",
183
+ content: isPinned ? t("neetoMolecules.sidebar.unpin") : t("neetoMolecules.sidebar.pin"),
184
+ children: /*#__PURE__*/jsx(Button, {
185
+ className: "flex-shrink-0",
186
+ "data-testid": "pin-button",
187
+ size: "icon-sm",
188
+ variant: "ghost",
189
+ onClick: function onClick(event) {
190
+ return handleTogglePin(navLink, event);
191
+ },
192
+ children: isPinned ? /*#__PURE__*/jsx(UnpinIcon, {
193
+ otherProps: {},
194
+ size: 16
195
+ }) : /*#__PURE__*/jsx(PinIcon, {
196
+ otherProps: {},
197
+ size: 16
198
+ })
199
+ })
200
+ })]
201
+ })
202
+ }, navLinkKey || index);
203
+ })
219
204
  })
220
205
  });
221
206
  };