{"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;AA+C5E,QACE,oBAAC,QAAD;EACE,YAAA;EACA,WAAW;EACX,SAlDY,cACR,CACJ;GACE,SAAS,CAAC,QAAQ,MAAM;GACxB,OACE,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,KAAK;cAA1C,CACE,oBAAC,sBAAD;KACE,qBAAqB;KACrB,UAAU;KACV,MAAM;KACN,MAAM;KACN,SAAS;KACT,CAAA,EACF,oBAAC,MAAD;KAAM,UAAA;KAAS,UAAU;eAAI;KAEtB,CAAA,CACC;;GAEZ,OAAO;GACR,EACD,GAAG,qBAAqB,KAAK,UAAU;GACrC,SAAS,KAAK;GACd,OACE,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,KAAK;cAA1C,CACE,oBAAC,sBAAD;KACE,qBAAqB;KACrB,UAAU,KAAK,MAAM,UAAU,MAAM,KAAK;KAC1C,MAAM;KACN,MAAM;KACN,SAAS;KACT,CAAA,EACF,oBAAC,MAAD;KAAM,UAAA;KAAS,UAAU;eACtB,KAAK;KACD,CAAA,CACC;;GAEZ,QAAQ,KAAK,WAAW,CAAC,KAAK,GAAG,EAC9B,OAAO,QAAQ,CACf,KAAK,SAAS,KAAK,OAAO,CAC1B,KAAK,IAAI;GACZ,OAAO,KAAK;GACb,EAAE,CACJ,EACD,EAAE,CACH;EAOG,MAAM;EACN,YAAY;EACZ,SAAS;EACT,OAAO;GACL,UAAU;GACV,OAAO;GACR;EACD,SAAS;EACT,GAAI;EACJ,CAAA;EAEJ"}