{"version":3,"file":"LangSelect.mjs","names":["Flexbox"],"sources":["../../src/Highlighter/LangSelect.tsx"],"sourcesContent":["'use client';\n\nimport { Select, type SelectProps } from 'antd';\nimport { memo, useMemo } from 'react';\nimport { bundledLanguagesInfo } from 'shiki';\n\nimport { Flexbox } from '@/Flex';\nimport MaterialFileTypeIcon from '@/MaterialFileTypeIcon';\nimport Text from '@/Text';\nimport { stopPropagation } from '@/utils/dom';\n\nexport const LangSelect = memo<Omit<SelectProps, 'options'>>(({ ...rest }) => {\n  const options = useMemo(\n    () => [\n      {\n        aliases: ['text', 'txt'],\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        value: 'plaintext',\n      },\n      ...bundledLanguagesInfo.map((item) => ({\n        aliases: item.aliases,\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.aliases || [item.id])\n          .filter(Boolean)\n          .map((item) => `*.${item}`)\n          .join(','),\n        value: item.id,\n      })),\n    ],\n    [],\n  );\n\n  return (\n    <Select\n      showSearch\n      className={'languageTitle'}\n      options={options}\n      size={'small'}\n      suffixIcon={false}\n      variant={'borderless'}\n      style={{\n        maxWidth: 240,\n        width: '100%',\n      }}\n      onClick={stopPropagation}\n      {...rest}\n    />\n  );\n});\n\nexport default LangSelect;\n"],"mappings":";;;;;;;;;;AAWA,MAAa,aAAa,MAAoC,EAAE,GAAG,WAAW;CAC5E,MAAM,UAAU,cACR,CACJ;EACE,SAAS,CAAC,QAAQ,KAAK;EACvB,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;CACT,GACA,GAAG,qBAAqB,KAAK,UAAU;EACrC,SAAS,KAAK;EACd,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,QAAQ,KAAK,WAAW,CAAC,KAAK,EAAE,EAAA,CAC7B,OAAO,OAAO,CAAC,CACf,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,KAAK,GAAG;EACX,OAAO,KAAK;CACd,EAAE,CACJ,GACA,CAAC,CACH;CAEA,OACE,oBAAC,QAAD;EACE,YAAA;EACA,WAAW;EACF;EACT,MAAM;EACN,YAAY;EACZ,SAAS;EACT,OAAO;GACL,UAAU;GACV,OAAO;EACT;EACA,SAAS;EACT,GAAI;CACL,CAAA;AAEL,CAAC"}