{"version":3,"file":"LangSelect.mjs","names":["Flexbox"],"sources":["../../src/Highlighter/LangSelect.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useMemo } from 'react';\nimport { bundledLanguagesInfo } from 'shiki';\n\nimport Select, { type SelectProps } from '@/base-ui/Select';\nimport { Flexbox } from '@/Flex';\nimport MaterialFileTypeIcon from '@/MaterialFileTypeIcon';\nimport Text from '@/Text';\nimport { stopPropagation } from '@/utils/dom';\n\nexport const LangSelect = memo<Omit<SelectProps<string>, 'options'>>(({ style, ...rest }) => {\n  const options = useMemo(\n    () => [\n      {\n        label: (\n          <Flexbox horizontal align={'center'} gap={4}>\n            <MaterialFileTypeIcon\n              fallbackUnknownType={false}\n              filename={`*.txt`}\n              size={18}\n              type={'file'}\n              variant={'raw'}\n            />\n            <Text ellipsis fontSize={13}>\n              Plaintext\n            </Text>\n          </Flexbox>\n        ),\n        title: 'Plaintext,plaintext,*.text,*.txt',\n        value: 'plaintext',\n      },\n      ...bundledLanguagesInfo.map((item) => ({\n        label: (\n          <Flexbox horizontal align={'center'} gap={4}>\n            <MaterialFileTypeIcon\n              fallbackUnknownType={false}\n              filename={`*.${item?.aliases?.[0] || item.id}`}\n              size={18}\n              type={'file'}\n              variant={'raw'}\n            />\n            <Text ellipsis fontSize={13}>\n              {item.name}\n            </Text>\n          </Flexbox>\n        ),\n        title: [item.name, item.id, ...(item.aliases || []).map((alias) => `*.${alias}`)].join(','),\n        value: item.id,\n      })),\n    ],\n    [],\n  );\n\n  return (\n    <div style={{ maxWidth: 240, width: '100%' }} onClick={stopPropagation}>\n      <Select\n        showSearch\n        virtual\n        className={'language-title'}\n        options={options}\n        size={'small'}\n        style={{ width: '100%', ...style }}\n        suffixIcon={null}\n        variant={'borderless'}\n        {...rest}\n      />\n    </div>\n  );\n});\n\nexport default LangSelect;\n"],"mappings":";;;;;;;;;;AAWA,MAAa,aAAa,MAA4C,EAAE,OAAO,GAAG,WAAW;CAC3F,MAAM,UAAU,cACR,CACJ;EACE,OACE,qBAACA,mBAAD;GAAS,YAAA;GAAW,OAAO;GAAU,KAAK;GAA1C,UAAA,CACE,oBAAC,sBAAD;IACE,qBAAqB;IACrB,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;GACV,CAAA,GACD,oBAAC,MAAD;IAAM,UAAA;IAAS,UAAU;IAAI,UAAA;GAEvB,CAAA,CACC;;EAEX,OAAO;EACP,OAAO;CACT,GACA,GAAG,qBAAqB,KAAK,UAAU;EACrC,OACE,qBAACA,mBAAD;GAAS,YAAA;GAAW,OAAO;GAAU,KAAK;GAA1C,UAAA,CACE,oBAAC,sBAAD;IACE,qBAAqB;IACrB,UAAU,KAAK,MAAM,UAAU,MAAM,KAAK;IAC1C,MAAM;IACN,MAAM;IACN,SAAS;GACV,CAAA,GACD,oBAAC,MAAD;IAAM,UAAA;IAAS,UAAU;IACtB,UAAA,KAAK;GACF,CAAA,CACC;;EAEX,OAAO;GAAC,KAAK;GAAM,KAAK;GAAI,IAAI,KAAK,WAAW,CAAC,EAAA,CAAG,KAAK,UAAU,KAAK,OAAO;EAAC,CAAC,CAAC,KAAK,GAAG;EAC1F,OAAO,KAAK;CACd,EAAE,CACJ,GACA,CAAC,CACH;CAEA,OACE,oBAAC,OAAD;EAAK,OAAO;GAAE,UAAU;GAAK,OAAO;EAAO;EAAG,SAAS;EACrD,UAAA,oBAAC,QAAD;GACE,YAAA;GACA,SAAA;GACA,WAAW;GACF;GACT,MAAM;GACN,OAAO;IAAE,OAAO;IAAQ,GAAG;GAAM;GACjC,YAAY;GACZ,SAAS;GACT,GAAI;EACL,CAAA;CACE,CAAA;AAET,CAAC"}