{
  "version": 3,
  "sources": ["../../src/form-token-field/suggestions-list.tsx"],
  "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst handleMouseDown = e => {\n  // By preventing default here, we will not lose focus of <input> when clicking a suggestion.\n  e.preventDefault();\n};\nexport function SuggestionsList({\n  selectedIndex,\n  scrollIntoView,\n  match,\n  onHover,\n  onSelect,\n  suggestions = [],\n  displayTransform,\n  instanceId,\n  __experimentalRenderItem\n}) {\n  const listRef = useRefEffect(listNode => {\n    // only have to worry about scrolling selected suggestion into view\n    // when already expanded.\n    if (selectedIndex > -1 && scrollIntoView && listNode.children[selectedIndex]) {\n      listNode.children[selectedIndex].scrollIntoView({\n        behavior: 'instant',\n        block: 'nearest',\n        inline: 'nearest'\n      });\n    }\n  }, [selectedIndex, scrollIntoView]);\n  const handleHover = suggestion => {\n    return () => {\n      onHover?.(suggestion);\n    };\n  };\n  const handleClick = suggestion => {\n    return () => {\n      onSelect?.(suggestion);\n    };\n  };\n  const computeSuggestionMatch = suggestion => {\n    const matchText = displayTransform(match).normalize('NFKC').toLocaleLowerCase();\n    if (matchText.length === 0) {\n      return null;\n    }\n    const transformedSuggestion = displayTransform(suggestion);\n    const indexOfMatch = transformedSuggestion.normalize('NFKC').toLocaleLowerCase().indexOf(matchText);\n    return {\n      suggestionBeforeMatch: transformedSuggestion.substring(0, indexOfMatch),\n      suggestionMatch: transformedSuggestion.substring(indexOfMatch, indexOfMatch + matchText.length),\n      suggestionAfterMatch: transformedSuggestion.substring(indexOfMatch + matchText.length)\n    };\n  };\n  return /*#__PURE__*/_jsxs(\"ul\", {\n    ref: listRef,\n    className: \"components-form-token-field__suggestions-list\",\n    id: `components-form-token-suggestions-${instanceId}`,\n    role: \"listbox\",\n    children: [suggestions.map((suggestion, index) => {\n      const matchText = computeSuggestionMatch(suggestion);\n      const isSelected = index === selectedIndex;\n      const isDisabled = typeof suggestion === 'object' && suggestion?.disabled;\n      const key = typeof suggestion === 'object' && 'value' in suggestion ? suggestion?.value : displayTransform(suggestion);\n      const className = clsx('components-form-token-field__suggestion', {\n        'is-selected': isSelected\n      });\n      let output;\n      if (typeof __experimentalRenderItem === 'function') {\n        output = __experimentalRenderItem({\n          item: suggestion\n        });\n      } else if (matchText) {\n        output = /*#__PURE__*/_jsxs(\"span\", {\n          \"aria-label\": displayTransform(suggestion),\n          children: [matchText.suggestionBeforeMatch, /*#__PURE__*/_jsx(\"strong\", {\n            className: \"components-form-token-field__suggestion-match\",\n            children: matchText.suggestionMatch\n          }), matchText.suggestionAfterMatch]\n        });\n      } else {\n        output = displayTransform(suggestion);\n      }\n\n      /* eslint-disable jsx-a11y/click-events-have-key-events */\n      return /*#__PURE__*/_jsx(\"li\", {\n        id: `components-form-token-suggestions-${instanceId}-${index}`,\n        role: \"option\",\n        className: className,\n        onMouseDown: handleMouseDown,\n        onClick: handleClick(suggestion),\n        onMouseEnter: handleHover(suggestion),\n        \"aria-selected\": index === selectedIndex,\n        \"aria-disabled\": isDisabled,\n        children: output\n      }, key);\n      /* eslint-enable jsx-a11y/click-events-have-key-events */\n    }), suggestions.length === 0 && /*#__PURE__*/_jsx(\"li\", {\n      className: \"components-form-token-field__suggestion is-empty\",\n      children: __('No items found')\n    })]\n  });\n}\nexport default SuggestionsList;"],
  "mappings": "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",
  "names": ["_jsxs", "clsx", "_jsx"]
}
