{"version":3,"file":"Breadcrumb.mjs","names":[],"sources":["../../../src/dashboard/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["'use client';\n\nimport { styles } from './style';\nimport type { BreadcrumbItem, BreadcrumbProps } from './type';\n\nfunction CrumbLink({\n  className,\n  item,\n  renderLink,\n}: {\n  className: string;\n  item: BreadcrumbItem;\n  renderLink?: BreadcrumbProps['renderLink'];\n}) {\n  const href = item.href ?? '#';\n  if (renderLink && item.href) {\n    return renderLink({\n      children: item.label,\n      className,\n      href: item.href,\n      onClick: item.onClick,\n    });\n  }\n  return (\n    <a\n      className={className}\n      href={href}\n      onClick={(event) => {\n        if (!item.onClick) return;\n        event.preventDefault();\n        item.onClick();\n      }}\n    >\n      {item.label}\n    </a>\n  );\n}\n\nfunction Breadcrumb({ items, label = 'Breadcrumb', renderLink }: BreadcrumbProps) {\n  return (\n    <nav aria-label={label} className={styles.root}>\n      {items.map((item, index) => {\n        const last = index === items.length - 1;\n        const linked = Boolean(item.href) && !last;\n        return (\n          <span className={item.optional ? styles.optional : undefined} key={`${index}`}>\n            {linked ? (\n              <CrumbLink className={styles.link} item={item} renderLink={renderLink} />\n            ) : (\n              <span\n                aria-current={last ? 'page' : undefined}\n                className={last ? styles.page : styles.ancestor}\n                title={typeof item.label === 'string' ? item.label : undefined}\n              >\n                {item.label}\n              </span>\n            )}\n            {index < items.length - 1 ? (\n              <span aria-hidden className={styles.separator}>\n                /\n              </span>\n            ) : null}\n          </span>\n        );\n      })}\n    </nav>\n  );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\n\nexport default Breadcrumb;\n"],"mappings":";;;;AAKA,SAAS,UAAU,EACjB,WACA,MACA,cAKC;CACD,MAAM,OAAO,KAAK,QAAQ;CAC1B,IAAI,cAAc,KAAK,MACrB,OAAO,WAAW;EAChB,UAAU,KAAK;EACf;EACA,MAAM,KAAK;EACX,SAAS,KAAK;CAChB,CAAC;CAEH,OACE,oBAAC,KAAD;EACa;EACL;EACN,UAAU,UAAU;GAClB,IAAI,CAAC,KAAK,SAAS;GACnB,MAAM,eAAe;GACrB,KAAK,QAAQ;EACf;EAEC,UAAA,KAAK;CACL,CAAA;AAEP;AAEA,SAAS,WAAW,EAAE,OAAO,QAAQ,cAAc,cAA+B;CAChF,OACE,oBAAC,OAAD;EAAK,cAAY;EAAO,WAAW,OAAO;EACvC,UAAA,MAAM,KAAK,MAAM,UAAU;GAC1B,MAAM,OAAO,UAAU,MAAM,SAAS;GACtC,MAAM,SAAS,QAAQ,KAAK,IAAI,KAAK,CAAC;GACtC,OACE,qBAAC,QAAD;IAAM,WAAW,KAAK,WAAW,OAAO,WAAW,KAAA;IAAnD,UAAA,CACG,SACC,oBAAC,WAAD;KAAW,WAAW,OAAO;KAAY;KAAkB;IAAa,CAAA,IAExE,oBAAC,QAAD;KACE,gBAAc,OAAO,SAAS,KAAA;KAC9B,WAAW,OAAO,OAAO,OAAO,OAAO;KACvC,OAAO,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAA;KAEpD,UAAA,KAAK;IACF,CAAA,GAEP,QAAQ,MAAM,SAAS,IACtB,oBAAC,QAAD;KAAM,eAAA;KAAY,WAAW,OAAO;KAAW,UAAA;IAEzC,CAAA,IACJ,IACA;GAjB6D,GAAA,GAAG,OAiBhE;EAEV,CAAC;CACE,CAAA;AAET;AAEA,WAAW,cAAc"}