{"version":3,"file":"TypeaheadItem.cjs","sources":["../../../../src/components/Typeahead/TypeaheadItem.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport * as React from 'react';\nimport Highlighter from 'react-highlight-words';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { useStyles2 } from '../../themes/ThemeContext';\nimport { CompletionItem, CompletionItemKind } from '../../types/completion';\n\nimport { PartialHighlighter } from './PartialHighlighter';\n\ninterface Props {\n  isSelected: boolean;\n  item: CompletionItem;\n  style: React.CSSProperties;\n  prefix?: string;\n\n  onClickItem?: (event: React.MouseEvent) => void;\n  onMouseEnter?: () => void;\n  onMouseLeave?: () => void;\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  typeaheadItem: css({\n    border: 'none',\n    background: 'none',\n    textAlign: 'left',\n    label: 'type-ahead-item',\n    height: 'auto',\n    fontFamily: theme.typography.fontFamilyMonospace,\n    padding: theme.spacing(1, 1, 1, 2),\n    fontSize: theme.typography.bodySmall.fontSize,\n    textOverflow: 'ellipsis',\n    overflow: 'hidden',\n    zIndex: 11,\n    display: 'block',\n    whiteSpace: 'nowrap',\n    cursor: 'pointer',\n    [theme.transitions.handleMotion('no-preference', 'reduce')]: {\n      transition:\n        'color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1)',\n    },\n  }),\n\n  typeaheadItemSelected: css({\n    label: 'type-ahead-item-selected',\n    backgroundColor: theme.colors.background.secondary,\n  }),\n\n  typeaheadItemMatch: css({\n    label: 'type-ahead-item-match',\n    color: theme.v1.palette.yellow,\n    borderBottom: `1px solid ${theme.v1.palette.yellow}`,\n    padding: 'inherit',\n    background: 'inherit',\n  }),\n\n  typeaheadItemGroupTitle: css({\n    label: 'type-ahead-item-group-title',\n    color: theme.colors.text.secondary,\n    fontSize: theme.typography.bodySmall.fontSize,\n    lineHeight: theme.typography.body.lineHeight,\n    padding: theme.spacing(1),\n  }),\n});\n\nexport const TypeaheadItem = (props: Props) => {\n  const styles = useStyles2(getStyles);\n\n  const { isSelected, item, prefix, style, onMouseEnter, onMouseLeave, onClickItem } = props;\n  const className = isSelected ? cx([styles.typeaheadItem, styles.typeaheadItemSelected]) : cx([styles.typeaheadItem]);\n  const highlightClassName = cx([styles.typeaheadItemMatch]);\n  const itemGroupTitleClassName = cx([styles.typeaheadItemGroupTitle]);\n  const label = item.label || '';\n\n  if (item.kind === CompletionItemKind.GroupTitle) {\n    return (\n      <li className={itemGroupTitleClassName} style={style}>\n        <span>{label}</span>\n      </li>\n    );\n  }\n\n  return (\n    <li role=\"none\">\n      <button\n        role=\"menuitem\"\n        className={className}\n        style={style}\n        onMouseDown={onClickItem}\n        onMouseEnter={onMouseEnter}\n        onMouseLeave={onMouseLeave}\n        type=\"button\"\n      >\n        {item.highlightParts !== undefined ? (\n          <PartialHighlighter\n            text={label}\n            highlightClassName={highlightClassName}\n            highlightParts={item.highlightParts}\n          ></PartialHighlighter>\n        ) : (\n          <Highlighter\n            textToHighlight={label}\n            searchWords={[prefix ?? '']}\n            autoEscape={true}\n            highlightClassName={highlightClassName}\n          />\n        )}\n      </button>\n    </li>\n  );\n};\n"],"names":["css","useStyles2","cx","CompletionItemKind","jsx","PartialHighlighter","Highlighter"],"mappings":"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"}