{"version":3,"file":"List.mjs","sources":["../../../src/components/internal/List.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport React, { forwardRef, useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport type { ComponentPropsWithSlot } from \"../../types\";\nimport { classNames } from \"../../utils/class-names\";\nimport { listFormat } from \"../../utils/intl\";\n\nexport interface ListProps extends ComponentPropsWithSlot<\"span\"> {\n  values: ReactNode[];\n  formatRemaining?: (amount: number) => string;\n  truncate?: number;\n  locale?: string;\n}\n\nexport const List = forwardRef<HTMLSpanElement, ListProps>(\n  (\n    { values, formatRemaining, truncate, locale, className, asChild, ...props },\n    forwardedRef\n  ) => {\n    const Component = asChild ? Slot : \"span\";\n    const $ = useOverrides();\n    const formatRemainingWithDefault = formatRemaining ?? $.LIST_REMAINING;\n    const formattedList = useMemo(() => {\n      const elements =\n        truncate && truncate < values.length - 1\n          ? [\n              ...values.slice(0, truncate),\n              formatRemainingWithDefault(values.length - truncate),\n            ]\n          : [...values];\n      const placeholders = Array(elements.length).fill(\".\");\n      const parts = listFormat(locale).formatToParts(placeholders);\n\n      return parts.map((part) =>\n        part.type === \"element\" ? elements.shift() : part.value\n      );\n    }, [formatRemainingWithDefault, locale, truncate, values]);\n\n    return (\n      <Component\n        className={classNames(\"lb-list\", className)}\n        {...props}\n        ref={forwardedRef}\n      >\n        {formattedList}\n      </Component>\n    );\n  }\n);\n"],"names":["React"],"mappings":";;;;;;AAgBO,MAAM,IAAO,GAAA,UAAA;AAAA,EAClB,CACE,EAAE,MAAA,EAAQ,eAAiB,EAAA,QAAA,EAAU,QAAQ,SAAW,EAAA,OAAA,EAAA,GAAY,KAAM,EAAA,EAC1E,YACG,KAAA;AACH,IAAM,MAAA,SAAA,GAAY,UAAU,IAAO,GAAA,MAAA,CAAA;AACnC,IAAA,MAAM,IAAI,YAAa,EAAA,CAAA;AACvB,IAAM,MAAA,0BAAA,GAA6B,mBAAmB,CAAE,CAAA,cAAA,CAAA;AACxD,IAAM,MAAA,aAAA,GAAgB,QAAQ,MAAM;AAClC,MAAA,MAAM,QACJ,GAAA,QAAA,IAAY,QAAW,GAAA,MAAA,CAAO,SAAS,CACnC,GAAA;AAAA,QACE,GAAG,MAAA,CAAO,KAAM,CAAA,CAAA,EAAG,QAAQ,CAAA;AAAA,QAC3B,0BAAA,CAA2B,MAAO,CAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,OACrD,GACA,CAAC,GAAG,MAAM,CAAA,CAAA;AAChB,MAAA,MAAM,eAAe,KAAM,CAAA,QAAA,CAAS,MAAM,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;AACpD,MAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,MAAM,CAAA,CAAE,cAAc,YAAY,CAAA,CAAA;AAE3D,MAAA,OAAO,KAAM,CAAA,GAAA;AAAA,QAAI,CAAC,SAChB,IAAK,CAAA,IAAA,KAAS,YAAY,QAAS,CAAA,KAAA,KAAU,IAAK,CAAA,KAAA;AAAA,OACpD,CAAA;AAAA,OACC,CAAC,0BAAA,EAA4B,MAAQ,EAAA,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAEzD,IAAA,uBACGA,cAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,MACC,SAAA,EAAW,UAAW,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,MACzC,GAAG,KAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,KAAA,EAEJ,aACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}