{"version":3,"sources":["../src/index.ts","../src/list-page-layout.tsx","../src/list-toolbar.tsx","../src/query-state-banner.tsx"],"sourcesContent":["export { ListPageLayout, type ListPageLayoutProps } from \"./list-page-layout.js\";\nexport { ListToolbar, type ListToolbarProps } from \"./list-toolbar.js\";\nexport {\n  QueryStateBanner,\n  type QueryStateBannerProps,\n} from \"./query-state-banner.js\";\n","import type { ReactNode } from \"react\";\n\nexport type ListPageLayoutProps = {\n  toolbar?: ReactNode;\n  banner?: ReactNode;\n  children: ReactNode;\n};\n\nexport function ListPageLayout({ toolbar, banner, children }: ListPageLayoutProps) {\n  return (\n    <div className=\"erista-list-page\" data-component=\"list-page-layout\">\n      {toolbar ? <div className=\"erista-list-page__toolbar\">{toolbar}</div> : null}\n      {banner ? <div className=\"erista-list-page__banner\">{banner}</div> : null}\n      <div className=\"erista-list-page__body\">{children}</div>\n    </div>\n  );\n}\n","import type { ReactNode } from \"react\";\n\nexport type ListToolbarProps = {\n  leading?: ReactNode;\n  trailing?: ReactNode;\n  children?: ReactNode;\n};\n\nexport function ListToolbar({ leading, trailing, children }: ListToolbarProps) {\n  return (\n    <div className=\"erista-list-toolbar\" data-component=\"list-toolbar\">\n      {leading ? <div className=\"erista-list-toolbar__leading\">{leading}</div> : null}\n      {children ?? null}\n      {trailing ? <div className=\"erista-list-toolbar__trailing\">{trailing}</div> : null}\n    </div>\n  );\n}\n","import type { ReactNode } from \"react\";\n\nexport type QueryStateBannerProps = {\n  isLoading?: boolean;\n  isError?: boolean;\n  isEmpty?: boolean;\n  loadingMessage?: ReactNode;\n  errorMessage?: ReactNode;\n  emptyMessage?: ReactNode;\n};\n\nexport function QueryStateBanner({\n  isLoading,\n  isError,\n  isEmpty,\n  loadingMessage = \"Loading…\",\n  errorMessage = \"Something went wrong.\",\n  emptyMessage = \"No results.\",\n}: QueryStateBannerProps) {\n  if (isLoading) {\n    return (\n      <div className=\"erista-query-banner\" data-state=\"loading\" role=\"status\">\n        {loadingMessage}\n      </div>\n    );\n  }\n  if (isError) {\n    return (\n      <div className=\"erista-query-banner\" data-state=\"error\" role=\"alert\">\n        {errorMessage}\n      </div>\n    );\n  }\n  if (isEmpty) {\n    return (\n      <div className=\"erista-query-banner\" data-state=\"empty\">\n        {emptyMessage}\n      </div>\n    );\n  }\n  return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACUI;AAFG,SAAS,eAAe,EAAE,SAAS,QAAQ,SAAS,GAAwB;AACjF,SACE,6CAAC,SAAI,WAAU,oBAAmB,kBAAe,oBAC9C;AAAA,cAAU,4CAAC,SAAI,WAAU,6BAA6B,mBAAQ,IAAS;AAAA,IACvE,SAAS,4CAAC,SAAI,WAAU,4BAA4B,kBAAO,IAAS;AAAA,IACrE,4CAAC,SAAI,WAAU,0BAA0B,UAAS;AAAA,KACpD;AAEJ;;;ACNI,IAAAA,sBAAA;AAFG,SAAS,YAAY,EAAE,SAAS,UAAU,SAAS,GAAqB;AAC7E,SACE,8CAAC,SAAI,WAAU,uBAAsB,kBAAe,gBACjD;AAAA,cAAU,6CAAC,SAAI,WAAU,gCAAgC,mBAAQ,IAAS;AAAA,IAC1E,YAAY;AAAA,IACZ,WAAW,6CAAC,SAAI,WAAU,iCAAiC,oBAAS,IAAS;AAAA,KAChF;AAEJ;;;ACKM,IAAAC,sBAAA;AAVC,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,eAAe;AACjB,GAA0B;AACxB,MAAI,WAAW;AACb,WACE,6CAAC,SAAI,WAAU,uBAAsB,cAAW,WAAU,MAAK,UAC5D,0BACH;AAAA,EAEJ;AACA,MAAI,SAAS;AACX,WACE,6CAAC,SAAI,WAAU,uBAAsB,cAAW,SAAQ,MAAK,SAC1D,wBACH;AAAA,EAEJ;AACA,MAAI,SAAS;AACX,WACE,6CAAC,SAAI,WAAU,uBAAsB,cAAW,SAC7C,wBACH;AAAA,EAEJ;AACA,SAAO;AACT;","names":["import_jsx_runtime","import_jsx_runtime"]}