@bigbinary/neeto-molecules 4.1.0-beta1 → 4.1.1

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 (298) hide show
  1. package/dist/AuditLogs.js +193 -63
  2. package/dist/AuditLogs.js.map +1 -1
  3. package/dist/Breadcrumbs.js +40 -24
  4. package/dist/Breadcrumbs.js.map +1 -1
  5. package/dist/BrowserSupport.js +17 -8
  6. package/dist/BrowserSupport.js.map +1 -1
  7. package/dist/Builder.js +16 -23
  8. package/dist/Builder.js.map +1 -1
  9. package/dist/CalendarView.js +35 -11
  10. package/dist/CalendarView.js.map +1 -1
  11. package/dist/CardLayout.js +0 -1
  12. package/dist/CardLayout.js.map +1 -1
  13. package/dist/{Chevron-Dtxc2piW.js → Chevron-DOz710Ei.js} +23 -20
  14. package/dist/Chevron-DOz710Ei.js.map +1 -0
  15. package/dist/Codeblock.js +3 -5
  16. package/dist/Codeblock.js.map +1 -1
  17. package/dist/{Columns-CsOYfWFt.js → Columns-D51hN86M.js} +8 -9
  18. package/dist/Columns-D51hN86M.js.map +1 -0
  19. package/dist/Columns.js +1 -1
  20. package/dist/ConfigurePageSidebar.js +3 -3
  21. package/dist/ConfigurePageSidebar.js.map +1 -1
  22. package/dist/ConfirmationModal.js +2 -2
  23. package/dist/ConfirmationModal.js.map +1 -1
  24. package/dist/CopyToClipboardButton.js +12 -7
  25. package/dist/CopyToClipboardButton.js.map +1 -1
  26. package/dist/DeleteArchiveModal.js +5 -7
  27. package/dist/DeleteArchiveModal.js.map +1 -1
  28. package/dist/DeviceIncompatibilityMessage.js +0 -1
  29. package/dist/DeviceIncompatibilityMessage.js.map +1 -1
  30. package/dist/DocumentEditor.js +3 -3
  31. package/dist/DocumentEditor.js.map +1 -1
  32. package/dist/DynamicVariables.js +5 -7
  33. package/dist/DynamicVariables.js.map +1 -1
  34. package/dist/EmailForm.js +107 -124
  35. package/dist/EmailForm.js.map +1 -1
  36. package/dist/EmailPreview.js +90 -73
  37. package/dist/EmailPreview.js.map +1 -1
  38. package/dist/EmojiPicker.js +6 -1
  39. package/dist/EmojiPicker.js.map +1 -1
  40. package/dist/EmojiReactions.js +1 -1
  41. package/dist/EmojiReactions.js.map +1 -1
  42. package/dist/ErrorPage.js +7 -5
  43. package/dist/ErrorPage.js.map +1 -1
  44. package/dist/FileUpload.js +14 -14
  45. package/dist/FileUpload.js.map +1 -1
  46. package/dist/FinderModal.js +61 -74
  47. package/dist/FinderModal.js.map +1 -1
  48. package/dist/FloatingActionMenu.js +233 -190
  49. package/dist/FloatingActionMenu.js.map +1 -1
  50. package/dist/Header.js +2 -4
  51. package/dist/Header.js.map +1 -1
  52. package/dist/HelpPopover.js +2 -6
  53. package/dist/HelpPopover.js.map +1 -1
  54. package/dist/IconPicker.js +2 -3
  55. package/dist/IconPicker.js.map +1 -1
  56. package/dist/InlineInput.js +6 -2
  57. package/dist/InlineInput.js.map +1 -1
  58. package/dist/Insights.js +3 -6
  59. package/dist/Insights.js.map +1 -1
  60. package/dist/IntegrationCard.js +10 -12
  61. package/dist/IntegrationCard.js.map +1 -1
  62. package/dist/IpRestriction.js +11 -13
  63. package/dist/IpRestriction.js.map +1 -1
  64. package/dist/KeyboardShortcuts.js +3 -4
  65. package/dist/KeyboardShortcuts.js.map +1 -1
  66. package/dist/LoginPage.js +4 -9
  67. package/dist/LoginPage.js.map +1 -1
  68. package/dist/MadeWith.js +1 -2
  69. package/dist/MadeWith.js.map +1 -1
  70. package/dist/MenuBar.js +10 -8
  71. package/dist/MenuBar.js.map +1 -1
  72. package/dist/Metadata.js +5 -8
  73. package/dist/Metadata.js.map +1 -1
  74. package/dist/MobilePreviewHeader.js +1 -1
  75. package/dist/MobilePreviewHeader.js.map +1 -1
  76. package/dist/MoreDropdown.js +1 -2
  77. package/dist/MoreDropdown.js.map +1 -1
  78. package/dist/NavigationHeader.js +4 -8
  79. package/dist/NavigationHeader.js.map +1 -1
  80. package/dist/NeetoWidget.js +2 -3
  81. package/dist/NeetoWidget.js.map +1 -1
  82. package/dist/Onboarding.js +2 -10
  83. package/dist/Onboarding.js.map +1 -1
  84. package/dist/OptionFields.js +6 -22
  85. package/dist/OptionFields.js.map +1 -1
  86. package/dist/PageLoader.js +1 -1
  87. package/dist/PageLoader.js.map +1 -1
  88. package/dist/PhoneNumber.js +0 -1
  89. package/dist/PhoneNumber.js.map +1 -1
  90. package/dist/ProductEmbed.js +35 -36
  91. package/dist/ProductEmbed.js.map +1 -1
  92. package/dist/PublishBlock.js +11 -22
  93. package/dist/PublishBlock.js.map +1 -1
  94. package/dist/PublishYourItem.js +2 -2
  95. package/dist/PublishYourItem.js.map +1 -1
  96. package/dist/Rename.js +18 -17
  97. package/dist/Rename.js.map +1 -1
  98. package/dist/Schedule.js +120 -69
  99. package/dist/Schedule.js.map +1 -1
  100. package/dist/SendToFields.js +31 -23
  101. package/dist/SendToFields.js.map +1 -1
  102. package/dist/SessionEnvironment.js +2 -8
  103. package/dist/SessionEnvironment.js.map +1 -1
  104. package/dist/Settings.js +8 -9
  105. package/dist/Settings.js.map +1 -1
  106. package/dist/ShareRecordingPane.js +69 -52
  107. package/dist/ShareRecordingPane.js.map +1 -1
  108. package/dist/ShareViaEmail.js +6 -9
  109. package/dist/ShareViaEmail.js.map +1 -1
  110. package/dist/ShareViaLink.js +6 -22
  111. package/dist/ShareViaLink.js.map +1 -1
  112. package/dist/Sidebar.js +24 -20
  113. package/dist/Sidebar.js.map +1 -1
  114. package/dist/StatusDropdown.js +7 -10
  115. package/dist/StatusDropdown.js.map +1 -1
  116. package/dist/StickyRibbonsContainer.js +3 -3
  117. package/dist/StickyRibbonsContainer.js.map +1 -1
  118. package/dist/SubHeader.js +12 -15
  119. package/dist/SubHeader.js.map +1 -1
  120. package/dist/Taxonomy.js +4 -6
  121. package/dist/Taxonomy.js.map +1 -1
  122. package/dist/ToggleFeatureCard.js +18 -24
  123. package/dist/ToggleFeatureCard.js.map +1 -1
  124. package/dist/VersionHistory.js +1 -3
  125. package/dist/VersionHistory.js.map +1 -1
  126. package/dist/cjs/AuditLogs.js +190 -60
  127. package/dist/cjs/AuditLogs.js.map +1 -1
  128. package/dist/cjs/Breadcrumbs.js +40 -24
  129. package/dist/cjs/Breadcrumbs.js.map +1 -1
  130. package/dist/cjs/BrowserSupport.js +17 -8
  131. package/dist/cjs/BrowserSupport.js.map +1 -1
  132. package/dist/cjs/Builder.js +16 -23
  133. package/dist/cjs/Builder.js.map +1 -1
  134. package/dist/cjs/CalendarView.js +35 -11
  135. package/dist/cjs/CalendarView.js.map +1 -1
  136. package/dist/cjs/CardLayout.js +0 -1
  137. package/dist/cjs/CardLayout.js.map +1 -1
  138. package/dist/cjs/{Chevron-DzdbGPJI.js → Chevron-brQURuT5.js} +23 -20
  139. package/dist/cjs/Chevron-brQURuT5.js.map +1 -0
  140. package/dist/cjs/Codeblock.js +3 -5
  141. package/dist/cjs/Codeblock.js.map +1 -1
  142. package/dist/cjs/{Columns-DHPNrFgq.js → Columns-7xltEL2z.js} +8 -9
  143. package/dist/cjs/Columns-7xltEL2z.js.map +1 -0
  144. package/dist/cjs/Columns.js +1 -1
  145. package/dist/cjs/ConfigurePageSidebar.js +3 -3
  146. package/dist/cjs/ConfigurePageSidebar.js.map +1 -1
  147. package/dist/cjs/ConfirmationModal.js +2 -2
  148. package/dist/cjs/ConfirmationModal.js.map +1 -1
  149. package/dist/cjs/CopyToClipboardButton.js +11 -6
  150. package/dist/cjs/CopyToClipboardButton.js.map +1 -1
  151. package/dist/cjs/DeleteArchiveModal.js +5 -7
  152. package/dist/cjs/DeleteArchiveModal.js.map +1 -1
  153. package/dist/cjs/DeviceIncompatibilityMessage.js +0 -1
  154. package/dist/cjs/DeviceIncompatibilityMessage.js.map +1 -1
  155. package/dist/cjs/DocumentEditor.js +3 -3
  156. package/dist/cjs/DocumentEditor.js.map +1 -1
  157. package/dist/cjs/DynamicVariables.js +5 -7
  158. package/dist/cjs/DynamicVariables.js.map +1 -1
  159. package/dist/cjs/EmailForm.js +105 -122
  160. package/dist/cjs/EmailForm.js.map +1 -1
  161. package/dist/cjs/EmailPreview.js +108 -73
  162. package/dist/cjs/EmailPreview.js.map +1 -1
  163. package/dist/cjs/EmojiPicker.js +6 -1
  164. package/dist/cjs/EmojiPicker.js.map +1 -1
  165. package/dist/cjs/EmojiReactions.js +1 -1
  166. package/dist/cjs/EmojiReactions.js.map +1 -1
  167. package/dist/cjs/ErrorPage.js +7 -5
  168. package/dist/cjs/ErrorPage.js.map +1 -1
  169. package/dist/cjs/FileUpload.js +13 -13
  170. package/dist/cjs/FileUpload.js.map +1 -1
  171. package/dist/cjs/FinderModal.js +59 -72
  172. package/dist/cjs/FinderModal.js.map +1 -1
  173. package/dist/cjs/FloatingActionMenu.js +232 -189
  174. package/dist/cjs/FloatingActionMenu.js.map +1 -1
  175. package/dist/cjs/Header.js +2 -4
  176. package/dist/cjs/Header.js.map +1 -1
  177. package/dist/cjs/HelpPopover.js +2 -6
  178. package/dist/cjs/HelpPopover.js.map +1 -1
  179. package/dist/cjs/IconPicker.js +2 -3
  180. package/dist/cjs/IconPicker.js.map +1 -1
  181. package/dist/cjs/InlineInput.js +6 -2
  182. package/dist/cjs/InlineInput.js.map +1 -1
  183. package/dist/cjs/Insights.js +3 -6
  184. package/dist/cjs/Insights.js.map +1 -1
  185. package/dist/cjs/IntegrationCard.js +9 -11
  186. package/dist/cjs/IntegrationCard.js.map +1 -1
  187. package/dist/cjs/IpRestriction.js +11 -13
  188. package/dist/cjs/IpRestriction.js.map +1 -1
  189. package/dist/cjs/KeyboardShortcuts.js +3 -4
  190. package/dist/cjs/KeyboardShortcuts.js.map +1 -1
  191. package/dist/cjs/LoginPage.js +4 -9
  192. package/dist/cjs/LoginPage.js.map +1 -1
  193. package/dist/cjs/MadeWith.js +1 -2
  194. package/dist/cjs/MadeWith.js.map +1 -1
  195. package/dist/cjs/MenuBar.js +10 -8
  196. package/dist/cjs/MenuBar.js.map +1 -1
  197. package/dist/cjs/Metadata.js +5 -8
  198. package/dist/cjs/Metadata.js.map +1 -1
  199. package/dist/cjs/MobilePreviewHeader.js +1 -1
  200. package/dist/cjs/MobilePreviewHeader.js.map +1 -1
  201. package/dist/cjs/MoreDropdown.js +1 -2
  202. package/dist/cjs/MoreDropdown.js.map +1 -1
  203. package/dist/cjs/NavigationHeader.js +4 -8
  204. package/dist/cjs/NavigationHeader.js.map +1 -1
  205. package/dist/cjs/NeetoWidget.js +2 -3
  206. package/dist/cjs/NeetoWidget.js.map +1 -1
  207. package/dist/cjs/Onboarding.js +2 -10
  208. package/dist/cjs/Onboarding.js.map +1 -1
  209. package/dist/cjs/OptionFields.js +6 -22
  210. package/dist/cjs/OptionFields.js.map +1 -1
  211. package/dist/cjs/PageLoader.js +1 -1
  212. package/dist/cjs/PageLoader.js.map +1 -1
  213. package/dist/cjs/PhoneNumber.js +0 -1
  214. package/dist/cjs/PhoneNumber.js.map +1 -1
  215. package/dist/cjs/ProductEmbed.js +35 -36
  216. package/dist/cjs/ProductEmbed.js.map +1 -1
  217. package/dist/cjs/PublishBlock.js +11 -22
  218. package/dist/cjs/PublishBlock.js.map +1 -1
  219. package/dist/cjs/PublishYourItem.js +2 -2
  220. package/dist/cjs/PublishYourItem.js.map +1 -1
  221. package/dist/cjs/Rename.js +18 -17
  222. package/dist/cjs/Rename.js.map +1 -1
  223. package/dist/cjs/Schedule.js +119 -68
  224. package/dist/cjs/Schedule.js.map +1 -1
  225. package/dist/cjs/SendToFields.js +31 -23
  226. package/dist/cjs/SendToFields.js.map +1 -1
  227. package/dist/cjs/SessionEnvironment.js +2 -8
  228. package/dist/cjs/SessionEnvironment.js.map +1 -1
  229. package/dist/cjs/Settings.js +8 -9
  230. package/dist/cjs/Settings.js.map +1 -1
  231. package/dist/cjs/ShareRecordingPane.js +68 -51
  232. package/dist/cjs/ShareRecordingPane.js.map +1 -1
  233. package/dist/cjs/ShareViaEmail.js +6 -9
  234. package/dist/cjs/ShareViaEmail.js.map +1 -1
  235. package/dist/cjs/ShareViaLink.js +6 -22
  236. package/dist/cjs/ShareViaLink.js.map +1 -1
  237. package/dist/cjs/Sidebar.js +24 -20
  238. package/dist/cjs/Sidebar.js.map +1 -1
  239. package/dist/cjs/StatusDropdown.js +6 -9
  240. package/dist/cjs/StatusDropdown.js.map +1 -1
  241. package/dist/cjs/StickyRibbonsContainer.js +3 -3
  242. package/dist/cjs/StickyRibbonsContainer.js.map +1 -1
  243. package/dist/cjs/SubHeader.js +12 -15
  244. package/dist/cjs/SubHeader.js.map +1 -1
  245. package/dist/cjs/Taxonomy.js +4 -6
  246. package/dist/cjs/Taxonomy.js.map +1 -1
  247. package/dist/cjs/ToggleFeatureCard.js +17 -23
  248. package/dist/cjs/ToggleFeatureCard.js.map +1 -1
  249. package/dist/cjs/VersionHistory.js +1 -3
  250. package/dist/cjs/VersionHistory.js.map +1 -1
  251. package/package.json +5 -5
  252. package/src/translations/ar.json +52 -14
  253. package/src/translations/bg.json +52 -14
  254. package/src/translations/ca.json +53 -15
  255. package/src/translations/cs.json +52 -14
  256. package/src/translations/da.json +52 -14
  257. package/src/translations/de.json +52 -14
  258. package/src/translations/en.json +51 -15
  259. package/src/translations/es-MX.json +53 -15
  260. package/src/translations/es.json +52 -14
  261. package/src/translations/et.json +52 -14
  262. package/src/translations/fi.json +53 -15
  263. package/src/translations/fil.json +53 -15
  264. package/src/translations/fr.json +52 -14
  265. package/src/translations/he.json +52 -14
  266. package/src/translations/hi.json +52 -14
  267. package/src/translations/hr.json +53 -15
  268. package/src/translations/id.json +53 -15
  269. package/src/translations/it.json +53 -15
  270. package/src/translations/ja.json +53 -15
  271. package/src/translations/ko.json +52 -14
  272. package/src/translations/nl.json +53 -15
  273. package/src/translations/pl.json +53 -15
  274. package/src/translations/pt-BR.json +53 -15
  275. package/src/translations/pt.json +53 -15
  276. package/src/translations/ro.json +53 -15
  277. package/src/translations/ru.json +51 -13
  278. package/src/translations/sk.json +52 -14
  279. package/src/translations/sl.json +52 -14
  280. package/src/translations/sv.json +53 -15
  281. package/src/translations/th.json +53 -15
  282. package/src/translations/tr.json +53 -15
  283. package/src/translations/uk.json +51 -13
  284. package/src/translations/vi.json +50 -12
  285. package/src/translations/zh-CN.json +50 -12
  286. package/src/translations/zh-TW.json +50 -12
  287. package/types/EmailForm.d.ts +5 -3
  288. package/types/FinderModal.d.ts +0 -8
  289. package/types/IntegrationCard.d.ts +1 -1
  290. package/types/Rename.d.ts +2 -0
  291. package/types/Settings.d.ts +2 -2
  292. package/types/ShareViaLink.d.ts +2 -2
  293. package/types/SubHeader.d.ts +2 -2
  294. package/types/ToggleFeatureCard.d.ts +3 -3
  295. package/dist/Chevron-Dtxc2piW.js.map +0 -1
  296. package/dist/Columns-CsOYfWFt.js.map +0 -1
  297. package/dist/cjs/Chevron-DzdbGPJI.js.map +0 -1
  298. package/dist/cjs/Columns-DHPNrFgq.js.map +0 -1
@@ -1,11 +1,10 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
3
  import React__default, { useRef } from 'react';
4
- import { isNotPresent, humanize, noop } from '@bigbinary/neeto-cist';
4
+ import { isNotEmpty, isNotPresent, humanize, noop } from '@bigbinary/neeto-cist';
5
5
  import useHotkeys from '@bigbinary/neeto-hotkeys';
6
6
  import Modal from '@bigbinary/neetoui/Modal';
7
- import { prop, isEmpty } from 'ramda';
8
- import classnames from 'classnames';
7
+ import { isEmpty, prop } from 'ramda';
9
8
  import Typography from '@bigbinary/neetoui/Typography';
10
9
  import NoData from '@bigbinary/neetoui/NoData';
11
10
  import Tag from '@bigbinary/neetoui/Tag';
@@ -29,22 +28,20 @@ import '@bigbinary/neetoui/Input';
29
28
  import '@bigbinary/neeto-commons-frontend/utils';
30
29
 
31
30
  var _excluded$1 = ["to", "children"];
32
- function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
32
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
33
  var Link = function Link(_ref) {
35
34
  var to = _ref.to,
36
35
  children = _ref.children,
37
36
  rest = _objectWithoutProperties(_ref, _excluded$1);
38
37
  var url = new URL(to);
39
38
  url.host = "";
40
- return /*#__PURE__*/jsx(Link$1, _objectSpread$2(_objectSpread$2({}, rest), {}, {
39
+ return /*#__PURE__*/jsx(Link$1, _objectSpread$1(_objectSpread$1({}, rest), {}, {
41
40
  to: "".concat(url.pathname).concat(url.search),
42
41
  children: children
43
42
  }));
44
43
  };
45
44
 
46
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
47
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
48
45
  var minMax = function minMax(number) {
49
46
  var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.POSITIVE_INFINITY;
50
47
  var min = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -79,19 +76,6 @@ var filterAndHighlightContent = function filterAndHighlightContent(bodyContent,
79
76
  }, index);
80
77
  });
81
78
  };
82
- var flattenData = function flattenData(data) {
83
- if (!data) return [];
84
- if (Array.isArray(data)) return data;
85
- var result = [];
86
- Object.keys(data).forEach(function (key) {
87
- data[key].forEach(function (item) {
88
- result.push(_objectSpread$1(_objectSpread$1({}, item), {}, {
89
- category: key
90
- }));
91
- });
92
- });
93
- return result;
94
- };
95
79
  var createStylePalette = function createStylePalette(values) {
96
80
  var assignedStyles = {};
97
81
  var styleIndex = 0;
@@ -108,17 +92,18 @@ var getStyle = createStylePalette(["primary", "info", "success", "secondary", "w
108
92
  var ModalBody = function ModalBody(_ref) {
109
93
  var containerRef = _ref.containerRef,
110
94
  data = _ref.data,
111
- iconComponentMap = _ref.iconComponentMap,
112
95
  onClose = _ref.onClose,
113
96
  loading = _ref.loading,
114
97
  searchTerm = _ref.searchTerm;
115
98
  var _useTranslation = useTranslation(),
116
99
  t = _useTranslation.t;
117
- var flattenedData = flattenData(data);
118
- var isDataEmpty = isNotPresent(flattenedData);
100
+ var categoryGroups = Object.keys(data).filter(function (key) {
101
+ return isNotEmpty(data[key]);
102
+ });
103
+ var isDataEmpty = isNotPresent(data) || isEmpty(categoryGroups);
119
104
  if (isDataEmpty && !loading) {
120
105
  return /*#__PURE__*/jsx(Modal.Body, {
121
- className: "neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6",
106
+ className: "neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-3 py-5",
122
107
  children: /*#__PURE__*/jsx(NoData, {
123
108
  description: t("neetoMolecules.finderModal.noDataDesc"),
124
109
  title: t("neetoMolecules.finderModal.noDataTitle")
@@ -126,50 +111,53 @@ var ModalBody = function ModalBody(_ref) {
126
111
  });
127
112
  }
128
113
  return /*#__PURE__*/jsx(Modal.Body, {
129
- className: "neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6",
114
+ className: "neeto-molecules-finder-modal__body h-96 overflow-y-auto px-3 py-4",
130
115
  children: /*#__PURE__*/jsx("div", {
131
- className: "flex flex-col gap-y-2",
116
+ className: "flex flex-col",
132
117
  ref: containerRef,
133
- children: flattenedData.map(function (item) {
134
- if (isNotPresent(item.category)) return null;
135
- var Icon = iconComponentMap[item.category] || iconComponentMap["default"];
136
- var nameContent = htmlToText(item.name);
137
- var bodyContent = htmlToText(item.body);
138
- var filteredBodyContent = filterAndHighlightContent(bodyContent, searchTerm);
139
- return /*#__PURE__*/jsxs(Link, {
140
- 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",
141
- to: item.url,
142
- onClick: onClose,
143
- children: [/*#__PURE__*/jsx(Icon, {
144
- className: "neeto-ui-text-gray-500 min-w-fit",
145
- size: 16
146
- }), /*#__PURE__*/jsxs("div", {
147
- className: "line-clamp-1 flex flex-col",
148
- children: [/*#__PURE__*/jsxs("div", {
149
- className: "flex items-center gap-2",
150
- children: [nameContent && /*#__PURE__*/jsx(Typography, {
151
- className: "neeto-ui-text-black text-sm font-medium",
152
- children: highlightMatch(nameContent, searchTerm)
153
- }), /*#__PURE__*/jsx(Tag, {
154
- size: "small",
155
- style: getStyle(item.category),
156
- children: humanize(item.category)
157
- })]
158
- }), bodyContent && /*#__PURE__*/jsx(Typography, {
159
- className: classnames("truncate", {
160
- "neeto-ui-text-gray-600 text-xs": nameContent,
161
- "neeto-ui-text-black text-sm font-medium": !nameContent
162
- }),
163
- children: filteredBodyContent || bodyContent
164
- })]
118
+ children: categoryGroups.map(function (category, categoryIndex) {
119
+ var items = data[category];
120
+ var shouldShowCategoryDivider = categoryIndex < categoryGroups.length - 1;
121
+ return /*#__PURE__*/jsxs("div", {
122
+ children: [items.map(function (item) {
123
+ var nameContent = htmlToText(item.name);
124
+ var bodyContent = htmlToText(item.body);
125
+ var filteredBodyContent = filterAndHighlightContent(bodyContent, searchTerm);
126
+ return /*#__PURE__*/jsx(Link, {
127
+ className: "neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded-lg flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-xs transition-all duration-300",
128
+ to: item.url,
129
+ onClick: onClose,
130
+ children: /*#__PURE__*/jsxs("div", {
131
+ className: "line-clamp-1 flex flex-col gap-1",
132
+ children: [/*#__PURE__*/jsxs("div", {
133
+ className: "flex items-start gap-2",
134
+ children: [nameContent && /*#__PURE__*/jsx(Typography, {
135
+ className: "neeto-ui-text-black",
136
+ weight: "semibold",
137
+ children: highlightMatch(nameContent, searchTerm)
138
+ }), category && /*#__PURE__*/jsx(Tag, {
139
+ className: "mt-1",
140
+ size: "small",
141
+ style: getStyle(category),
142
+ type: "solid",
143
+ children: humanize(category)
144
+ })]
145
+ }), bodyContent && /*#__PURE__*/jsx(Typography, {
146
+ className: "neeto-ui-text-gray-600 truncate text-xs",
147
+ children: filteredBodyContent || bodyContent
148
+ })]
149
+ })
150
+ }, "".concat(category, "-").concat(item.id));
151
+ }), shouldShowCategoryDivider && /*#__PURE__*/jsx("hr", {
152
+ className: "neeto-ui-border-gray-300 mx-3 my-3 border-t"
165
153
  })]
166
- }, item.id);
154
+ }, category);
167
155
  })
168
156
  })
169
157
  });
170
158
  };
171
159
 
172
- var css = ".neeto-molecules-finder-modal__search .neeto-ui-input--naked input{padding-inline-start:4px}.neeto-molecules-finder-modal-backdrop{grid-template-columns:100%}.neeto-molecules-finder-modal-backdrop .neeto-ui-modal__wrapper.neeto-molecules-finder-modal{margin-inline-end:auto;margin-inline-start:auto;max-width:740px;width:100%}.neeto-molecules-finder-matched-tag{background-color:#fbe48f!important}.neeto-molecules-finder-modal__footer{--neeto-ui-modal-footer-bg:rgb(var(--neeto-ui-white))}";
160
+ var css = ".neeto-molecules-finder-modal__search .neeto-ui-input--naked input{padding-inline-start:4px}.neeto-molecules-finder-modal-backdrop{grid-template-columns:100%}.neeto-molecules-finder-modal-backdrop .neeto-ui-modal__wrapper.neeto-molecules-finder-modal{margin-inline-end:auto;margin-inline-start:auto;max-width:740px;width:100%}.neeto-molecules-finder-matched-tag{background-color:#fbe48f!important;border-radius:var(--neeto-ui-rounded-sm);padding:0 .5px 2px}.neeto-molecules-finder-modal__footer{--neeto-ui-modal-footer-bg:rgb(var(--neeto-ui-white))}.neeto-molecules-finder-modal__header{--neeto-ui-input-prefix-suffix-icon-size:1.25rem;--neeto-ui-input-font-size:1rem}.neeto-molecules-finder-modal__body{--neeto-ui-tag-padding-x:0.625rem;--neeto-ui-tag-padding-y:0.125rem}";
173
161
  n(css,{});
174
162
 
175
163
  var ModalFooter = function ModalFooter(_ref) {
@@ -187,10 +175,10 @@ var ModalFooter = function ModalFooter(_ref) {
187
175
  }, {
188
176
  label: t("neetoMolecules.common.actions.move"),
189
177
  keys: [/*#__PURE__*/jsx(Up, {
190
- className: "neeto-ui-text-gray-800",
178
+ className: "neeto-ui-text-gray-600",
191
179
  size: 12
192
180
  }, "up"), /*#__PURE__*/jsx(Down, {
193
- className: "neeto-ui-text-gray-800",
181
+ className: "neeto-ui-text-gray-600",
194
182
  size: 12
195
183
  }, "down")],
196
184
  isVisible: true
@@ -200,21 +188,22 @@ var ModalFooter = function ModalFooter(_ref) {
200
188
  isVisible: true
201
189
  }];
202
190
  return /*#__PURE__*/jsx(Modal.Footer, {
203
- className: "neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3",
191
+ className: "neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-6 py-4",
204
192
  children: /*#__PURE__*/jsx("div", {
205
- className: "neeto-ui-text-xxs flex items-center justify-end gap-4",
193
+ className: "neeto-ui-text-xxs flex items-center gap-4",
206
194
  children: shortcuts.filter(prop("isVisible")).map(function (_ref2, index) {
207
195
  var label = _ref2.label,
208
196
  keys = _ref2.keys;
209
197
  return /*#__PURE__*/jsxs("div", {
210
198
  className: "flex items-center gap-1",
211
199
  children: [/*#__PURE__*/jsx(Typography, {
200
+ className: "neeto-ui-text-gray-600",
212
201
  component: "span",
213
202
  style: "nano",
214
203
  children: label
215
204
  }), keys.map(function (key, index) {
216
205
  return /*#__PURE__*/jsx(Typography, {
217
- className: "neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1",
206
+ className: "neeto-ui-bg-gray-200 neeto-ui-rounded-sm neeto-ui-text-gray-600 px-1.5 py-1",
218
207
  component: "span",
219
208
  style: "nano",
220
209
  children: key
@@ -229,16 +218,16 @@ var ModalFooter = function ModalFooter(_ref) {
229
218
  var ModalHeader = withT(function (_ref) {
230
219
  var t = _ref.t,
231
220
  enableAdvancedSearch = _ref.enableAdvancedSearch,
232
- loading = _ref.loading,
233
221
  onSearch = _ref.onSearch,
234
- onGoToAdvanced = _ref.onGoToAdvanced;
222
+ onGoToAdvanced = _ref.onGoToAdvanced,
223
+ loading = _ref.loading;
235
224
  return /*#__PURE__*/jsx(Modal.Header, {
236
- className: "neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0",
225
+ className: "neeto-molecules-finder-modal__header neeto-ui-border-gray-300 border-b px-0 py-0",
237
226
  children: /*#__PURE__*/jsx(Search, {
238
227
  onSearch: onSearch,
239
228
  nakedInput: true,
240
229
  autoComplete: "off",
241
- className: "neeto-molecules-finder-modal__search px-3 py-1.5",
230
+ className: "neeto-molecules-finder-modal__search px-6 py-3",
242
231
  name: "term",
243
232
  placeholder: t("neetoMolecules.common.actions.search"),
244
233
  suffix: /*#__PURE__*/jsxs("div", {
@@ -252,7 +241,7 @@ var ModalHeader = withT(function (_ref) {
252
241
  className: "ms-3 whitespace-nowrap",
253
242
  label: t("neetoMolecules.finderModal.advancedSearch"),
254
243
  size: "small",
255
- style: "secondary",
244
+ style: "tertiary",
256
245
  onClick: onGoToAdvanced
257
246
  })]
258
247
  })
@@ -260,14 +249,13 @@ var ModalHeader = withT(function (_ref) {
260
249
  });
261
250
  });
262
251
 
263
- var _excluded = ["enableAdvancedSearch", "data", "iconComponentMap", "isFetching", "isOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced"];
252
+ var _excluded = ["enableAdvancedSearch", "data", "isFetching", "isOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced"];
264
253
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
265
254
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
266
255
  var FinderModal = function FinderModal(_ref) {
267
256
  var _ref$enableAdvancedSe = _ref.enableAdvancedSearch,
268
257
  enableAdvancedSearch = _ref$enableAdvancedSe === void 0 ? true : _ref$enableAdvancedSe,
269
258
  data = _ref.data,
270
- iconComponentMap = _ref.iconComponentMap,
271
259
  isFetching = _ref.isFetching,
272
260
  isOpen = _ref.isOpen,
273
261
  searchTerm = _ref.searchTerm,
@@ -317,7 +305,6 @@ var FinderModal = function FinderModal(_ref) {
317
305
  }), /*#__PURE__*/jsx(ModalBody, {
318
306
  containerRef: containerRef,
319
307
  data: data,
320
- iconComponentMap: iconComponentMap,
321
308
  onClose: onClose,
322
309
  searchTerm: searchTerm,
323
310
  loading: isFetching
@@ -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\nexport const flattenData = data => {\n if (!data) return [];\n\n if (Array.isArray(data)) return data;\n\n const result = [];\n Object.keys(data).forEach(key => {\n data[key].forEach(item => {\n result.push({ ...item, category: key });\n });\n });\n\n return result;\n};\n\nexport const createStylePalette = values => {\n const assignedStyles = {};\n let styleIndex = 0;\n\n return key => {\n if (assignedStyles[key]) return assignedStyles[key];\n const style = values[styleIndex];\n styleIndex = (styleIndex + 1) % values.length;\n assignedStyles[key] = style;\n\n return style;\n };\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData, Tag } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport {\n htmlToText,\n highlightMatch,\n filterAndHighlightContent,\n flattenData,\n createStylePalette,\n} from \"./utils\";\n\nconst getStyle = createStylePalette([\n \"primary\",\n \"info\",\n \"success\",\n \"secondary\",\n \"warning\",\n]);\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const flattenedData = flattenData(data);\n const isDataEmpty = isNotPresent(flattenedData);\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-2\" ref={containerRef}>\n {flattenedData.map(item => {\n if (isNotPresent(item.category)) return null;\n\n const Icon =\n iconComponentMap[item.category] || 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 className=\"neeto-ui-text-gray-500 min-w-fit\" size={16} />\n <div className=\"line-clamp-1 flex flex-col\">\n <div className=\"flex items-center gap-2\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n <Tag size=\"small\" style={getStyle(item.category)}>\n {humanize(item.category)}\n </Tag>\n </div>\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\": !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\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=\"ms-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=\"ms-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. Can be an array of items with category property,\n or an object with category keys containing arrays of items.\n */\n data: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n category: PropTypes.string,\n })\n ),\n 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 /*\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","flattenData","data","Array","isArray","result","Object","keys","forEach","key","item","push","category","createStylePalette","values","assignedStyles","styleIndex","style","getStyle","ModalBody","containerRef","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","flattenedData","isDataEmpty","isNotPresent","Modal","Body","NoData","description","title","ref","Icon","nameContent","name","body","filteredBodyContent","onClick","size","Typography","Tag","humanize","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\nexport const flattenData = data => {\n if (!data) return [];\n\n if (Array.isArray(data)) return data;\n\n const result = [];\n Object.keys(data).forEach(key => {\n data[key].forEach(item => {\n result.push({ ...item, category: key });\n });\n });\n\n return result;\n};\n\nexport const createStylePalette = values => {\n const assignedStyles = {};\n let styleIndex = 0;\n\n return key => {\n if (assignedStyles[key]) return assignedStyles[key];\n const style = values[styleIndex];\n styleIndex = (styleIndex + 1) % values.length;\n assignedStyles[key] = style;\n\n return style;\n };\n};\n","import { humanize, isNotEmpty, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport {\n htmlToText,\n highlightMatch,\n filterAndHighlightContent,\n createStylePalette,\n} from \"./utils\";\n\nconst getStyle = createStylePalette([\n \"primary\",\n \"info\",\n \"success\",\n \"secondary\",\n \"warning\",\n]);\n\nconst ModalBody = ({ containerRef, data, onClose, loading, searchTerm }) => {\n const { t } = useTranslation();\n\n const categoryGroups = Object.keys(data).filter(key => isNotEmpty(data[key]));\n const isDataEmpty = isNotPresent(data) || isEmpty(categoryGroups);\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-3 py-5\">\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-3 py-4\">\n <div className=\"flex flex-col\" ref={containerRef}>\n {categoryGroups.map((category, categoryIndex) => {\n const items = data[category];\n const shouldShowCategoryDivider =\n categoryIndex < categoryGroups.length - 1;\n\n return (\n <div key={category}>\n {items.map(item => {\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-lg flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-xs transition-all duration-300\"\n key={`${category}-${item.id}`}\n to={item.url}\n onClick={onClose}\n >\n <div className=\"line-clamp-1 flex flex-col gap-1\">\n <div className=\"flex items-start gap-2\">\n {nameContent && (\n <Typography\n className=\"neeto-ui-text-black\"\n weight=\"semibold\"\n >\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {category && (\n <Tag\n className=\"mt-1\"\n size=\"small\"\n style={getStyle(category)}\n type=\"solid\"\n >\n {humanize(category)}\n </Tag>\n )}\n </div>\n {bodyContent && (\n <Typography className=\"neeto-ui-text-gray-600 truncate text-xs\">\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n {shouldShowCategoryDivider && (\n <hr className=\"neeto-ui-border-gray-300 mx-3 my-3 border-t\" />\n )}\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-600\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-600\" 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-6 py-4\">\n <div className=\"neeto-ui-text-xxs flex items-center gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n style=\"nano\"\n >\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm neeto-ui-text-gray-600 px-1.5 py-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, onSearch, onGoToAdvanced, loading }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-300 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-6 py-3\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ms-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=\"ms-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"tertiary\"\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 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, 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 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","createStylePalette","values","assignedStyles","styleIndex","key","style","getStyle","ModalBody","containerRef","data","onClose","loading","_useTranslation","useTranslation","t","categoryGroups","Object","keys","isNotEmpty","isDataEmpty","isNotPresent","isEmpty","Modal","Body","NoData","description","title","ref","category","categoryIndex","items","shouldShowCategoryDivider","item","nameContent","name","body","filteredBodyContent","onClick","Typography","weight","Tag","size","type","humanize","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","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}