@bigbinary/neeto-molecules 5.3.8 → 5.3.9-beta1

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.
@@ -1,14 +1,14 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import React__default, { useState, useRef, useEffect, Fragment } from 'react';
5
- import { Spinner, Empty } from '@bigbinary/neeto-atoms';
6
- import { CommandDialog, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandSeparator } from '@bigbinary/neeto-atoms/primitives';
7
- import { noop, isNotEmpty, humanize } from '@bigbinary/neeto-cist';
4
+ import React__default, { useState, useRef, useEffect, useMemo } from 'react';
5
+ import { Spinner, Empty, Badge } from '@bigbinary/neeto-atoms';
6
+ import { CommandDialog, Command, CommandInput, CommandList, CommandEmpty, CommandItem } from '@bigbinary/neeto-atoms/primitives';
7
+ import { noop, humanize } from '@bigbinary/neeto-cist';
8
8
  import useHotkeys from '@bigbinary/neeto-hotkeys';
9
- import { prop, isEmpty } from 'ramda';
10
9
  import { useTranslation } from 'react-i18next';
11
10
  import { useHistory } from 'react-router-dom';
11
+ import { prop } from 'ramda';
12
12
  import { jsx, jsxs } from 'react/jsx-runtime';
13
13
  import { C as ChevronUp } from '../chevron-up-DKMKfPJx.js';
14
14
  import { C as ChevronDown } from '../chevron-down-BrliMcYV.js';
@@ -98,16 +98,59 @@ var filterAndHighlightContent = function filterAndHighlightContent(bodyContent,
98
98
  var _excluded = ["enableAdvancedSearch", "data", "isFetching", "isOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
99
99
  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; }
100
100
  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; }
101
+ var getSmartSnippet = function getSmartSnippet(snippet) {
102
+ var maxLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
103
+ if (!snippet) return "";
104
+ var safeSnippet = htmlToText(snippet) || "";
105
+ var matchStart = safeSnippet.indexOf("[[[");
106
+ var matchEnd = safeSnippet.indexOf("]]]");
107
+ if (matchStart === -1) {
108
+ var _chunk = safeSnippet.slice(0, maxLength);
109
+ return _chunk.length < safeSnippet.length ? "".concat(_chunk, "...") : _chunk;
110
+ }
111
+ var prefixLength = 15;
112
+ var suffixLength = 20;
113
+ var start = Math.max(0, matchStart - prefixLength);
114
+ var end = Math.min(safeSnippet.length, matchEnd + suffixLength);
115
+ var chunk = safeSnippet.slice(start, end);
116
+ if (start > 0) chunk = "... ".concat(chunk);
117
+ if (end < safeSnippet.length) chunk = "".concat(chunk, " ...");
118
+ if (start === 0 && matchStart > 5 && !chunk.startsWith("...")) {
119
+ chunk = "... ".concat(chunk);
120
+ }
121
+ if (end === safeSnippet.length && safeSnippet.length > 30 && !chunk.endsWith("...")) {
122
+ chunk = "".concat(chunk, " ...");
123
+ }
124
+ return chunk.trim();
125
+ };
126
+ var RenderHighlight = function RenderHighlight(_ref) {
127
+ var text = _ref.text;
128
+ if (!text) return null;
129
+ var parts = text.split(/\[\[\[(.*?)\]\]\]/g);
130
+ return /*#__PURE__*/jsx("span", {
131
+ children: parts.map(function (part, index) {
132
+ if (index % 2 === 1) {
133
+ return /*#__PURE__*/jsx("mark", {
134
+ className: "inline-block rounded bg-yellow-100 px-1 font-bold text-gray-800",
135
+ children: part
136
+ }, index);
137
+ }
138
+ return /*#__PURE__*/jsx("span", {
139
+ children: part
140
+ }, index);
141
+ })
142
+ });
143
+ };
101
144
  var toRelativePath = function toRelativePath(url) {
102
145
  var _URL = new URL(url),
103
146
  pathname = _URL.pathname,
104
147
  search = _URL.search;
105
148
  return "".concat(pathname).concat(search);
106
149
  };
107
- var navigateToItem = function navigateToItem(_ref) {
108
- var history = _ref.history,
109
- onClose = _ref.onClose,
110
- relativePath = _ref.relativePath;
150
+ var navigateToItem = function navigateToItem(_ref2) {
151
+ var history = _ref2.history,
152
+ onClose = _ref2.onClose,
153
+ relativePath = _ref2.relativePath;
111
154
  onClose === null || onClose === void 0 || onClose();
112
155
  var currentPath = "".concat(history.location.pathname).concat(history.location.search);
113
156
  if (currentPath !== relativePath) {
@@ -117,34 +160,30 @@ var navigateToItem = function navigateToItem(_ref) {
117
160
  var handleAnchorClick = function handleAnchorClick(event) {
118
161
  var isModified = event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0;
119
162
  if (isModified) {
120
- // Let the browser open the href natively (new tab, new window, etc.);
121
- // don't let cmdk's bubble handler also navigate the current tab.
122
163
  event.stopPropagation();
123
164
  return;
124
165
  }
125
- // Suppress the default browser navigation so cmdk's onSelect (fired via
126
- // the bubbled click) drives the SPA push exactly once.
127
166
  event.preventDefault();
128
167
  };
129
- var FinderModal = function FinderModal(_ref2) {
130
- var _ref2$enableAdvancedS = _ref2.enableAdvancedSearch,
131
- enableAdvancedSearch = _ref2$enableAdvancedS === void 0 ? true : _ref2$enableAdvancedS,
132
- _ref2$data = _ref2.data,
133
- data = _ref2$data === void 0 ? {} : _ref2$data,
134
- isFetching = _ref2.isFetching,
135
- isOpen = _ref2.isOpen,
136
- _ref2$searchTerm = _ref2.searchTerm,
137
- searchTerm = _ref2$searchTerm === void 0 ? "" : _ref2$searchTerm,
138
- setSearchTerm = _ref2.setSearchTerm,
139
- onClose = _ref2.onClose,
140
- _ref2$onGoToAdvanced = _ref2.onGoToAdvanced,
141
- onGoToAdvanced = _ref2$onGoToAdvanced === void 0 ? noop : _ref2$onGoToAdvanced,
142
- onLoadMore = _ref2.onLoadMore,
143
- _ref2$hasMore = _ref2.hasMore,
144
- hasMore = _ref2$hasMore === void 0 ? false : _ref2$hasMore,
145
- _ref2$isFetchingMore = _ref2.isFetchingMore,
146
- isFetchingMore = _ref2$isFetchingMore === void 0 ? false : _ref2$isFetchingMore,
147
- props = _objectWithoutProperties(_ref2, _excluded);
168
+ var FinderModal = function FinderModal(_ref3) {
169
+ var _ref3$enableAdvancedS = _ref3.enableAdvancedSearch,
170
+ enableAdvancedSearch = _ref3$enableAdvancedS === void 0 ? true : _ref3$enableAdvancedS,
171
+ _ref3$data = _ref3.data,
172
+ data = _ref3$data === void 0 ? [] : _ref3$data,
173
+ isFetching = _ref3.isFetching,
174
+ isOpen = _ref3.isOpen,
175
+ _ref3$searchTerm = _ref3.searchTerm,
176
+ searchTerm = _ref3$searchTerm === void 0 ? "" : _ref3$searchTerm,
177
+ setSearchTerm = _ref3.setSearchTerm,
178
+ onClose = _ref3.onClose,
179
+ _ref3$onGoToAdvanced = _ref3.onGoToAdvanced,
180
+ onGoToAdvanced = _ref3$onGoToAdvanced === void 0 ? noop : _ref3$onGoToAdvanced,
181
+ onLoadMore = _ref3.onLoadMore,
182
+ _ref3$hasMore = _ref3.hasMore,
183
+ hasMore = _ref3$hasMore === void 0 ? false : _ref3$hasMore,
184
+ _ref3$isFetchingMore = _ref3.isFetchingMore,
185
+ isFetchingMore = _ref3$isFetchingMore === void 0 ? false : _ref3$isFetchingMore,
186
+ props = _objectWithoutProperties(_ref3, _excluded);
148
187
  var _useTranslation = useTranslation(),
149
188
  t = _useTranslation.t;
150
189
  var history = useHistory();
@@ -153,10 +192,6 @@ var FinderModal = function FinderModal(_ref2) {
153
192
  sentinelEl = _useState2[0],
154
193
  setSentinelEl = _useState2[1];
155
194
  var onLoadMoreRef = useRef(onLoadMore || noop);
156
- var categories = Object.keys(data).filter(function (key) {
157
- return isNotEmpty(data[key]);
158
- });
159
- var isDataEmpty = isEmpty(categories);
160
195
  var handleOpenChange = function handleOpenChange(open) {
161
196
  if (!open) onClose === null || onClose === void 0 || onClose();
162
197
  };
@@ -173,9 +208,9 @@ var FinderModal = function FinderModal(_ref2) {
173
208
  return undefined;
174
209
  }
175
210
  var root = sentinelEl.closest(".nm-finder-modal__body");
176
- var observer = new IntersectionObserver(function (_ref3) {
177
- var _ref4 = _slicedToArray(_ref3, 1),
178
- entry = _ref4[0];
211
+ var observer = new IntersectionObserver(function (_ref4) {
212
+ var _ref5 = _slicedToArray(_ref4, 1),
213
+ entry = _ref5[0];
179
214
  if (entry.isIntersecting) onLoadMoreRef.current();
180
215
  }, {
181
216
  root: root,
@@ -186,6 +221,10 @@ var FinderModal = function FinderModal(_ref2) {
186
221
  return observer.disconnect();
187
222
  };
188
223
  }, [sentinelEl, isPaginationEnabled, hasMore, isFetchingMore]);
224
+ var flatData = useMemo(function () {
225
+ return Array.isArray(data) ? data : Object.values(data).flat();
226
+ }, [data]);
227
+ var isDataEmpty = flatData.length === 0;
189
228
  return /*#__PURE__*/jsx(CommandDialog, _objectSpread(_objectSpread({}, props), {}, {
190
229
  className: "nm-finder-modal !top-1/4 !max-w-[calc(100%-2rem)] sm:!max-w-xl",
191
230
  open: isOpen,
@@ -225,43 +264,76 @@ var FinderModal = function FinderModal(_ref2) {
225
264
  icon: Search,
226
265
  title: t("neetoMolecules.finderModal.noDataTitle")
227
266
  })
228
- }), categories.map(function (category, index) {
229
- return /*#__PURE__*/jsxs(Fragment, {
230
- children: [/*#__PURE__*/jsx(CommandGroup, {
231
- heading: humanize(category),
232
- children: data[category].map(function (item) {
233
- var name = htmlToText(item.name);
234
- var body = htmlToText(item.body);
235
- var filteredBody = filterAndHighlightContent(body, searchTerm);
236
- var relativePath = toRelativePath(item.url);
237
- return /*#__PURE__*/jsx(CommandItem, {
238
- className: "!p-0",
239
- value: "".concat(category, "-").concat(item.id),
240
- onSelect: function onSelect() {
241
- return navigateToItem({
242
- history: history,
243
- onClose: onClose,
244
- relativePath: relativePath
245
- });
246
- },
247
- children: /*#__PURE__*/jsxs("a", {
248
- className: "flex min-w-0 flex-1 flex-col gap-1.5 px-3 py-2.5 no-underline outline-none",
249
- href: relativePath,
250
- onClick: handleAnchorClick,
251
- children: [name && /*#__PURE__*/jsx("span", {
252
- className: "text-foreground line-clamp-1 text-sm font-medium",
253
- children: highlightMatch(name, searchTerm)
254
- }), body && /*#__PURE__*/jsx("span", {
255
- className: "text-muted-foreground line-clamp-1 text-xs",
256
- children: filteredBody || body
257
- })]
258
- })
259
- }, "".concat(category, "-").concat(item.id));
260
- })
261
- }), index < categories.length - 1 && /*#__PURE__*/jsx(CommandSeparator, {
262
- className: "my-1"
263
- })]
264
- }, category);
267
+ }), flatData.map(function (item, index) {
268
+ var rawTitle = htmlToText(String(item.title || "")) || "";
269
+ var backendSnippet = item.highlightedAttribute;
270
+ var isSnippetFromTitle = false;
271
+ if (backendSnippet) {
272
+ var cleanSnippet = backendSnippet.replace(/\[\[\[|\]\]\]|\.\.\./g, "").trim();
273
+ var cleanPrimary = rawTitle.trim();
274
+ if (cleanPrimary.includes(cleanSnippet) || cleanSnippet.includes(cleanPrimary)) {
275
+ isSnippetFromTitle = true;
276
+ }
277
+ }
278
+ var primaryNode = null;
279
+ var secondaryNode = null;
280
+ if (isSnippetFromTitle) {
281
+ var smartTitle = getSmartSnippet(backendSnippet, 80);
282
+ primaryNode = /*#__PURE__*/jsx(RenderHighlight, {
283
+ text: smartTitle
284
+ });
285
+ if (item.description) {
286
+ var _htmlToText;
287
+ var rawDesc = (_htmlToText = htmlToText(String(item.description))) === null || _htmlToText === void 0 ? void 0 : _htmlToText.slice(0, 80);
288
+ secondaryNode = filterAndHighlightContent(rawDesc, searchTerm) || rawDesc;
289
+ }
290
+ } else {
291
+ primaryNode = highlightMatch(rawTitle, searchTerm) || rawTitle;
292
+ if (backendSnippet) {
293
+ var smartDesc = getSmartSnippet(backendSnippet, 80);
294
+ secondaryNode = /*#__PURE__*/jsx(RenderHighlight, {
295
+ text: smartDesc
296
+ });
297
+ } else if (item.description) {
298
+ var _htmlToText2;
299
+ var _rawDesc = (_htmlToText2 = htmlToText(String(item.description))) === null || _htmlToText2 === void 0 ? void 0 : _htmlToText2.slice(0, 80);
300
+ secondaryNode = filterAndHighlightContent(_rawDesc, searchTerm) || _rawDesc;
301
+ }
302
+ }
303
+ var relativePath = toRelativePath(item.url);
304
+ var showSecondary = !!secondaryNode;
305
+ return /*#__PURE__*/jsx(CommandItem, {
306
+ className: "!p-0",
307
+ value: "".concat(item.type, "-").concat(item.id || index),
308
+ onSelect: function onSelect() {
309
+ return navigateToItem({
310
+ history: history,
311
+ onClose: onClose,
312
+ relativePath: relativePath
313
+ });
314
+ },
315
+ children: /*#__PURE__*/jsxs("a", {
316
+ className: "flex min-w-0 flex-1 items-center justify-between gap-3 px-3 py-2.5 no-underline outline-none",
317
+ href: relativePath,
318
+ onClick: handleAnchorClick,
319
+ children: [/*#__PURE__*/jsxs("div", {
320
+ className: "flex min-w-0 flex-1 flex-col gap-1.5",
321
+ children: [primaryNode && /*#__PURE__*/jsx("span", {
322
+ className: "text-foreground line-clamp-1 text-sm font-medium",
323
+ children: primaryNode
324
+ }), showSecondary && /*#__PURE__*/jsx("span", {
325
+ className: "text-muted-foreground line-clamp-1 text-xs",
326
+ children: secondaryNode
327
+ })]
328
+ }), item.type && /*#__PURE__*/jsx("div", {
329
+ className: "shrink-0",
330
+ children: /*#__PURE__*/jsx(Badge, {
331
+ color: "gray",
332
+ label: humanize(item.type)
333
+ })
334
+ })]
335
+ })
336
+ }, "".concat(item.type, "-").concat(item.id || index));
265
337
  }), onLoadMore && hasMore && /*#__PURE__*/jsx("div", {
266
338
  "aria-hidden": "true",
267
339
  className: "h-px w-full",
@@ -1 +1 @@
1
- {"version":3,"file":"FinderModal.js","sources":["../../src/v2/components/FinderModal/Footer.jsx","../../src/v2/components/FinderModal/utils.jsx","../../src/v2/components/FinderModal/index.jsx"],"sourcesContent":["import { ChevronDown, ChevronUp } from \"lucide-react\";\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 <ChevronUp className=\"text-muted-foreground\" key=\"up\" size={12} />,\n <ChevronDown className=\"text-muted-foreground\" 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 <div className=\"border-border bg-muted/40 nm-finder-modal__footer border-t px-4 py-2.5\">\n <div className=\"text-muted-foreground flex flex-wrap items-center gap-x-3 gap-y-1.5 text-xs\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n {keys.map((key, keyIndex) => (\n <kbd\n className=\"border-border bg-background text-foreground inline-flex h-4 min-w-4 items-center justify-center rounded border px-1 font-sans text-[10px] leading-none\"\n key={keyIndex}\n >\n {key}\n </kbd>\n ))}\n <span>{label}</span>\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default ModalFooter;\n","import React from \"react\";\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 <mark className=\"rounded-sm bg-yellow-200 text-yellow-900\" key={index}>\n {part}\n </mark>\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 { Fragment, useEffect, useRef, useState } from \"react\";\n\nimport { Empty, Spinner } from \"@bigbinary/neeto-atoms\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { Search } from \"lucide-react\";\nimport { humanize, isNotEmpty, noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ModalFooter from \"./Footer\";\nimport { filterAndHighlightContent, highlightMatch, htmlToText } from \"./utils\";\n\nconst toRelativePath = url => {\n const { pathname, search } = new URL(url);\n\n return `${pathname}${search}`;\n};\n\nconst navigateToItem = ({ history, onClose, relativePath }) => {\n onClose?.();\n const currentPath = `${history.location.pathname}${history.location.search}`;\n if (currentPath !== relativePath) {\n history.push(relativePath);\n }\n};\n\nconst handleAnchorClick = event => {\n const isModified =\n event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0;\n if (isModified) {\n // Let the browser open the href natively (new tab, new window, etc.);\n // don't let cmdk's bubble handler also navigate the current tab.\n event.stopPropagation();\n\n return;\n }\n // Suppress the default browser navigation so cmdk's onSelect (fired via\n // the bubbled click) drives the SPA push exactly once.\n event.preventDefault();\n};\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data = {},\n isFetching,\n isOpen,\n searchTerm = \"\",\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n onLoadMore,\n hasMore = false,\n isFetchingMore = false,\n ...props\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const [sentinelEl, setSentinelEl] = useState(null);\n const onLoadMoreRef = useRef(onLoadMore || noop);\n\n const categories = Object.keys(data).filter(key => isNotEmpty(data[key]));\n const isDataEmpty = isEmpty(categories);\n\n const handleOpenChange = open => {\n if (!open) onClose?.();\n };\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore || noop;\n }, [onLoadMore]);\n\n const isPaginationEnabled = Boolean(onLoadMore);\n\n useEffect(() => {\n if (!sentinelEl || !isPaginationEnabled || !hasMore || isFetchingMore) {\n return undefined;\n }\n\n const root = sentinelEl.closest(\".nm-finder-modal__body\");\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) onLoadMoreRef.current();\n },\n { root, rootMargin: \"120px\" }\n );\n observer.observe(sentinelEl);\n\n return () => observer.disconnect();\n }, [sentinelEl, isPaginationEnabled, hasMore, isFetchingMore]);\n\n return (\n <CommandDialog\n {...props}\n className=\"nm-finder-modal !top-1/4 !max-w-[calc(100%-2rem)] sm:!max-w-xl\"\n open={isOpen}\n title={t(\"neetoMolecules.common.actions.search\")}\n onOpenChange={handleOpenChange}\n >\n <Command className=\"!p-0\" shouldFilter={false}>\n <div className=\"border-border flex items-center gap-2 border-b px-3 py-2 [&_[data-slot=command-input-wrapper]]:!p-0\">\n <div className=\"min-w-0 flex-1\">\n <CommandInput\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n value={searchTerm}\n onValueChange={setSearchTerm}\n />\n </div>\n {isFetching && <Spinner size=\"small\" />}\n {enableAdvancedSearch && (\n <button\n className=\"border-border bg-background text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 shrink-0 items-center gap-2 rounded-md border px-2 text-xs whitespace-nowrap transition-colors\"\n type=\"button\"\n onClick={onGoToAdvanced}\n >\n <span>{t(\"neetoMolecules.finderModal.advancedSearch\")}</span>\n <kbd className=\"border-border bg-muted inline-flex h-4 items-center rounded border px-1 font-sans text-[10px] leading-none\">\n ⌘⏎\n </kbd>\n </button>\n )}\n </div>\n <CommandList className=\"nm-finder-modal__body max-h-[min(24rem,55vh)] min-h-[min(12rem,40vh)] p-2\">\n {isDataEmpty && !isFetching && (\n <CommandEmpty className=\"!py-8\">\n <Empty\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n icon={Search}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </CommandEmpty>\n )}\n {categories.map((category, index) => (\n <Fragment key={category}>\n <CommandGroup heading={humanize(category)}>\n {data[category].map(item => {\n const name = htmlToText(item.name);\n const body = htmlToText(item.body);\n const filteredBody = filterAndHighlightContent(\n body,\n searchTerm\n );\n\n const relativePath = toRelativePath(item.url);\n\n return (\n <CommandItem\n className=\"!p-0\"\n key={`${category}-${item.id}`}\n value={`${category}-${item.id}`}\n onSelect={() =>\n navigateToItem({ history, onClose, relativePath })\n }\n >\n <a\n className=\"flex min-w-0 flex-1 flex-col gap-1.5 px-3 py-2.5 no-underline outline-none\"\n href={relativePath}\n onClick={handleAnchorClick}\n >\n {name && (\n <span className=\"text-foreground line-clamp-1 text-sm font-medium\">\n {highlightMatch(name, searchTerm)}\n </span>\n )}\n {body && (\n <span className=\"text-muted-foreground line-clamp-1 text-xs\">\n {filteredBody || body}\n </span>\n )}\n </a>\n </CommandItem>\n );\n })}\n </CommandGroup>\n {index < categories.length - 1 && (\n <CommandSeparator className=\"my-1\" />\n )}\n </Fragment>\n ))}\n {onLoadMore && hasMore && (\n <div\n aria-hidden=\"true\"\n className=\"h-px w-full\"\n data-testid=\"neeto-molecules-finder-modal-sentinel\"\n ref={setSentinelEl}\n />\n )}\n {isFetchingMore && (\n <div\n className=\"flex items-center justify-center py-3\"\n data-testid=\"neeto-molecules-finder-modal-loading-more\"\n >\n <Spinner size=\"small\" />\n </div>\n )}\n </CommandList>\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Command>\n </CommandDialog>\n );\n};\n\nFinderModal.propTypes = {\n enableAdvancedSearch: PropTypes.bool,\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 isFetching: PropTypes.bool,\n isOpen: PropTypes.bool,\n searchTerm: PropTypes.string,\n setSearchTerm: PropTypes.func,\n onClose: PropTypes.func,\n onGoToAdvanced: PropTypes.func,\n onLoadMore: PropTypes.func,\n hasMore: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n};\n\nexport default FinderModal;\n"],"names":["ModalFooter","_ref","enableAdvancedSearch","_useTranslation","useTranslation","t","shortcuts","label","keys","isVisible","_jsx","ChevronUp","className","size","ChevronDown","children","filter","prop","map","_ref2","index","_jsxs","key","keyIndex","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","part","toLowerCase","filterAndHighlightContent","bodyContent","line","trim","includes","React","Fragment","toRelativePath","url","_URL","URL","pathname","search","navigateToItem","history","onClose","relativePath","currentPath","location","push","handleAnchorClick","event","isModified","metaKey","ctrlKey","shiftKey","button","stopPropagation","preventDefault","FinderModal","_ref2$enableAdvancedS","_ref2$data","data","isFetching","isOpen","_ref2$searchTerm","setSearchTerm","_ref2$onGoToAdvanced","onGoToAdvanced","noop","onLoadMore","_ref2$hasMore","hasMore","_ref2$isFetchingMore","isFetchingMore","props","_objectWithoutProperties","_excluded","useHistory","_useState","useState","_useState2","_slicedToArray","sentinelEl","setSentinelEl","onLoadMoreRef","useRef","categories","Object","isNotEmpty","isDataEmpty","isEmpty","handleOpenChange","open","useHotkeys","mode","enabled","useEffect","current","isPaginationEnabled","Boolean","undefined","root","closest","observer","IntersectionObserver","_ref3","_ref4","entry","isIntersecting","rootMargin","observe","disconnect","CommandDialog","_objectSpread","title","onOpenChange","Command","shouldFilter","CommandInput","placeholder","value","onValueChange","Spinner","type","onClick","CommandList","CommandEmpty","Empty","description","icon","Search","category","CommandGroup","heading","humanize","item","name","body","filteredBody","CommandItem","id","onSelect","href","length","CommandSeparator","ref"],"mappings":"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"}
1
+ {"version":3,"file":"FinderModal.js","sources":["../../src/v2/components/FinderModal/Footer.jsx","../../src/v2/components/FinderModal/utils.jsx","../../src/v2/components/FinderModal/index.jsx"],"sourcesContent":["import { ChevronDown, ChevronUp } from \"lucide-react\";\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 <ChevronUp className=\"text-muted-foreground\" key=\"up\" size={12} />,\n <ChevronDown className=\"text-muted-foreground\" 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 <div className=\"border-border bg-muted/40 nm-finder-modal__footer border-t px-4 py-2.5\">\n <div className=\"text-muted-foreground flex flex-wrap items-center gap-x-3 gap-y-1.5 text-xs\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n {keys.map((key, keyIndex) => (\n <kbd\n className=\"border-border bg-background text-foreground inline-flex h-4 min-w-4 items-center justify-center rounded border px-1 font-sans text-[10px] leading-none\"\n key={keyIndex}\n >\n {key}\n </kbd>\n ))}\n <span>{label}</span>\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default ModalFooter;\n","import React from \"react\";\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 <mark className=\"rounded-sm bg-yellow-200 text-yellow-900\" key={index}>\n {part}\n </mark>\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 { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Empty, Spinner, Badge } from \"@bigbinary/neeto-atoms\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { Search } from \"lucide-react\";\nimport { humanize, noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ModalFooter from \"./Footer\";\nimport { filterAndHighlightContent, highlightMatch, htmlToText } from \"./utils\";\n\nconst getSmartSnippet = (snippet, maxLength = 100) => {\n if (!snippet) return \"\";\n const safeSnippet = htmlToText(snippet) || \"\";\n\n const matchStart = safeSnippet.indexOf(\"[[[\");\n const matchEnd = safeSnippet.indexOf(\"]]]\");\n\n if (matchStart === -1) {\n const chunk = safeSnippet.slice(0, maxLength);\n\n return chunk.length < safeSnippet.length ? `${chunk}...` : chunk;\n }\n\n const prefixLength = 15;\n const suffixLength = 20;\n\n const start = Math.max(0, matchStart - prefixLength);\n const end = Math.min(safeSnippet.length, matchEnd + suffixLength);\n\n let chunk = safeSnippet.slice(start, end);\n\n if (start > 0) chunk = `... ${chunk}`;\n\n if (end < safeSnippet.length) chunk = `${chunk} ...`;\n\n if (start === 0 && matchStart > 5 && !chunk.startsWith(\"...\")) {\n chunk = `... ${chunk}`;\n }\n\n if (\n end === safeSnippet.length &&\n safeSnippet.length > 30 &&\n !chunk.endsWith(\"...\")\n ) {\n chunk = `${chunk} ...`;\n }\n\n return chunk.trim();\n};\n\nconst RenderHighlight = ({ text }) => {\n if (!text) return null;\n const parts = text.split(/\\[\\[\\[(.*?)\\]\\]\\]/g);\n\n return (\n <span>\n {parts.map((part, index) => {\n if (index % 2 === 1) {\n return (\n <mark\n className=\"inline-block rounded bg-yellow-100 px-1 font-bold text-gray-800\"\n key={index}\n >\n {part}\n </mark>\n );\n }\n\n return <span key={index}>{part}</span>;\n })}\n </span>\n );\n};\n\nconst toRelativePath = url => {\n const { pathname, search } = new URL(url);\n\n return `${pathname}${search}`;\n};\n\nconst navigateToItem = ({ history, onClose, relativePath }) => {\n onClose?.();\n const currentPath = `${history.location.pathname}${history.location.search}`;\n if (currentPath !== relativePath) {\n history.push(relativePath);\n }\n};\n\nconst handleAnchorClick = event => {\n const isModified =\n event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0;\n if (isModified) {\n event.stopPropagation();\n\n return;\n }\n event.preventDefault();\n};\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data = [],\n isFetching,\n isOpen,\n searchTerm = \"\",\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n onLoadMore,\n hasMore = false,\n isFetchingMore = false,\n ...props\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const [sentinelEl, setSentinelEl] = useState(null);\n const onLoadMoreRef = useRef(onLoadMore || noop);\n\n const handleOpenChange = open => {\n if (!open) onClose?.();\n };\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore || noop;\n }, [onLoadMore]);\n\n const isPaginationEnabled = Boolean(onLoadMore);\n\n useEffect(() => {\n if (!sentinelEl || !isPaginationEnabled || !hasMore || isFetchingMore) {\n return undefined;\n }\n\n const root = sentinelEl.closest(\".nm-finder-modal__body\");\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) onLoadMoreRef.current();\n },\n { root, rootMargin: \"120px\" }\n );\n observer.observe(sentinelEl);\n\n return () => observer.disconnect();\n }, [sentinelEl, isPaginationEnabled, hasMore, isFetchingMore]);\n\n const flatData = useMemo(\n () => (Array.isArray(data) ? data : Object.values(data).flat()),\n [data]\n );\n\n const isDataEmpty = flatData.length === 0;\n\n return (\n <CommandDialog\n {...props}\n className=\"nm-finder-modal !top-1/4 !max-w-[calc(100%-2rem)] sm:!max-w-xl\"\n open={isOpen}\n title={t(\"neetoMolecules.common.actions.search\")}\n onOpenChange={handleOpenChange}\n >\n <Command className=\"!p-0\" shouldFilter={false}>\n <div className=\"border-border flex items-center gap-2 border-b px-3 py-2 [&_[data-slot=command-input-wrapper]]:!p-0\">\n <div className=\"min-w-0 flex-1\">\n <CommandInput\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n value={searchTerm}\n onValueChange={setSearchTerm}\n />\n </div>\n {isFetching && <Spinner size=\"small\" />}\n {enableAdvancedSearch && (\n <button\n className=\"border-border bg-background text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 shrink-0 items-center gap-2 rounded-md border px-2 text-xs whitespace-nowrap transition-colors\"\n type=\"button\"\n onClick={onGoToAdvanced}\n >\n <span>{t(\"neetoMolecules.finderModal.advancedSearch\")}</span>\n <kbd className=\"border-border bg-muted inline-flex h-4 items-center rounded border px-1 font-sans text-[10px] leading-none\">\n ⌘⏎\n </kbd>\n </button>\n )}\n </div>\n <CommandList className=\"nm-finder-modal__body max-h-[min(24rem,55vh)] min-h-[min(12rem,40vh)] p-2\">\n {isDataEmpty && !isFetching && (\n <CommandEmpty className=\"!py-8\">\n <Empty\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n icon={Search}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </CommandEmpty>\n )}\n {flatData.map((item, index) => {\n const rawTitle = htmlToText(String(item.title || \"\")) || \"\";\n const backendSnippet = item.highlightedAttribute;\n\n let isSnippetFromTitle = false;\n if (backendSnippet) {\n const cleanSnippet = backendSnippet\n .replace(/\\[\\[\\[|\\]\\]\\]|\\.\\.\\./g, \"\")\n .trim();\n const cleanPrimary = rawTitle.trim();\n if (\n cleanPrimary.includes(cleanSnippet) ||\n cleanSnippet.includes(cleanPrimary)\n ) {\n isSnippetFromTitle = true;\n }\n }\n\n let primaryNode = null;\n let secondaryNode = null;\n\n if (isSnippetFromTitle) {\n const smartTitle = getSmartSnippet(backendSnippet, 80);\n primaryNode = <RenderHighlight text={smartTitle} />;\n\n if (item.description) {\n const rawDesc = htmlToText(String(item.description))?.slice(\n 0,\n 80\n );\n\n secondaryNode =\n filterAndHighlightContent(rawDesc, searchTerm) || rawDesc;\n }\n } else {\n primaryNode = highlightMatch(rawTitle, searchTerm) || rawTitle;\n\n if (backendSnippet) {\n const smartDesc = getSmartSnippet(backendSnippet, 80);\n secondaryNode = <RenderHighlight text={smartDesc} />;\n } else if (item.description) {\n const rawDesc = htmlToText(String(item.description))?.slice(\n 0,\n 80\n );\n\n secondaryNode =\n filterAndHighlightContent(rawDesc, searchTerm) || rawDesc;\n }\n }\n\n const relativePath = toRelativePath(item.url);\n const showSecondary = !!secondaryNode;\n\n return (\n <CommandItem\n className=\"!p-0\"\n key={`${item.type}-${item.id || index}`}\n value={`${item.type}-${item.id || index}`}\n onSelect={() =>\n navigateToItem({ history, onClose, relativePath })\n }\n >\n <a\n className=\"flex min-w-0 flex-1 items-center justify-between gap-3 px-3 py-2.5 no-underline outline-none\"\n href={relativePath}\n onClick={handleAnchorClick}\n >\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n {primaryNode && (\n <span className=\"text-foreground line-clamp-1 text-sm font-medium\">\n {primaryNode}\n </span>\n )}\n {showSecondary && (\n <span className=\"text-muted-foreground line-clamp-1 text-xs\">\n {secondaryNode}\n </span>\n )}\n </div>\n {item.type && (\n <div className=\"shrink-0\">\n <Badge color=\"gray\" label={humanize(item.type)} />\n </div>\n )}\n </a>\n </CommandItem>\n );\n })}\n {onLoadMore && hasMore && (\n <div\n aria-hidden=\"true\"\n className=\"h-px w-full\"\n data-testid=\"neeto-molecules-finder-modal-sentinel\"\n ref={setSentinelEl}\n />\n )}\n {isFetchingMore && (\n <div\n className=\"flex items-center justify-center py-3\"\n data-testid=\"neeto-molecules-finder-modal-loading-more\"\n >\n <Spinner size=\"small\" />\n </div>\n )}\n </CommandList>\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Command>\n </CommandDialog>\n );\n};\n\nFinderModal.propTypes = {\n enableAdvancedSearch: PropTypes.bool,\n data: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n isFetching: PropTypes.bool,\n isOpen: PropTypes.bool,\n searchTerm: PropTypes.string,\n setSearchTerm: PropTypes.func,\n onClose: PropTypes.func,\n onGoToAdvanced: PropTypes.func,\n onLoadMore: PropTypes.func,\n hasMore: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n};\n\nexport default FinderModal;\n"],"names":["ModalFooter","_ref","enableAdvancedSearch","_useTranslation","useTranslation","t","shortcuts","label","keys","isVisible","_jsx","ChevronUp","className","size","ChevronDown","children","filter","prop","map","_ref2","index","_jsxs","key","keyIndex","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","part","toLowerCase","filterAndHighlightContent","bodyContent","line","trim","includes","React","Fragment","getSmartSnippet","snippet","maxLength","arguments","length","undefined","safeSnippet","matchStart","indexOf","matchEnd","chunk","slice","prefixLength","suffixLength","start","Math","max","end","min","startsWith","endsWith","RenderHighlight","parts","toRelativePath","url","_URL","URL","pathname","search","navigateToItem","history","onClose","relativePath","currentPath","location","push","handleAnchorClick","event","isModified","metaKey","ctrlKey","shiftKey","button","stopPropagation","preventDefault","FinderModal","_ref3","_ref3$enableAdvancedS","_ref3$data","data","isFetching","isOpen","_ref3$searchTerm","setSearchTerm","_ref3$onGoToAdvanced","onGoToAdvanced","noop","onLoadMore","_ref3$hasMore","hasMore","_ref3$isFetchingMore","isFetchingMore","props","_objectWithoutProperties","_excluded","useHistory","_useState","useState","_useState2","_slicedToArray","sentinelEl","setSentinelEl","onLoadMoreRef","useRef","handleOpenChange","open","useHotkeys","mode","enabled","useEffect","current","isPaginationEnabled","Boolean","root","closest","observer","IntersectionObserver","_ref4","_ref5","entry","isIntersecting","rootMargin","observe","disconnect","flatData","useMemo","Array","isArray","Object","values","flat","isDataEmpty","CommandDialog","_objectSpread","title","onOpenChange","Command","shouldFilter","CommandInput","placeholder","value","onValueChange","Spinner","type","onClick","CommandList","CommandEmpty","Empty","description","icon","Search","item","rawTitle","String","backendSnippet","highlightedAttribute","isSnippetFromTitle","cleanSnippet","replace","cleanPrimary","primaryNode","secondaryNode","smartTitle","_htmlToText","rawDesc","smartDesc","_htmlToText2","showSecondary","CommandItem","id","onSelect","href","Badge","color","humanize","ref"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "5.3.8",
3
+ "version": "5.3.9-beta1",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -301,4 +301,4 @@
301
301
  "zustand": "4.4.2"
302
302
  },
303
303
  "packageManager": "yarn@4.9.2"
304
- }
304
+ }