@bigbinary/neeto-molecules 5.5.6 → 5.5.7

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.
@@ -104,7 +104,8 @@ var HighlightedSnippet = function HighlightedSnippet(_ref) {
104
104
  });
105
105
  };
106
106
 
107
- var _excluded = ["enableAdvancedSearch", "data", "getTypeLabel", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onSearchChange", "debounceWait", "tagStyle", "tagSize", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
107
+ var _excluded = ["enableAdvancedSearch", "data", "getTypeLabel", "getTitleBadges", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onSearchChange", "debounceWait", "tagStyle", "tagSize", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"],
108
+ _excluded2 = ["key"];
108
109
  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; }
109
110
  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; }
110
111
  var toRelativePath = function toRelativePath(url) {
@@ -138,6 +139,8 @@ var FinderModal = function FinderModal(_ref2) {
138
139
  data = _ref2$data === void 0 ? [] : _ref2$data,
139
140
  _ref2$getTypeLabel = _ref2.getTypeLabel,
140
141
  getTypeLabel = _ref2$getTypeLabel === void 0 ? neetoCist.humanize : _ref2$getTypeLabel,
142
+ _ref2$getTitleBadges = _ref2.getTitleBadges,
143
+ getTitleBadges = _ref2$getTitleBadges === void 0 ? neetoCist.noop : _ref2$getTitleBadges,
141
144
  isFetching = _ref2.isFetching,
142
145
  isOpen = _ref2.isOpen,
143
146
  _ref2$setIsOpen = _ref2.setIsOpen,
@@ -237,6 +240,7 @@ var FinderModal = function FinderModal(_ref2) {
237
240
  var _item$id, _item$id2;
238
241
  var relativePath = toRelativePath(item.url);
239
242
  var description = htmlToText(item.description);
243
+ var titleBadges = getTitleBadges(item) || [];
240
244
  return /*#__PURE__*/jsxRuntime.jsx(primitives.CommandItem, {
241
245
  className: "!p-0",
242
246
  value: "".concat(item.type, "-").concat((_item$id2 = item.id) !== null && _item$id2 !== void 0 ? _item$id2 : index),
@@ -253,12 +257,25 @@ var FinderModal = function FinderModal(_ref2) {
253
257
  onClick: handleAnchorClick,
254
258
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
255
259
  className: "flex min-w-0 flex-1 flex-col gap-1.5",
256
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
257
- className: "text-foreground line-clamp-1 text-sm font-medium",
258
- children: /*#__PURE__*/jsxRuntime.jsx(HighlightedSnippet, {
259
- maxLength: 80,
260
- snippet: item.title || ""
261
- })
260
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
261
+ className: "flex min-w-0 items-center gap-2",
262
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
263
+ className: "text-foreground truncate text-sm font-medium",
264
+ children: /*#__PURE__*/jsxRuntime.jsx(HighlightedSnippet, {
265
+ maxLength: 80,
266
+ snippet: item.title || ""
267
+ })
268
+ }), neetoCist.isNotEmpty(titleBadges) && /*#__PURE__*/jsxRuntime.jsx("div", {
269
+ className: "flex shrink-0 items-center gap-1.5",
270
+ "data-testid": "neeto-molecules-finder-modal-title-badges",
271
+ children: titleBadges.map(function (_ref5, badgeIndex) {
272
+ var key = _ref5.key,
273
+ badgeProps = _objectWithoutProperties(_ref5, _excluded2);
274
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, _objectSpread({
275
+ size: "sm"
276
+ }, badgeProps), key !== null && key !== void 0 ? key : badgeIndex);
277
+ })
278
+ })]
262
279
  }), description && /*#__PURE__*/jsxRuntime.jsx("span", {
263
280
  className: "text-muted-foreground line-clamp-1 text-xs",
264
281
  children: /*#__PURE__*/jsxRuntime.jsx(HighlightedSnippet, {
@@ -317,10 +334,10 @@ var FinderModal = function FinderModal(_ref2) {
317
334
  description: internalSearchTerm ? t("neetoMolecules.finderModal.noDataDesc") : t("neetoMolecules.finderModal.startTypingDesc"),
318
335
  title: internalSearchTerm ? t("neetoMolecules.finderModal.noDataTitle") : t("neetoMolecules.finderModal.startTypingTitle")
319
336
  })
320
- }), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref5) {
321
- var _ref6 = _slicedToArray(_ref5, 2),
322
- group = _ref6[0],
323
- items = _ref6[1];
337
+ }), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref6) {
338
+ var _ref7 = _slicedToArray(_ref6, 2),
339
+ group = _ref7[0],
340
+ items = _ref7[1];
324
341
  if (!items.length) return null;
325
342
  return /*#__PURE__*/jsxRuntime.jsx(primitives.CommandGroup, {
326
343
  heading: group,
@@ -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 { Fragment } from \"react\";\n\nconst 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\nconst trimAroundMatch = (text, maxLength) => {\n const start = text.indexOf(\"[[[\");\n\n if (start === -1) {\n return text.length > maxLength ? `${text.slice(0, maxLength)}…` : text;\n }\n\n const from = Math.max(0, start - 24);\n const to = Math.min(text.length, from + maxLength);\n\n return [\n from > 0 && \"… \",\n text.slice(from, to).trim(),\n to < text.length && \" …\",\n ]\n .filter(Boolean)\n .join(\"\");\n};\n\nconst HighlightedSnippet = ({ snippet, maxLength = 100 }) => {\n if (!snippet) return null;\n\n const text = trimAroundMatch(htmlToText(snippet) ?? \"\", maxLength);\n\n return (\n <span>\n {text.split(/\\[\\[\\[(.*?)\\]\\]\\]/).map((part, index) =>\n index % 2 === 1 ? (\n <mark\n className=\"rounded-sm bg-yellow-200 px-0.5 text-yellow-900\"\n key={index}\n >\n {part}\n </mark>\n ) : (\n <Fragment key={index}>{part}</Fragment>\n )\n )}\n </span>\n );\n};\n\nexport { htmlToText, HighlightedSnippet };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Badge, Empty, Spinner } from \"@bigbinary/neeto-atoms\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { Search } from \"lucide-react\";\nimport { humanize, noop } from \"neetocist\";\nimport useDebounce from \"neetocommons/v2/react-utils/useDebounce\";\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 { HighlightedSnippet, 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 event.stopPropagation();\n\n return;\n }\n event.preventDefault();\n};\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data = [],\n getTypeLabel = humanize,\n isFetching,\n isOpen,\n setIsOpen = noop,\n searchTerm = \"\",\n setSearchTerm,\n onSearchChange,\n debounceWait = 300,\n tagStyle = \"primary\",\n tagSize = \"small\",\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 [internalSearchTerm, setInternalSearchTerm] = useState(searchTerm);\n\n useEffect(() => {\n if (searchTerm !== internalSearchTerm) {\n setInternalSearchTerm(searchTerm);\n }\n }, [searchTerm]);\n\n const debouncedSearchTerm = useDebounce(internalSearchTerm, debounceWait);\n\n useEffect(() => {\n onSearchChange?.(debouncedSearchTerm);\n }, [debouncedSearchTerm, onSearchChange]);\n\n const handleSearchChange = value => {\n setInternalSearchTerm(value);\n setSearchTerm?.(value);\n };\n\n const handleOpenChange = open => {\n if (!open) onClose?.();\n };\n\n useHotkeys([\"ctrl+enter\", \"mod+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n useHotkeys(\"mod+k\", () => setIsOpen(true), { mode: \"global\" });\n useHotkeys(\"esc\", () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\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 isDataEmpty = useMemo(() => {\n if (Array.isArray(data)) return data.length === 0;\n\n return Object.values(data).every(items => items.length === 0);\n }, [data]);\n\n const renderItems = items =>\n items.map((item, index) => {\n const relativePath = toRelativePath(item.url);\n const description = htmlToText(item.description);\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={() => navigateToItem({ history, onClose, relativePath })}\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 <span className=\"text-foreground line-clamp-1 text-sm font-medium\">\n <HighlightedSnippet maxLength={80} snippet={item.title || \"\"} />\n </span>\n {description && (\n <span className=\"text-muted-foreground line-clamp-1 text-xs\">\n <HighlightedSnippet\n maxLength={80}\n snippet={item.description}\n />\n </span>\n )}\n </div>\n {item.type && (\n <div className=\"shrink-0\">\n <Badge\n color={tagStyle}\n label={getTypeLabel(item.type)}\n size={tagSize}\n />\n </div>\n )}\n </a>\n </CommandItem>\n );\n });\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={internalSearchTerm}\n onValueChange={handleSearchChange}\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 icon={Search}\n description={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataDesc\")\n : t(\"neetoMolecules.finderModal.startTypingDesc\")\n }\n title={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataTitle\")\n : t(\"neetoMolecules.finderModal.startTypingTitle\")\n }\n />\n </CommandEmpty>\n )}\n {Array.isArray(data)\n ? renderItems(data)\n : Object.entries(data).map(([group, items]) => {\n if (!items.length) return null;\n\n return (\n <CommandGroup heading={group} key={group}>\n {renderItems(items)}\n </CommandGroup>\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 getTypeLabel: PropTypes.func,\n isFetching: PropTypes.bool,\n isOpen: PropTypes.bool,\n searchTerm: PropTypes.string,\n setSearchTerm: PropTypes.func,\n onSearchChange: PropTypes.func,\n debounceWait: PropTypes.number,\n tagStyle: PropTypes.string,\n tagSize: PropTypes.string,\n onClose: PropTypes.func,\n onGoToAdvanced: PropTypes.func,\n onLoadMore: PropTypes.func,\n hasMore: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n};\n\nexport { HighlightedSnippet };\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","trimAroundMatch","text","maxLength","start","indexOf","length","concat","slice","from","Math","max","to","min","trim","Boolean","join","HighlightedSnippet","_htmlToText","snippet","_ref$maxLength","split","part","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","_ref2$getTypeLabel","getTypeLabel","humanize","isFetching","isOpen","_ref2$setIsOpen","setIsOpen","noop","_ref2$searchTerm","searchTerm","setSearchTerm","onSearchChange","_ref2$debounceWait","debounceWait","_ref2$tagStyle","tagStyle","_ref2$tagSize","tagSize","_ref2$onGoToAdvanced","onGoToAdvanced","onLoadMore","_ref2$hasMore","hasMore","_ref2$isFetchingMore","isFetchingMore","props","_objectWithoutProperties","_excluded","useHistory","_useState","useState","_useState2","_slicedToArray","sentinelEl","setSentinelEl","onLoadMoreRef","useRef","_useState3","_useState4","internalSearchTerm","setInternalSearchTerm","useEffect","debouncedSearchTerm","useDebounce","handleSearchChange","value","handleOpenChange","open","useHotkeys","mode","enabled","current","isPaginationEnabled","undefined","root","closest","observer","IntersectionObserver","_ref3","_ref4","entry","isIntersecting","rootMargin","observe","disconnect","isDataEmpty","useMemo","Array","isArray","Object","values","every","items","renderItems","item","_item$id","_item$id2","description","CommandItem","type","id","onSelect","href","onClick","title","Badge","color","CommandDialog","_objectSpread","onOpenChange","Command","shouldFilter","CommandInput","placeholder","onValueChange","Spinner","CommandList","CommandEmpty","Empty","icon","Search","entries","_ref5","_ref6","group","CommandGroup","heading","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 { Fragment } from \"react\";\n\nconst 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\nconst trimAroundMatch = (text, maxLength) => {\n const start = text.indexOf(\"[[[\");\n\n if (start === -1) {\n return text.length > maxLength ? `${text.slice(0, maxLength)}…` : text;\n }\n\n const from = Math.max(0, start - 24);\n const to = Math.min(text.length, from + maxLength);\n\n return [\n from > 0 && \"… \",\n text.slice(from, to).trim(),\n to < text.length && \" …\",\n ]\n .filter(Boolean)\n .join(\"\");\n};\n\nconst HighlightedSnippet = ({ snippet, maxLength = 100 }) => {\n if (!snippet) return null;\n\n const text = trimAroundMatch(htmlToText(snippet) ?? \"\", maxLength);\n\n return (\n <span>\n {text.split(/\\[\\[\\[(.*?)\\]\\]\\]/).map((part, index) =>\n index % 2 === 1 ? (\n <mark\n className=\"rounded-sm bg-yellow-200 px-0.5 text-yellow-900\"\n key={index}\n >\n {part}\n </mark>\n ) : (\n <Fragment key={index}>{part}</Fragment>\n )\n )}\n </span>\n );\n};\n\nexport { htmlToText, HighlightedSnippet };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Search } from \"lucide-react\";\nimport { Badge, Empty, Spinner } from \"neetoatoms\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"neetoatoms/primitives\";\nimport { humanize, isNotEmpty, noop } from \"neetocist\";\nimport useDebounce from \"neetocommons/v2/react-utils/useDebounce\";\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 { HighlightedSnippet, 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 event.stopPropagation();\n\n return;\n }\n event.preventDefault();\n};\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data = [],\n getTypeLabel = humanize,\n getTitleBadges = noop,\n isFetching,\n isOpen,\n setIsOpen = noop,\n searchTerm = \"\",\n setSearchTerm,\n onSearchChange,\n debounceWait = 300,\n tagStyle = \"primary\",\n tagSize = \"small\",\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 [internalSearchTerm, setInternalSearchTerm] = useState(searchTerm);\n\n useEffect(() => {\n if (searchTerm !== internalSearchTerm) {\n setInternalSearchTerm(searchTerm);\n }\n }, [searchTerm]);\n\n const debouncedSearchTerm = useDebounce(internalSearchTerm, debounceWait);\n\n useEffect(() => {\n onSearchChange?.(debouncedSearchTerm);\n }, [debouncedSearchTerm, onSearchChange]);\n\n const handleSearchChange = value => {\n setInternalSearchTerm(value);\n setSearchTerm?.(value);\n };\n\n const handleOpenChange = open => {\n if (!open) onClose?.();\n };\n\n useHotkeys([\"ctrl+enter\", \"mod+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n useHotkeys(\"mod+k\", () => setIsOpen(true), { mode: \"global\" });\n useHotkeys(\"esc\", () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\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 isDataEmpty = useMemo(() => {\n if (Array.isArray(data)) return data.length === 0;\n\n return Object.values(data).every(items => items.length === 0);\n }, [data]);\n\n const renderItems = items =>\n items.map((item, index) => {\n const relativePath = toRelativePath(item.url);\n const description = htmlToText(item.description);\n const titleBadges = getTitleBadges(item) || [];\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={() => navigateToItem({ history, onClose, relativePath })}\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 <div className=\"flex min-w-0 items-center gap-2\">\n <span className=\"text-foreground truncate text-sm font-medium\">\n <HighlightedSnippet\n maxLength={80}\n snippet={item.title || \"\"}\n />\n </span>\n {isNotEmpty(titleBadges) && (\n <div\n className=\"flex shrink-0 items-center gap-1.5\"\n data-testid=\"neeto-molecules-finder-modal-title-badges\"\n >\n {titleBadges.map(({ key, ...badgeProps }, badgeIndex) => (\n <Badge\n key={key ?? badgeIndex}\n size=\"sm\"\n {...badgeProps}\n />\n ))}\n </div>\n )}\n </div>\n {description && (\n <span className=\"text-muted-foreground line-clamp-1 text-xs\">\n <HighlightedSnippet\n maxLength={80}\n snippet={item.description}\n />\n </span>\n )}\n </div>\n {item.type && (\n <div className=\"shrink-0\">\n <Badge\n color={tagStyle}\n label={getTypeLabel(item.type)}\n size={tagSize}\n />\n </div>\n )}\n </a>\n </CommandItem>\n );\n });\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={internalSearchTerm}\n onValueChange={handleSearchChange}\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 icon={Search}\n description={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataDesc\")\n : t(\"neetoMolecules.finderModal.startTypingDesc\")\n }\n title={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataTitle\")\n : t(\"neetoMolecules.finderModal.startTypingTitle\")\n }\n />\n </CommandEmpty>\n )}\n {Array.isArray(data)\n ? renderItems(data)\n : Object.entries(data).map(([group, items]) => {\n if (!items.length) return null;\n\n return (\n <CommandGroup heading={group} key={group}>\n {renderItems(items)}\n </CommandGroup>\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 getTypeLabel: PropTypes.func,\n getTitleBadges: PropTypes.func,\n isFetching: PropTypes.bool,\n isOpen: PropTypes.bool,\n searchTerm: PropTypes.string,\n setSearchTerm: PropTypes.func,\n onSearchChange: PropTypes.func,\n debounceWait: PropTypes.number,\n tagStyle: PropTypes.string,\n tagSize: PropTypes.string,\n onClose: PropTypes.func,\n onGoToAdvanced: PropTypes.func,\n onLoadMore: PropTypes.func,\n hasMore: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n};\n\nexport { HighlightedSnippet };\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","trimAroundMatch","text","maxLength","start","indexOf","length","concat","slice","from","Math","max","to","min","trim","Boolean","join","HighlightedSnippet","_htmlToText","snippet","_ref$maxLength","split","part","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","_ref2$getTypeLabel","getTypeLabel","humanize","_ref2$getTitleBadges","getTitleBadges","noop","isFetching","isOpen","_ref2$setIsOpen","setIsOpen","_ref2$searchTerm","searchTerm","setSearchTerm","onSearchChange","_ref2$debounceWait","debounceWait","_ref2$tagStyle","tagStyle","_ref2$tagSize","tagSize","_ref2$onGoToAdvanced","onGoToAdvanced","onLoadMore","_ref2$hasMore","hasMore","_ref2$isFetchingMore","isFetchingMore","props","_objectWithoutProperties","_excluded","useHistory","_useState","useState","_useState2","_slicedToArray","sentinelEl","setSentinelEl","onLoadMoreRef","useRef","_useState3","_useState4","internalSearchTerm","setInternalSearchTerm","useEffect","debouncedSearchTerm","useDebounce","handleSearchChange","value","handleOpenChange","open","useHotkeys","mode","enabled","current","isPaginationEnabled","undefined","root","closest","observer","IntersectionObserver","_ref3","_ref4","entry","isIntersecting","rootMargin","observe","disconnect","isDataEmpty","useMemo","Array","isArray","Object","values","every","items","renderItems","item","_item$id","_item$id2","description","titleBadges","CommandItem","type","id","onSelect","href","onClick","title","isNotEmpty","_ref5","badgeIndex","badgeProps","_excluded2","Badge","_objectSpread","color","CommandDialog","onOpenChange","Command","shouldFilter","CommandInput","placeholder","onValueChange","Spinner","CommandList","CommandEmpty","Empty","icon","Search","entries","_ref6","_ref7","group","CommandGroup","heading","ref"],"mappings":"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"}
@@ -4,7 +4,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
4
4
  import { Fragment, useState, useRef, useEffect, useMemo } from 'react';
5
5
  import { Spinner, Empty, Badge } from '@bigbinary/neeto-atoms';
6
6
  import { CommandDialog, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '@bigbinary/neeto-atoms/primitives';
7
- import { noop, humanize } from '@bigbinary/neeto-cist';
7
+ import { noop, isNotEmpty, humanize } from '@bigbinary/neeto-cist';
8
8
  import useDebounce from '@bigbinary/neeto-commons-frontend/v2/react-utils/useDebounce';
9
9
  import useHotkeys from '@bigbinary/neeto-hotkeys';
10
10
  import { useTranslation } from 'react-i18next';
@@ -100,7 +100,8 @@ var HighlightedSnippet = function HighlightedSnippet(_ref) {
100
100
  });
101
101
  };
102
102
 
103
- var _excluded = ["enableAdvancedSearch", "data", "getTypeLabel", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onSearchChange", "debounceWait", "tagStyle", "tagSize", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
103
+ var _excluded = ["enableAdvancedSearch", "data", "getTypeLabel", "getTitleBadges", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onSearchChange", "debounceWait", "tagStyle", "tagSize", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"],
104
+ _excluded2 = ["key"];
104
105
  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; }
105
106
  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; }
106
107
  var toRelativePath = function toRelativePath(url) {
@@ -134,6 +135,8 @@ var FinderModal = function FinderModal(_ref2) {
134
135
  data = _ref2$data === void 0 ? [] : _ref2$data,
135
136
  _ref2$getTypeLabel = _ref2.getTypeLabel,
136
137
  getTypeLabel = _ref2$getTypeLabel === void 0 ? humanize : _ref2$getTypeLabel,
138
+ _ref2$getTitleBadges = _ref2.getTitleBadges,
139
+ getTitleBadges = _ref2$getTitleBadges === void 0 ? noop : _ref2$getTitleBadges,
137
140
  isFetching = _ref2.isFetching,
138
141
  isOpen = _ref2.isOpen,
139
142
  _ref2$setIsOpen = _ref2.setIsOpen,
@@ -233,6 +236,7 @@ var FinderModal = function FinderModal(_ref2) {
233
236
  var _item$id, _item$id2;
234
237
  var relativePath = toRelativePath(item.url);
235
238
  var description = htmlToText(item.description);
239
+ var titleBadges = getTitleBadges(item) || [];
236
240
  return /*#__PURE__*/jsx(CommandItem, {
237
241
  className: "!p-0",
238
242
  value: "".concat(item.type, "-").concat((_item$id2 = item.id) !== null && _item$id2 !== void 0 ? _item$id2 : index),
@@ -249,12 +253,25 @@ var FinderModal = function FinderModal(_ref2) {
249
253
  onClick: handleAnchorClick,
250
254
  children: [/*#__PURE__*/jsxs("div", {
251
255
  className: "flex min-w-0 flex-1 flex-col gap-1.5",
252
- children: [/*#__PURE__*/jsx("span", {
253
- className: "text-foreground line-clamp-1 text-sm font-medium",
254
- children: /*#__PURE__*/jsx(HighlightedSnippet, {
255
- maxLength: 80,
256
- snippet: item.title || ""
257
- })
256
+ children: [/*#__PURE__*/jsxs("div", {
257
+ className: "flex min-w-0 items-center gap-2",
258
+ children: [/*#__PURE__*/jsx("span", {
259
+ className: "text-foreground truncate text-sm font-medium",
260
+ children: /*#__PURE__*/jsx(HighlightedSnippet, {
261
+ maxLength: 80,
262
+ snippet: item.title || ""
263
+ })
264
+ }), isNotEmpty(titleBadges) && /*#__PURE__*/jsx("div", {
265
+ className: "flex shrink-0 items-center gap-1.5",
266
+ "data-testid": "neeto-molecules-finder-modal-title-badges",
267
+ children: titleBadges.map(function (_ref5, badgeIndex) {
268
+ var key = _ref5.key,
269
+ badgeProps = _objectWithoutProperties(_ref5, _excluded2);
270
+ return /*#__PURE__*/jsx(Badge, _objectSpread({
271
+ size: "sm"
272
+ }, badgeProps), key !== null && key !== void 0 ? key : badgeIndex);
273
+ })
274
+ })]
258
275
  }), description && /*#__PURE__*/jsx("span", {
259
276
  className: "text-muted-foreground line-clamp-1 text-xs",
260
277
  children: /*#__PURE__*/jsx(HighlightedSnippet, {
@@ -313,10 +330,10 @@ var FinderModal = function FinderModal(_ref2) {
313
330
  description: internalSearchTerm ? t("neetoMolecules.finderModal.noDataDesc") : t("neetoMolecules.finderModal.startTypingDesc"),
314
331
  title: internalSearchTerm ? t("neetoMolecules.finderModal.noDataTitle") : t("neetoMolecules.finderModal.startTypingTitle")
315
332
  })
316
- }), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref5) {
317
- var _ref6 = _slicedToArray(_ref5, 2),
318
- group = _ref6[0],
319
- items = _ref6[1];
333
+ }), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref6) {
334
+ var _ref7 = _slicedToArray(_ref6, 2),
335
+ group = _ref7[0],
336
+ items = _ref7[1];
320
337
  if (!items.length) return null;
321
338
  return /*#__PURE__*/jsx(CommandGroup, {
322
339
  heading: group,
@@ -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 { Fragment } from \"react\";\n\nconst 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\nconst trimAroundMatch = (text, maxLength) => {\n const start = text.indexOf(\"[[[\");\n\n if (start === -1) {\n return text.length > maxLength ? `${text.slice(0, maxLength)}…` : text;\n }\n\n const from = Math.max(0, start - 24);\n const to = Math.min(text.length, from + maxLength);\n\n return [\n from > 0 && \"… \",\n text.slice(from, to).trim(),\n to < text.length && \" …\",\n ]\n .filter(Boolean)\n .join(\"\");\n};\n\nconst HighlightedSnippet = ({ snippet, maxLength = 100 }) => {\n if (!snippet) return null;\n\n const text = trimAroundMatch(htmlToText(snippet) ?? \"\", maxLength);\n\n return (\n <span>\n {text.split(/\\[\\[\\[(.*?)\\]\\]\\]/).map((part, index) =>\n index % 2 === 1 ? (\n <mark\n className=\"rounded-sm bg-yellow-200 px-0.5 text-yellow-900\"\n key={index}\n >\n {part}\n </mark>\n ) : (\n <Fragment key={index}>{part}</Fragment>\n )\n )}\n </span>\n );\n};\n\nexport { htmlToText, HighlightedSnippet };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Badge, Empty, Spinner } from \"@bigbinary/neeto-atoms\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { Search } from \"lucide-react\";\nimport { humanize, noop } from \"neetocist\";\nimport useDebounce from \"neetocommons/v2/react-utils/useDebounce\";\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 { HighlightedSnippet, 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 event.stopPropagation();\n\n return;\n }\n event.preventDefault();\n};\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data = [],\n getTypeLabel = humanize,\n isFetching,\n isOpen,\n setIsOpen = noop,\n searchTerm = \"\",\n setSearchTerm,\n onSearchChange,\n debounceWait = 300,\n tagStyle = \"primary\",\n tagSize = \"small\",\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 [internalSearchTerm, setInternalSearchTerm] = useState(searchTerm);\n\n useEffect(() => {\n if (searchTerm !== internalSearchTerm) {\n setInternalSearchTerm(searchTerm);\n }\n }, [searchTerm]);\n\n const debouncedSearchTerm = useDebounce(internalSearchTerm, debounceWait);\n\n useEffect(() => {\n onSearchChange?.(debouncedSearchTerm);\n }, [debouncedSearchTerm, onSearchChange]);\n\n const handleSearchChange = value => {\n setInternalSearchTerm(value);\n setSearchTerm?.(value);\n };\n\n const handleOpenChange = open => {\n if (!open) onClose?.();\n };\n\n useHotkeys([\"ctrl+enter\", \"mod+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n useHotkeys(\"mod+k\", () => setIsOpen(true), { mode: \"global\" });\n useHotkeys(\"esc\", () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\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 isDataEmpty = useMemo(() => {\n if (Array.isArray(data)) return data.length === 0;\n\n return Object.values(data).every(items => items.length === 0);\n }, [data]);\n\n const renderItems = items =>\n items.map((item, index) => {\n const relativePath = toRelativePath(item.url);\n const description = htmlToText(item.description);\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={() => navigateToItem({ history, onClose, relativePath })}\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 <span className=\"text-foreground line-clamp-1 text-sm font-medium\">\n <HighlightedSnippet maxLength={80} snippet={item.title || \"\"} />\n </span>\n {description && (\n <span className=\"text-muted-foreground line-clamp-1 text-xs\">\n <HighlightedSnippet\n maxLength={80}\n snippet={item.description}\n />\n </span>\n )}\n </div>\n {item.type && (\n <div className=\"shrink-0\">\n <Badge\n color={tagStyle}\n label={getTypeLabel(item.type)}\n size={tagSize}\n />\n </div>\n )}\n </a>\n </CommandItem>\n );\n });\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={internalSearchTerm}\n onValueChange={handleSearchChange}\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 icon={Search}\n description={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataDesc\")\n : t(\"neetoMolecules.finderModal.startTypingDesc\")\n }\n title={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataTitle\")\n : t(\"neetoMolecules.finderModal.startTypingTitle\")\n }\n />\n </CommandEmpty>\n )}\n {Array.isArray(data)\n ? renderItems(data)\n : Object.entries(data).map(([group, items]) => {\n if (!items.length) return null;\n\n return (\n <CommandGroup heading={group} key={group}>\n {renderItems(items)}\n </CommandGroup>\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 getTypeLabel: PropTypes.func,\n isFetching: PropTypes.bool,\n isOpen: PropTypes.bool,\n searchTerm: PropTypes.string,\n setSearchTerm: PropTypes.func,\n onSearchChange: PropTypes.func,\n debounceWait: PropTypes.number,\n tagStyle: PropTypes.string,\n tagSize: PropTypes.string,\n onClose: PropTypes.func,\n onGoToAdvanced: PropTypes.func,\n onLoadMore: PropTypes.func,\n hasMore: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n};\n\nexport { HighlightedSnippet };\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","trimAroundMatch","text","maxLength","start","indexOf","length","concat","slice","from","Math","max","to","min","trim","Boolean","join","HighlightedSnippet","_htmlToText","snippet","_ref$maxLength","split","part","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","_ref2$getTypeLabel","getTypeLabel","humanize","isFetching","isOpen","_ref2$setIsOpen","setIsOpen","noop","_ref2$searchTerm","searchTerm","setSearchTerm","onSearchChange","_ref2$debounceWait","debounceWait","_ref2$tagStyle","tagStyle","_ref2$tagSize","tagSize","_ref2$onGoToAdvanced","onGoToAdvanced","onLoadMore","_ref2$hasMore","hasMore","_ref2$isFetchingMore","isFetchingMore","props","_objectWithoutProperties","_excluded","useHistory","_useState","useState","_useState2","_slicedToArray","sentinelEl","setSentinelEl","onLoadMoreRef","useRef","_useState3","_useState4","internalSearchTerm","setInternalSearchTerm","useEffect","debouncedSearchTerm","useDebounce","handleSearchChange","value","handleOpenChange","open","useHotkeys","mode","enabled","current","isPaginationEnabled","undefined","root","closest","observer","IntersectionObserver","_ref3","_ref4","entry","isIntersecting","rootMargin","observe","disconnect","isDataEmpty","useMemo","Array","isArray","Object","values","every","items","renderItems","item","_item$id","_item$id2","description","CommandItem","type","id","onSelect","href","onClick","title","Badge","color","CommandDialog","_objectSpread","onOpenChange","Command","shouldFilter","CommandInput","placeholder","onValueChange","Spinner","CommandList","CommandEmpty","Empty","icon","Search","entries","_ref5","_ref6","group","CommandGroup","heading","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 { Fragment } from \"react\";\n\nconst 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\nconst trimAroundMatch = (text, maxLength) => {\n const start = text.indexOf(\"[[[\");\n\n if (start === -1) {\n return text.length > maxLength ? `${text.slice(0, maxLength)}…` : text;\n }\n\n const from = Math.max(0, start - 24);\n const to = Math.min(text.length, from + maxLength);\n\n return [\n from > 0 && \"… \",\n text.slice(from, to).trim(),\n to < text.length && \" …\",\n ]\n .filter(Boolean)\n .join(\"\");\n};\n\nconst HighlightedSnippet = ({ snippet, maxLength = 100 }) => {\n if (!snippet) return null;\n\n const text = trimAroundMatch(htmlToText(snippet) ?? \"\", maxLength);\n\n return (\n <span>\n {text.split(/\\[\\[\\[(.*?)\\]\\]\\]/).map((part, index) =>\n index % 2 === 1 ? (\n <mark\n className=\"rounded-sm bg-yellow-200 px-0.5 text-yellow-900\"\n key={index}\n >\n {part}\n </mark>\n ) : (\n <Fragment key={index}>{part}</Fragment>\n )\n )}\n </span>\n );\n};\n\nexport { htmlToText, HighlightedSnippet };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Search } from \"lucide-react\";\nimport { Badge, Empty, Spinner } from \"neetoatoms\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"neetoatoms/primitives\";\nimport { humanize, isNotEmpty, noop } from \"neetocist\";\nimport useDebounce from \"neetocommons/v2/react-utils/useDebounce\";\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 { HighlightedSnippet, 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 event.stopPropagation();\n\n return;\n }\n event.preventDefault();\n};\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data = [],\n getTypeLabel = humanize,\n getTitleBadges = noop,\n isFetching,\n isOpen,\n setIsOpen = noop,\n searchTerm = \"\",\n setSearchTerm,\n onSearchChange,\n debounceWait = 300,\n tagStyle = \"primary\",\n tagSize = \"small\",\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 [internalSearchTerm, setInternalSearchTerm] = useState(searchTerm);\n\n useEffect(() => {\n if (searchTerm !== internalSearchTerm) {\n setInternalSearchTerm(searchTerm);\n }\n }, [searchTerm]);\n\n const debouncedSearchTerm = useDebounce(internalSearchTerm, debounceWait);\n\n useEffect(() => {\n onSearchChange?.(debouncedSearchTerm);\n }, [debouncedSearchTerm, onSearchChange]);\n\n const handleSearchChange = value => {\n setInternalSearchTerm(value);\n setSearchTerm?.(value);\n };\n\n const handleOpenChange = open => {\n if (!open) onClose?.();\n };\n\n useHotkeys([\"ctrl+enter\", \"mod+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n useHotkeys(\"mod+k\", () => setIsOpen(true), { mode: \"global\" });\n useHotkeys(\"esc\", () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\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 isDataEmpty = useMemo(() => {\n if (Array.isArray(data)) return data.length === 0;\n\n return Object.values(data).every(items => items.length === 0);\n }, [data]);\n\n const renderItems = items =>\n items.map((item, index) => {\n const relativePath = toRelativePath(item.url);\n const description = htmlToText(item.description);\n const titleBadges = getTitleBadges(item) || [];\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={() => navigateToItem({ history, onClose, relativePath })}\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 <div className=\"flex min-w-0 items-center gap-2\">\n <span className=\"text-foreground truncate text-sm font-medium\">\n <HighlightedSnippet\n maxLength={80}\n snippet={item.title || \"\"}\n />\n </span>\n {isNotEmpty(titleBadges) && (\n <div\n className=\"flex shrink-0 items-center gap-1.5\"\n data-testid=\"neeto-molecules-finder-modal-title-badges\"\n >\n {titleBadges.map(({ key, ...badgeProps }, badgeIndex) => (\n <Badge\n key={key ?? badgeIndex}\n size=\"sm\"\n {...badgeProps}\n />\n ))}\n </div>\n )}\n </div>\n {description && (\n <span className=\"text-muted-foreground line-clamp-1 text-xs\">\n <HighlightedSnippet\n maxLength={80}\n snippet={item.description}\n />\n </span>\n )}\n </div>\n {item.type && (\n <div className=\"shrink-0\">\n <Badge\n color={tagStyle}\n label={getTypeLabel(item.type)}\n size={tagSize}\n />\n </div>\n )}\n </a>\n </CommandItem>\n );\n });\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={internalSearchTerm}\n onValueChange={handleSearchChange}\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 icon={Search}\n description={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataDesc\")\n : t(\"neetoMolecules.finderModal.startTypingDesc\")\n }\n title={\n internalSearchTerm\n ? t(\"neetoMolecules.finderModal.noDataTitle\")\n : t(\"neetoMolecules.finderModal.startTypingTitle\")\n }\n />\n </CommandEmpty>\n )}\n {Array.isArray(data)\n ? renderItems(data)\n : Object.entries(data).map(([group, items]) => {\n if (!items.length) return null;\n\n return (\n <CommandGroup heading={group} key={group}>\n {renderItems(items)}\n </CommandGroup>\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 getTypeLabel: PropTypes.func,\n getTitleBadges: PropTypes.func,\n isFetching: PropTypes.bool,\n isOpen: PropTypes.bool,\n searchTerm: PropTypes.string,\n setSearchTerm: PropTypes.func,\n onSearchChange: PropTypes.func,\n debounceWait: PropTypes.number,\n tagStyle: PropTypes.string,\n tagSize: PropTypes.string,\n onClose: PropTypes.func,\n onGoToAdvanced: PropTypes.func,\n onLoadMore: PropTypes.func,\n hasMore: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n};\n\nexport { HighlightedSnippet };\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","trimAroundMatch","text","maxLength","start","indexOf","length","concat","slice","from","Math","max","to","min","trim","Boolean","join","HighlightedSnippet","_htmlToText","snippet","_ref$maxLength","split","part","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","_ref2$getTypeLabel","getTypeLabel","humanize","_ref2$getTitleBadges","getTitleBadges","noop","isFetching","isOpen","_ref2$setIsOpen","setIsOpen","_ref2$searchTerm","searchTerm","setSearchTerm","onSearchChange","_ref2$debounceWait","debounceWait","_ref2$tagStyle","tagStyle","_ref2$tagSize","tagSize","_ref2$onGoToAdvanced","onGoToAdvanced","onLoadMore","_ref2$hasMore","hasMore","_ref2$isFetchingMore","isFetchingMore","props","_objectWithoutProperties","_excluded","useHistory","_useState","useState","_useState2","_slicedToArray","sentinelEl","setSentinelEl","onLoadMoreRef","useRef","_useState3","_useState4","internalSearchTerm","setInternalSearchTerm","useEffect","debouncedSearchTerm","useDebounce","handleSearchChange","value","handleOpenChange","open","useHotkeys","mode","enabled","current","isPaginationEnabled","undefined","root","closest","observer","IntersectionObserver","_ref3","_ref4","entry","isIntersecting","rootMargin","observe","disconnect","isDataEmpty","useMemo","Array","isArray","Object","values","every","items","renderItems","item","_item$id","_item$id2","description","titleBadges","CommandItem","type","id","onSelect","href","onClick","title","isNotEmpty","_ref5","badgeIndex","badgeProps","_excluded2","Badge","_objectSpread","color","CommandDialog","onOpenChange","Command","shouldFilter","CommandInput","placeholder","onValueChange","Spinner","CommandList","CommandEmpty","Empty","icon","Search","entries","_ref6","_ref7","group","CommandGroup","heading","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.5.6",
3
+ "version": "5.5.7",
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>",