@bigbinary/neeto-molecules 4.0.10 → 4.0.12

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 (118) hide show
  1. package/dist/Builder.js +5 -5
  2. package/dist/Builder.js.map +1 -1
  3. package/dist/CalendarView.js +2 -2
  4. package/dist/CalendarView.js.map +1 -1
  5. package/dist/ConfirmationModal.js +2 -2
  6. package/dist/ConfirmationModal.js.map +1 -1
  7. package/dist/EmailForm.js +28 -6
  8. package/dist/EmailForm.js.map +1 -1
  9. package/dist/EmailPreview.js +3 -3
  10. package/dist/EmailPreview.js.map +1 -1
  11. package/dist/EmojiReactions.js +1 -1
  12. package/dist/EmojiReactions.js.map +1 -1
  13. package/dist/Engagements.js +1 -1
  14. package/dist/Engagements.js.map +1 -1
  15. package/dist/FinderModal.js +1 -1
  16. package/dist/FinderModal.js.map +1 -1
  17. package/dist/IconPicker.js +1 -1
  18. package/dist/IconPicker.js.map +1 -1
  19. package/dist/IpRestriction.js +5 -5
  20. package/dist/IpRestriction.js.map +1 -1
  21. package/dist/LoginPage.js +2 -2
  22. package/dist/LoginPage.js.map +1 -1
  23. package/dist/Metadata.js +3 -3
  24. package/dist/Metadata.js.map +1 -1
  25. package/dist/NeetoWidget.js +1 -1
  26. package/dist/NeetoWidget.js.map +1 -1
  27. package/dist/Onboarding.js +4 -4
  28. package/dist/Onboarding.js.map +1 -1
  29. package/dist/OptionFields.js +1 -1
  30. package/dist/OptionFields.js.map +1 -1
  31. package/dist/PhoneNumber.js +1 -1
  32. package/dist/PhoneNumber.js.map +1 -1
  33. package/dist/ProductEmbed.js +3 -3
  34. package/dist/ProductEmbed.js.map +1 -1
  35. package/dist/PublishBlock.js +3 -3
  36. package/dist/PublishBlock.js.map +1 -1
  37. package/dist/PublishYourItem.js +1 -1
  38. package/dist/PublishYourItem.js.map +1 -1
  39. package/dist/Schedule.js +4 -4
  40. package/dist/Schedule.js.map +1 -1
  41. package/dist/SendToFields.js +5 -5
  42. package/dist/SendToFields.js.map +1 -1
  43. package/dist/Settings.js +1 -1
  44. package/dist/Settings.js.map +1 -1
  45. package/dist/ShareRecordingPane.js +1 -1
  46. package/dist/ShareRecordingPane.js.map +1 -1
  47. package/dist/ShareViaEmail.js +1 -1
  48. package/dist/ShareViaEmail.js.map +1 -1
  49. package/dist/ShareViaLink.js +8 -8
  50. package/dist/ShareViaLink.js.map +1 -1
  51. package/dist/Taxonomy.js +2 -2
  52. package/dist/Taxonomy.js.map +1 -1
  53. package/dist/TimezoneMismatchModal.js +2 -2
  54. package/dist/TimezoneMismatchModal.js.map +1 -1
  55. package/dist/ToggleFeatureCard.js +2 -2
  56. package/dist/ToggleFeatureCard.js.map +1 -1
  57. package/dist/VersionHistory.js +1 -1
  58. package/dist/VersionHistory.js.map +1 -1
  59. package/dist/cjs/Builder.js +5 -5
  60. package/dist/cjs/Builder.js.map +1 -1
  61. package/dist/cjs/CalendarView.js +2 -2
  62. package/dist/cjs/CalendarView.js.map +1 -1
  63. package/dist/cjs/ConfirmationModal.js +2 -2
  64. package/dist/cjs/ConfirmationModal.js.map +1 -1
  65. package/dist/cjs/EmailForm.js +28 -6
  66. package/dist/cjs/EmailForm.js.map +1 -1
  67. package/dist/cjs/EmailPreview.js +3 -3
  68. package/dist/cjs/EmailPreview.js.map +1 -1
  69. package/dist/cjs/EmojiReactions.js +1 -1
  70. package/dist/cjs/EmojiReactions.js.map +1 -1
  71. package/dist/cjs/Engagements.js +1 -1
  72. package/dist/cjs/Engagements.js.map +1 -1
  73. package/dist/cjs/FinderModal.js +1 -1
  74. package/dist/cjs/FinderModal.js.map +1 -1
  75. package/dist/cjs/IconPicker.js +1 -1
  76. package/dist/cjs/IconPicker.js.map +1 -1
  77. package/dist/cjs/IpRestriction.js +5 -5
  78. package/dist/cjs/IpRestriction.js.map +1 -1
  79. package/dist/cjs/LoginPage.js +2 -2
  80. package/dist/cjs/LoginPage.js.map +1 -1
  81. package/dist/cjs/Metadata.js +3 -3
  82. package/dist/cjs/Metadata.js.map +1 -1
  83. package/dist/cjs/NeetoWidget.js +1 -1
  84. package/dist/cjs/NeetoWidget.js.map +1 -1
  85. package/dist/cjs/Onboarding.js +4 -4
  86. package/dist/cjs/Onboarding.js.map +1 -1
  87. package/dist/cjs/OptionFields.js +1 -1
  88. package/dist/cjs/OptionFields.js.map +1 -1
  89. package/dist/cjs/PhoneNumber.js +1 -1
  90. package/dist/cjs/PhoneNumber.js.map +1 -1
  91. package/dist/cjs/ProductEmbed.js +3 -3
  92. package/dist/cjs/ProductEmbed.js.map +1 -1
  93. package/dist/cjs/PublishBlock.js +3 -3
  94. package/dist/cjs/PublishBlock.js.map +1 -1
  95. package/dist/cjs/PublishYourItem.js +1 -1
  96. package/dist/cjs/PublishYourItem.js.map +1 -1
  97. package/dist/cjs/Schedule.js +4 -4
  98. package/dist/cjs/Schedule.js.map +1 -1
  99. package/dist/cjs/SendToFields.js +5 -5
  100. package/dist/cjs/SendToFields.js.map +1 -1
  101. package/dist/cjs/Settings.js +1 -1
  102. package/dist/cjs/Settings.js.map +1 -1
  103. package/dist/cjs/ShareRecordingPane.js +1 -1
  104. package/dist/cjs/ShareRecordingPane.js.map +1 -1
  105. package/dist/cjs/ShareViaEmail.js +1 -1
  106. package/dist/cjs/ShareViaEmail.js.map +1 -1
  107. package/dist/cjs/ShareViaLink.js +8 -8
  108. package/dist/cjs/ShareViaLink.js.map +1 -1
  109. package/dist/cjs/Taxonomy.js +2 -2
  110. package/dist/cjs/Taxonomy.js.map +1 -1
  111. package/dist/cjs/TimezoneMismatchModal.js +2 -2
  112. package/dist/cjs/TimezoneMismatchModal.js.map +1 -1
  113. package/dist/cjs/ToggleFeatureCard.js +2 -2
  114. package/dist/cjs/ToggleFeatureCard.js.map +1 -1
  115. package/dist/cjs/VersionHistory.js +1 -1
  116. package/dist/cjs/VersionHistory.js.map +1 -1
  117. package/package.json +1 -1
  118. package/types/EmailForm.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Engagements.js","sources":["../src/components/Engagements/Activity/Icon.jsx","../src/components/Engagements/Activity/index.jsx","../src/components/Engagements/Comment/Header.jsx","../src/components/Engagements/Comment/Reactions.jsx","../src/components/Engagements/constants.js","../src/components/Engagements/utils.js","../src/components/Engagements/Comment/index.jsx","../src/components/Engagements/index.jsx"],"sourcesContent":["import classNames from \"classnames\";\n\nconst ActivityIcon = ({ icon, unread }) => (\n <div className=\"mx-0.5 flex-shrink-0\">\n <span\n className={classNames(\n \"neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-full neeto-molecules-activity-node-icon relative z-10 flex h-7 w-7 items-center justify-center p-1\",\n {\n \"neeto-ui-text-primary-600 neeto-ui-bg-primary-100\": unread,\n }\n )}\n >\n {icon}\n {unread && (\n <span className=\"neeto-ui-rounded-full neeto-ui-bg-primary-800 absolute -right-0.5 -top-0.5 h-2 w-2\" />\n )}\n </span>\n </div>\n);\n\nexport default ActivityIcon;\n","import classNames from \"classnames\";\nimport { Avatar } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport ActivityIcon from \"./Icon\";\n\nconst Activity = ({ user, icon, unread = false, className, children }) => {\n const avatar = { name: user.name, imageUrl: user.profileImageUrl };\n\n return (\n <div\n className={classNames(\n \"neeto-molecules-engagements-node relative -mt-4 flex items-center gap-2 px-4 py-4\",\n className\n )}\n >\n <ActivityIcon {...{ icon, unread }} />\n <Avatar size=\"small\" user={avatar} />\n <div className=\"neeto-molecules-engagements-node__children\">\n {children}\n </div>\n </div>\n );\n};\n\nActivity.propTypes = {\n /** Object representing the user information */\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n\n /** Element to render as the icon */\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n\n /** Boolean indicating if the activity is unread to show unread badge */\n unread: PropTypes.bool,\n\n /** Additional classes passed on to the board view. */\n className: PropTypes.string,\n};\n\nexport default Activity;\n","import { isPresent } from \"neetocist\";\nimport { Avatar, Typography } from \"neetoui\";\n\nimport DateFormat from \"components/DateFormat\";\nimport MoreDropdown from \"components/MoreDropdown\";\n\nconst CommentHeader = ({ user, comment, info, actions }) => {\n const avatar = { name: user.name, imageUrl: user.profileImageUrl };\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-border-gray-300 flex items-center justify-between rounded-t-md border-b py-1 pl-4 pr-1\">\n <div className=\"flex min-w-0 flex-grow flex-wrap items-center gap-2\">\n <Avatar size=\"medium\" user={avatar} />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"body2\"\n weight=\"semibold\"\n >\n {user.name}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body2\">\n •\n </Typography>\n {info && (\n <>\n <Typography\n className=\"neeto-ui-text-gray-500 lowercase\"\n style=\"body2\"\n >\n {info}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body2\">\n •\n </Typography>\n </>\n )}\n {comment.createdAt && (\n <DateFormat.FromNow\n date={comment.createdAt}\n typographyProps={{\n style: \"body2\",\n className: \"neeto-ui-text-gray-500\",\n }}\n />\n )}\n </div>\n {isPresent(actions) && (\n <MoreDropdown\n dropdownButtonProps={{ className: \"self-start fles-shrink-0\" }}\n dropdownProps={{ position: \"bottom-start\" }}\n menuItems={actions}\n />\n )}\n </div>\n );\n};\n\nexport default CommentHeader;\n","import { memo } from \"react\";\n\nimport classNames from \"classnames\";\nimport { findIndexBy } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport { collectBy, eqProps, pathEq, pluck, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPicker from \"components/EmojiPicker\";\n\nconst findOwnIndex = findIndexBy({ userId: globalProps.user.id });\nconst groupReactions = collectBy(prop(\"unified\"));\n\nconst Reactions = ({ reactions, onAdd, onRemove }) => {\n const { t } = useTranslation();\n const groups = groupReactions(reactions);\n\n const onSelect = emoji => {\n // Try to find group to which emoji belongs in existing reactions.\n const group = groups.find(pathEq(emoji.unified, [0, \"unified\"]));\n if (group && findOwnIndex(group) >= 0) return; // User already reacted with same emoji.\n onAdd({ ...emoji, emoji: emoji.native });\n };\n\n return (\n <div className=\"mt-2 flex flex-wrap gap-0.5\">\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-200 mr-2\">\n <EmojiPicker {...{ onSelect }} />\n </div>\n {groups.map(reactions => {\n const ownIndex = findOwnIndex(reactions);\n const selected = ownIndex >= 0;\n const reaction = selected ? reactions[ownIndex] : reactions[0];\n const names = pluck(\"reactor\", reactions).join(\", \");\n\n return (\n <Tooltip\n key={reaction.unified}\n position=\"top\"\n content={\n <p className=\"text-center text-xs\">\n {t(\"neetoMolecules.engagements.namesReacted\", { names })}\n </p>\n }\n >\n <div\n className={classNames(\n \"neeto-ui-rounded-full mx-1 flex cursor-pointer items-center justify-center px-2 py-1\",\n {\n \"neeto-ui-bg-accent-100\": selected,\n \"neeto-ui-bg-gray-100\": !selected,\n }\n )}\n onClick={() => (selected ? onRemove : onAdd)(reaction)}\n >\n <Typography className=\"space-x-1 text-sm\" style=\"body2\">\n <span className=\"text-sm\">{reaction.emoji}</span>\n <span className=\"text-sm\">{reactions.length}</span>\n </Typography>\n </div>\n </Tooltip>\n );\n })}\n </div>\n );\n};\n\nexport default memo(Reactions, eqProps(\"reactions\"));\n","export const ACTIVITY_TYPES = {\n TIMELINE: \"Timeline\",\n FIELD_VALUE: \"FieldValue\",\n TASK: \"Task\",\n ASSIGNEE: \"Assignee\",\n CHECKLIST: \"Checklist\",\n FIELD: \"Field\",\n PROJECT: \"Project\",\n COMMENT: \"Comment\",\n DOCUMENT: \"Document\",\n CHAT_MESSAGE: \"ChatMessage\",\n MESSAGE: \"Message\",\n SECTION: \"Section\",\n PROJECT_MEMBER: \"ProjectMember\",\n PULL_REQUEST: \"NeetoGithubEngine::PullRequest\",\n};\n\nexport const ENGAGEMENT_TYPES = {\n COMMENT: \"comment\",\n ACTIVITY: \"activity\",\n};\n","import { ENGAGEMENT_TYPES } from \"./constants\";\n\nexport const createCommentElementId = comment =>\n `neeto-molecules-engagement-comment--${comment.id}`;\n\nexport const defaultMatchType = engagement => {\n if (engagement.commenter) return ENGAGEMENT_TYPES.COMMENT;\n else if (engagement.creator) return ENGAGEMENT_TYPES.ACTIVITY;\n\n return null;\n};\n","import { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport CommentHeader from \"./Header\";\nimport Reactions from \"./Reactions\";\n\nimport { createCommentElementId } from \"../utils\";\n\nconst Comment = forwardRef(\n (\n {\n user,\n comment,\n reactions,\n info,\n actions,\n className,\n children,\n onAddReaction,\n onRemoveReaction,\n },\n ref\n ) => (\n <div\n {...{ ref }}\n id={createCommentElementId(comment)}\n className={classNames(\n \"neeto-ui-bg-white neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-molecules-comments-node mb-4 w-full border\",\n className\n )}\n >\n <CommentHeader {...{ actions, comment, info, user }} />\n <div className=\"neeto-molecules-comments-node__inner p-4\">\n {children}\n {reactions !== false && (\n <Reactions\n {...{ reactions }}\n onAdd={onAddReaction}\n onRemove={onRemoveReaction}\n />\n )}\n </div>\n </div>\n )\n);\n\nComment.displayName = \"Comment\";\nComment.propTypes = {\n /** Object representing the user information */\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n\n /** Object representing the comment item. */\n comment: PropTypes.shape({\n id: PropTypes.string.isRequired,\n createdAt: PropTypes.string.isRequired,\n }).isRequired,\n\n /** Array of reactions. Settings this to `false` will disable reactions for the item */\n reactions: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),\n\n /** Optional text label to be displayed in the header. */\n info: PropTypes.string,\n\n /** Optional action items to be passed to the menuItems prop of the actions dropdown */\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n isVisible: PropTypes.bool,\n key: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n })\n ),\n\n /** Additional classes passed on to the board view. */\n className: PropTypes.string,\n\n /** Callback function triggered when a reaction (emoji) is added */\n onAddReaction: PropTypes.func,\n\n /** Callback function triggered when a reaction (emoji) is removed*/\n onRemoveReaction: PropTypes.func,\n};\n\nexport default Comment;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport Activity from \"./Activity\";\nimport Comment from \"./Comment\";\nimport { ENGAGEMENT_TYPES } from \"./constants\";\nimport \"./engagements.scss\";\nimport { defaultMatchType } from \"./utils\";\n\nconst Engagements = ({\n data,\n isActivitiesEnabled = false,\n matchType = defaultMatchType,\n renderComment,\n renderActivity,\n}) => {\n const rendererHashmap = {\n [ENGAGEMENT_TYPES.COMMENT]: renderComment,\n [ENGAGEMENT_TYPES.ACTIVITY]: isActivitiesEnabled ? renderActivity : noop,\n };\n\n return (\n <>\n {data.map((engagement, index) => {\n const type = matchType(engagement);\n const renderer = rendererHashmap[type];\n if (!renderer) return null;\n\n return (\n <React.Fragment key={engagement.id}>\n {renderer(engagement, index)}\n </React.Fragment>\n );\n })}\n </>\n );\n};\n\nEngagements.displayName = \"Engagements\";\nEngagements.Comment = Comment;\nEngagements.Activity = Activity;\nEngagements.TYPES = ENGAGEMENT_TYPES;\n\nEngagements.propTypes = {\n /** An array of engagement items */\n data: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n\n /** Boolean, determines whether activities are rendered. Defaults to false */\n isActivitiesEnabled: PropTypes.bool,\n\n /** Optional function to match the item type. Receives item as argument and should return one of Engagements.TYPES.*/\n matchType: PropTypes.func,\n\n /** A function to render individual comment item. Receives comment and index as arguments */\n renderComment: PropTypes.func.isRequired,\n\n /** A function to render individual activity item. Receives comment and index as arguments */\n renderActivity: PropTypes.func.isRequired,\n};\n\nexport default Engagements;\n"],"names":["ActivityIcon","_ref","icon","unread","_jsx","className","children","_jsxs","classNames","Activity","user","_ref$unread","avatar","name","imageUrl","profileImageUrl","Avatar","size","CommentHeader","comment","info","actions","Typography","style","weight","_Fragment","createdAt","DateFormat","FromNow","date","typographyProps","isPresent","MoreDropdown","dropdownButtonProps","dropdownProps","position","menuItems","findOwnIndex","findIndexBy","userId","globalProps","id","groupReactions","collectBy","prop","Reactions","reactions","onAdd","onRemove","_useTranslation","useTranslation","t","groups","onSelect","emoji","group","find","pathEq","unified","_objectSpread","EmojiPicker","map","ownIndex","selected","reaction","names","pluck","join","Tooltip","content","onClick","length","memo","eqProps","ENGAGEMENT_TYPES","COMMENT","ACTIVITY","createCommentElementId","concat","defaultMatchType","engagement","commenter","creator","Comment","forwardRef","ref","onAddReaction","onRemoveReaction","displayName","propTypes","PropTypes","shape","string","isRequired","oneOfType","array","bool","arrayOf","isVisible","key","label","func","Engagements","data","_ref$isActivitiesEnab","isActivitiesEnabled","_ref$matchType","matchType","renderComment","renderActivity","rendererHashmap","_defineProperty","noop","index","type","renderer","React","Fragment","TYPES"],"mappings":"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"}
1
+ {"version":3,"file":"Engagements.js","sources":["../src/components/Engagements/Activity/Icon.jsx","../src/components/Engagements/Activity/index.jsx","../src/components/Engagements/Comment/Header.jsx","../src/components/Engagements/Comment/Reactions.jsx","../src/components/Engagements/constants.js","../src/components/Engagements/utils.js","../src/components/Engagements/Comment/index.jsx","../src/components/Engagements/index.jsx"],"sourcesContent":["import classNames from \"classnames\";\n\nconst ActivityIcon = ({ icon, unread }) => (\n <div className=\"mx-0.5 flex-shrink-0\">\n <span\n className={classNames(\n \"neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-full neeto-molecules-activity-node-icon relative z-10 flex h-7 w-7 items-center justify-center p-1\",\n {\n \"neeto-ui-text-primary-600 neeto-ui-bg-primary-100\": unread,\n }\n )}\n >\n {icon}\n {unread && (\n <span className=\"neeto-ui-rounded-full neeto-ui-bg-primary-800 absolute -right-0.5 -top-0.5 h-2 w-2\" />\n )}\n </span>\n </div>\n);\n\nexport default ActivityIcon;\n","import classNames from \"classnames\";\nimport { Avatar } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport ActivityIcon from \"./Icon\";\n\nconst Activity = ({ user, icon, unread = false, className, children }) => {\n const avatar = { name: user.name, imageUrl: user.profileImageUrl };\n\n return (\n <div\n className={classNames(\n \"neeto-molecules-engagements-node relative -mt-4 flex items-center gap-2 px-4 py-4\",\n className\n )}\n >\n <ActivityIcon {...{ icon, unread }} />\n <Avatar size=\"small\" user={avatar} />\n <div className=\"neeto-molecules-engagements-node__children\">\n {children}\n </div>\n </div>\n );\n};\n\nActivity.propTypes = {\n /** Object representing the user information */\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n\n /** Element to render as the icon */\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n\n /** Boolean indicating if the activity is unread to show unread badge */\n unread: PropTypes.bool,\n\n /** Additional classes passed on to the board view. */\n className: PropTypes.string,\n};\n\nexport default Activity;\n","import { isPresent } from \"neetocist\";\nimport { Avatar, Typography } from \"neetoui\";\n\nimport DateFormat from \"components/DateFormat\";\nimport MoreDropdown from \"components/MoreDropdown\";\n\nconst CommentHeader = ({ user, comment, info, actions }) => {\n const avatar = { name: user.name, imageUrl: user.profileImageUrl };\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-border-gray-300 flex items-center justify-between rounded-t-md border-b py-1 pl-4 pr-1\">\n <div className=\"flex min-w-0 flex-grow flex-wrap items-center gap-2\">\n <Avatar size=\"medium\" user={avatar} />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"body2\"\n weight=\"semibold\"\n >\n {user.name}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body2\">\n •\n </Typography>\n {info && (\n <>\n <Typography\n className=\"neeto-ui-text-gray-500 lowercase\"\n style=\"body2\"\n >\n {info}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body2\">\n •\n </Typography>\n </>\n )}\n {comment.createdAt && (\n <DateFormat.FromNow\n date={comment.createdAt}\n typographyProps={{\n style: \"body2\",\n className: \"neeto-ui-text-gray-500\",\n }}\n />\n )}\n </div>\n {isPresent(actions) && (\n <MoreDropdown\n dropdownButtonProps={{ className: \"self-start fles-shrink-0\" }}\n dropdownProps={{ position: \"bottom-start\" }}\n menuItems={actions}\n />\n )}\n </div>\n );\n};\n\nexport default CommentHeader;\n","import { memo } from \"react\";\n\nimport classNames from \"classnames\";\nimport { findIndexBy } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport { collectBy, eqProps, pathEq, pluck, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPicker from \"components/EmojiPicker\";\n\nconst findOwnIndex = findIndexBy({ userId: globalProps.user.id });\nconst groupReactions = collectBy(prop(\"unified\"));\n\nconst Reactions = ({ reactions, onAdd, onRemove }) => {\n const { t } = useTranslation();\n const groups = groupReactions(reactions);\n\n const onSelect = emoji => {\n // Try to find group to which emoji belongs in existing reactions.\n const group = groups.find(pathEq(emoji.unified, [0, \"unified\"]));\n if (group && findOwnIndex(group) >= 0) return; // User already reacted with same emoji.\n onAdd({ ...emoji, emoji: emoji.native });\n };\n\n return (\n <div className=\"mt-2 flex flex-wrap gap-0.5\">\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-200 mr-2\">\n <EmojiPicker {...{ onSelect }} />\n </div>\n {groups.map(reactions => {\n const ownIndex = findOwnIndex(reactions);\n const selected = ownIndex >= 0;\n const reaction = selected ? reactions[ownIndex] : reactions[0];\n const names = pluck(\"reactor\", reactions).join(\", \");\n\n return (\n <Tooltip\n key={reaction.unified}\n position=\"top\"\n content={\n <p className=\"text-center text-xs\">\n {t(\"neetoMolecules.engagements.namesReacted\", { names })}\n </p>\n }\n >\n <div\n className={classNames(\n \"neeto-ui-rounded-full mx-1 flex cursor-pointer items-center justify-center px-2 py-1\",\n {\n \"neeto-ui-bg-accent-100\": selected,\n \"neeto-ui-bg-gray-100\": !selected,\n }\n )}\n onClick={() => (selected ? onRemove : onAdd)(reaction)}\n >\n <Typography\n className=\"flex items-center gap-x-1 text-sm\"\n style=\"body2\"\n >\n <span className=\"text-sm\">{reaction.emoji}</span>\n <span className=\"text-sm\">{reactions.length}</span>\n </Typography>\n </div>\n </Tooltip>\n );\n })}\n </div>\n );\n};\n\nexport default memo(Reactions, eqProps(\"reactions\"));\n","export const ACTIVITY_TYPES = {\n TIMELINE: \"Timeline\",\n FIELD_VALUE: \"FieldValue\",\n TASK: \"Task\",\n ASSIGNEE: \"Assignee\",\n CHECKLIST: \"Checklist\",\n FIELD: \"Field\",\n PROJECT: \"Project\",\n COMMENT: \"Comment\",\n DOCUMENT: \"Document\",\n CHAT_MESSAGE: \"ChatMessage\",\n MESSAGE: \"Message\",\n SECTION: \"Section\",\n PROJECT_MEMBER: \"ProjectMember\",\n PULL_REQUEST: \"NeetoGithubEngine::PullRequest\",\n};\n\nexport const ENGAGEMENT_TYPES = {\n COMMENT: \"comment\",\n ACTIVITY: \"activity\",\n};\n","import { ENGAGEMENT_TYPES } from \"./constants\";\n\nexport const createCommentElementId = comment =>\n `neeto-molecules-engagement-comment--${comment.id}`;\n\nexport const defaultMatchType = engagement => {\n if (engagement.commenter) return ENGAGEMENT_TYPES.COMMENT;\n else if (engagement.creator) return ENGAGEMENT_TYPES.ACTIVITY;\n\n return null;\n};\n","import { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport CommentHeader from \"./Header\";\nimport Reactions from \"./Reactions\";\n\nimport { createCommentElementId } from \"../utils\";\n\nconst Comment = forwardRef(\n (\n {\n user,\n comment,\n reactions,\n info,\n actions,\n className,\n children,\n onAddReaction,\n onRemoveReaction,\n },\n ref\n ) => (\n <div\n {...{ ref }}\n id={createCommentElementId(comment)}\n className={classNames(\n \"neeto-ui-bg-white neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-molecules-comments-node mb-4 w-full border\",\n className\n )}\n >\n <CommentHeader {...{ actions, comment, info, user }} />\n <div className=\"neeto-molecules-comments-node__inner p-4\">\n {children}\n {reactions !== false && (\n <Reactions\n {...{ reactions }}\n onAdd={onAddReaction}\n onRemove={onRemoveReaction}\n />\n )}\n </div>\n </div>\n )\n);\n\nComment.displayName = \"Comment\";\nComment.propTypes = {\n /** Object representing the user information */\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n\n /** Object representing the comment item. */\n comment: PropTypes.shape({\n id: PropTypes.string.isRequired,\n createdAt: PropTypes.string.isRequired,\n }).isRequired,\n\n /** Array of reactions. Settings this to `false` will disable reactions for the item */\n reactions: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),\n\n /** Optional text label to be displayed in the header. */\n info: PropTypes.string,\n\n /** Optional action items to be passed to the menuItems prop of the actions dropdown */\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n isVisible: PropTypes.bool,\n key: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n })\n ),\n\n /** Additional classes passed on to the board view. */\n className: PropTypes.string,\n\n /** Callback function triggered when a reaction (emoji) is added */\n onAddReaction: PropTypes.func,\n\n /** Callback function triggered when a reaction (emoji) is removed*/\n onRemoveReaction: PropTypes.func,\n};\n\nexport default Comment;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport Activity from \"./Activity\";\nimport Comment from \"./Comment\";\nimport { ENGAGEMENT_TYPES } from \"./constants\";\nimport \"./engagements.scss\";\nimport { defaultMatchType } from \"./utils\";\n\nconst Engagements = ({\n data,\n isActivitiesEnabled = false,\n matchType = defaultMatchType,\n renderComment,\n renderActivity,\n}) => {\n const rendererHashmap = {\n [ENGAGEMENT_TYPES.COMMENT]: renderComment,\n [ENGAGEMENT_TYPES.ACTIVITY]: isActivitiesEnabled ? renderActivity : noop,\n };\n\n return (\n <>\n {data.map((engagement, index) => {\n const type = matchType(engagement);\n const renderer = rendererHashmap[type];\n if (!renderer) return null;\n\n return (\n <React.Fragment key={engagement.id}>\n {renderer(engagement, index)}\n </React.Fragment>\n );\n })}\n </>\n );\n};\n\nEngagements.displayName = \"Engagements\";\nEngagements.Comment = Comment;\nEngagements.Activity = Activity;\nEngagements.TYPES = ENGAGEMENT_TYPES;\n\nEngagements.propTypes = {\n /** An array of engagement items */\n data: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n\n /** Boolean, determines whether activities are rendered. Defaults to false */\n isActivitiesEnabled: PropTypes.bool,\n\n /** Optional function to match the item type. Receives item as argument and should return one of Engagements.TYPES.*/\n matchType: PropTypes.func,\n\n /** A function to render individual comment item. Receives comment and index as arguments */\n renderComment: PropTypes.func.isRequired,\n\n /** A function to render individual activity item. Receives comment and index as arguments */\n renderActivity: PropTypes.func.isRequired,\n};\n\nexport default Engagements;\n"],"names":["ActivityIcon","_ref","icon","unread","_jsx","className","children","_jsxs","classNames","Activity","user","_ref$unread","avatar","name","imageUrl","profileImageUrl","Avatar","size","CommentHeader","comment","info","actions","Typography","style","weight","_Fragment","createdAt","DateFormat","FromNow","date","typographyProps","isPresent","MoreDropdown","dropdownButtonProps","dropdownProps","position","menuItems","findOwnIndex","findIndexBy","userId","globalProps","id","groupReactions","collectBy","prop","Reactions","reactions","onAdd","onRemove","_useTranslation","useTranslation","t","groups","onSelect","emoji","group","find","pathEq","unified","_objectSpread","EmojiPicker","map","ownIndex","selected","reaction","names","pluck","join","Tooltip","content","onClick","length","memo","eqProps","ENGAGEMENT_TYPES","COMMENT","ACTIVITY","createCommentElementId","concat","defaultMatchType","engagement","commenter","creator","Comment","forwardRef","ref","onAddReaction","onRemoveReaction","displayName","propTypes","PropTypes","shape","string","isRequired","oneOfType","array","bool","arrayOf","isVisible","key","label","func","Engagements","data","_ref$isActivitiesEnab","isActivitiesEnabled","_ref$matchType","matchType","renderComment","renderActivity","rendererHashmap","_defineProperty","noop","index","type","renderer","React","Fragment","TYPES"],"mappings":"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"}
@@ -99,7 +99,7 @@ var ModalBody = function ModalBody(_ref) {
99
99
  return /*#__PURE__*/jsx(Modal.Body, {
100
100
  className: "neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6",
101
101
  children: /*#__PURE__*/jsx("div", {
102
- className: "space-y-4",
102
+ className: "flex flex-col gap-y-4",
103
103
  ref: containerRef,
104
104
  children: Object.keys(data).map(function (key) {
105
105
  if (isNotPresent(data[key])) return null;
@@ -1 +1 @@
1
- {"version":3,"file":"FinderModal.js","sources":["../src/components/FinderModal/Link.jsx","../src/components/FinderModal/utils.jsx","../src/components/FinderModal/Body.jsx","../src/components/FinderModal/Footer.jsx","../src/components/FinderModal/Header.jsx","../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={`${url.pathname}${url.search}`}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part?.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n if (!container) return;\n\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n if (isEmpty(nodes)) return;\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n\n const targetNode = nodes[mutables.focusIndex];\n if (targetNode) {\n targetNode.focus();\n }\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","concat","pathname","search","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","isEmpty","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
1
+ {"version":3,"file":"FinderModal.js","sources":["../src/components/FinderModal/Link.jsx","../src/components/FinderModal/utils.jsx","../src/components/FinderModal/Body.jsx","../src/components/FinderModal/Footer.jsx","../src/components/FinderModal/Header.jsx","../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={`${url.pathname}${url.search}`}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part?.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"flex flex-col gap-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n if (!container) return;\n\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n if (isEmpty(nodes)) return;\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n\n const targetNode = nodes[mutables.focusIndex];\n if (targetNode) {\n targetNode.focus();\n }\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","concat","pathname","search","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","isEmpty","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
@@ -1106,7 +1106,7 @@ var IconPicker = function IconPicker(_ref) {
1106
1106
  children: /*#__PURE__*/jsxs("div", {
1107
1107
  className: "w-72 flex-grow p-2 md:w-80",
1108
1108
  children: [/*#__PURE__*/jsxs("div", {
1109
- className: "mb-1 space-y-2",
1109
+ className: "mb-1 flex flex-col gap-y-2",
1110
1110
  children: [/*#__PURE__*/jsx(Input, {
1111
1111
  autoFocus: true,
1112
1112
  autoComplete: "off",