@mindbill/react 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/index.tsx
4
4
  import "@mindbill/embed";
5
- import { createElement, useEffect as useEffect9, useRef as useRef6 } from "react";
5
+ import { createElement, useEffect as useEffect10, useRef as useRef6 } from "react";
6
6
 
7
7
  // src/appearance.ts
8
8
  var mindBillThemePresets = {
@@ -1087,8 +1087,8 @@ var PAYER_TABS = [
1087
1087
  function DirectoryEmpty({ children }) {
1088
1088
  return /* @__PURE__ */ jsx2("p", { className: "mb-read-directory-empty", children });
1089
1089
  }
1090
- function ContactTable({ contacts, empty }) {
1091
- if (!contacts.length) return /* @__PURE__ */ jsx2(DirectoryEmpty, { children: empty });
1090
+ function ContactTable({ contacts: contacts2, empty }) {
1091
+ if (!contacts2.length) return /* @__PURE__ */ jsx2(DirectoryEmpty, { children: empty });
1092
1092
  return /* @__PURE__ */ jsx2("div", { className: "mb-read-directory-table-wrap", children: /* @__PURE__ */ jsxs2("table", { className: "mb-read-directory-table", children: [
1093
1093
  /* @__PURE__ */ jsx2("thead", { children: /* @__PURE__ */ jsxs2("tr", { children: [
1094
1094
  /* @__PURE__ */ jsx2("th", { children: "Name" }),
@@ -1097,7 +1097,7 @@ function ContactTable({ contacts, empty }) {
1097
1097
  /* @__PURE__ */ jsx2("th", { children: "Fax" }),
1098
1098
  /* @__PURE__ */ jsx2("th", { children: "Address" })
1099
1099
  ] }) }),
1100
- /* @__PURE__ */ jsx2("tbody", { children: contacts.map((contact, index) => /* @__PURE__ */ jsxs2("tr", { children: [
1100
+ /* @__PURE__ */ jsx2("tbody", { children: contacts2.map((contact, index) => /* @__PURE__ */ jsxs2("tr", { children: [
1101
1101
  /* @__PURE__ */ jsxs2("td", { children: [
1102
1102
  contact.name || "\u2014",
1103
1103
  contact.note ? /* @__PURE__ */ jsx2("small", { children: contact.note }) : null
@@ -1147,6 +1147,7 @@ function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment
1147
1147
  const [payerOpen, setPayerOpen] = useState2(false);
1148
1148
  const [payerTab, setPayerTab] = useState2("main");
1149
1149
  const { bill, patient, injury } = data;
1150
+ const diagnoses = injury.diagnoses?.length ? injury.diagnoses : (injury.diagnosisCodes ?? []).map((code) => ({ code, description: "" }));
1150
1151
  const provider = bill.billingSnapshot?.billingProvider;
1151
1152
  const clinician = bill.billingSnapshot?.renderingProvider;
1152
1153
  const location = bill.billingSnapshot?.placeOfService;
@@ -1155,18 +1156,18 @@ function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment
1155
1156
  const billingAddress = provider ? [provider.billingStreet, provider.billingCity, provider.billingState, provider.billingZip].filter(Boolean).join(", ") : "";
1156
1157
  const locationAddress = location ? [location.street, location.city, location.state, location.zip].filter(Boolean).join(", ") : "";
1157
1158
  const payerName = data.delivery?.payerName || injury.claimsAdminName || "\u2014";
1158
- const contacts = data.delivery?.contacts;
1159
+ const contacts2 = data.delivery?.contacts;
1159
1160
  const directory = data.delivery?.directory;
1160
- const fallbackContacts = contacts && Object.values(contacts).some(Boolean) ? [{
1161
- name: contacts.adjusterName || "Claims contact",
1162
- ...contacts.adjusterPhone ? { phone: contacts.adjusterPhone } : {},
1163
- ...contacts.adjusterEmail || contacts.claimsEmail ? { email: contacts.adjusterEmail || contacts.claimsEmail } : {},
1164
- ...contacts.faxNumber ? { fax: contacts.faxNumber } : {},
1165
- ...contacts.portalUrl ? { portalUrl: contacts.portalUrl } : {},
1166
- ...contacts.mailingAddress ? { address: contacts.mailingAddress } : {}
1161
+ const fallbackContacts = contacts2 && Object.values(contacts2).some(Boolean) ? [{
1162
+ name: contacts2.adjusterName || "Claims contact",
1163
+ ...contacts2.adjusterPhone ? { phone: contacts2.adjusterPhone } : {},
1164
+ ...contacts2.adjusterEmail || contacts2.claimsEmail ? { email: contacts2.adjusterEmail || contacts2.claimsEmail } : {},
1165
+ ...contacts2.faxNumber ? { fax: contacts2.faxNumber } : {},
1166
+ ...contacts2.portalUrl ? { portalUrl: contacts2.portalUrl } : {},
1167
+ ...contacts2.mailingAddress ? { address: contacts2.mailingAddress } : {}
1167
1168
  }] : [];
1168
1169
  const billReview = directory?.billReview?.length ? directory.billReview : fallbackContacts;
1169
- const mailingAddresses = directory?.mailingAddresses?.length ? directory.mailingAddresses : contacts?.mailingAddress ? [{ company: payerName, address: contacts.mailingAddress }] : [];
1170
+ const mailingAddresses = directory?.mailingAddresses?.length ? directory.mailingAddresses : contacts2?.mailingAddress ? [{ company: payerName, address: contacts2.mailingAddress }] : [];
1170
1171
  useEffect2(() => {
1171
1172
  if (!payerOpen) return;
1172
1173
  const close = (event) => {
@@ -1204,7 +1205,10 @@ function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment
1204
1205
  /* @__PURE__ */ jsx2(Value, { label: "Date of service", children: bill.dosEnd ? `${date(bill.dos)} \u2013 ${date(bill.dosEnd)}` : date(bill.dos) }),
1205
1206
  /* @__PURE__ */ jsx2(Value, { label: "Injury description", wide: true, children: injury.injuryDescription })
1206
1207
  ] }),
1207
- injury.diagnosisCodes?.length ? /* @__PURE__ */ jsx2("div", { className: "mb-read-chips", "aria-label": "Diagnosis codes", children: injury.diagnosisCodes.map((code) => /* @__PURE__ */ jsx2("span", { children: code }, code)) }) : null
1208
+ diagnoses.length ? /* @__PURE__ */ jsx2("div", { className: "mb-read-diagnoses", "aria-label": "Diagnoses", children: diagnoses.map((diagnosis) => /* @__PURE__ */ jsxs2("div", { children: [
1209
+ /* @__PURE__ */ jsx2("strong", { children: diagnosis.code }),
1210
+ diagnosis.description ? /* @__PURE__ */ jsx2("span", { children: diagnosis.description }) : null
1211
+ ] }, diagnosis.code)) }) : null
1208
1212
  ] }),
1209
1213
  /* @__PURE__ */ jsxs2("section", { className: "mb-read-card", children: [
1210
1214
  /* @__PURE__ */ jsx2("h3", { children: "Providers & location" }),
@@ -1288,12 +1292,13 @@ function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment
1288
1292
  ] });
1289
1293
  }
1290
1294
  var READ_ONLY_STYLES = `
1295
+ .mb-read-diagnoses{display:grid;gap:8px;margin-top:16px}.mb-read-diagnoses>div{display:grid;grid-template-columns:minmax(64px,max-content) 1fr;gap:12px;align-items:baseline;border:1px solid var(--mb-border);border-radius:9px;background:#f7f9f8;padding:9px 12px}.mb-read-diagnoses span{color:var(--mb-muted)}
1291
1296
  .mb-readonly-bill{--mb-accent:#176c70;--mb-border:#d7e0df;--mb-surface:#fff;--mb-muted:#607176;color:var(--mb-text,#17282d);font:inherit;display:grid;gap:16px}.mb-readonly-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.mb-readonly-heading h2,.mb-read-card h3{margin:0}.mb-readonly-heading>strong{font-size:1.35rem}.mb-read-card{background:var(--mb-surface);border:1px solid var(--mb-border);border-radius:var(--mb-radius,14px);padding:20px;box-shadow:0 1px 2px rgba(15,40,45,.04)}.mb-read-card h3{font-size:1.05rem;margin-bottom:16px}.mb-read-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 28px;margin:0}.mb-read-value{min-width:0}.mb-read-value.is-wide{grid-column:1/-1}.mb-read-value dt{color:var(--mb-muted);font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.mb-read-value dd{font-weight:600;margin:5px 0 0;overflow-wrap:anywhere}.mb-read-payer{border:0;border-bottom:1px dotted currentColor;background:transparent;color:inherit;padding:0;font:inherit;font-weight:inherit;text-align:left;cursor:pointer}.mb-read-payer:hover{color:var(--mb-accent)}.mb-read-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.mb-read-chips span{border:1px solid var(--mb-border);border-radius:999px;padding:3px 9px;font-size:.82rem;background:#f7f9f8}.mb-read-lines{border:1px solid var(--mb-border);border-radius:10px;overflow:hidden}.mb-read-line-header,.mb-read-line{display:grid;grid-template-columns:1.2fr 1.5fr .45fr .7fr;gap:16px;align-items:center;padding:12px 14px}.mb-read-line-header{background:#f6f8f7;color:var(--mb-muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.mb-read-line{border-top:1px solid var(--mb-border)}.mb-read-line .mb-read-chips{margin:0}.mb-read-line>span:last-child,.mb-read-line>strong:last-child{text-align:right}.mb-read-total{display:flex;justify-content:flex-end;gap:24px;border-top:1px solid var(--mb-border);padding:13px 14px}.mb-read-documents{list-style:none;padding:0;margin:0;display:grid}.mb-read-documents li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--mb-border)}.mb-read-documents li:first-child{border-top:0;padding-top:0}.mb-read-documents li:last-child{padding-bottom:0}.mb-read-documents div{display:grid;gap:3px;min-width:0}.mb-read-documents strong{overflow-wrap:anywhere}.mb-read-documents span,.mb-read-empty{color:var(--mb-muted)}.mb-read-documents button{border:1px solid var(--mb-border);border-radius:8px;background:transparent;color:inherit;padding:8px 13px;font:inherit;font-weight:650;cursor:pointer}.mb-read-documents button:hover{border-color:var(--mb-accent);color:var(--mb-accent)}.mb-read-dialog-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(11,28,32,.46);padding:20px}.mb-read-dialog{width:min(1040px,100%);min-height:min(620px,calc(100vh - 40px));max-height:calc(100vh - 40px);overflow:auto;border:1px solid var(--mb-border);border-radius:var(--mb-radius,14px);background:var(--mb-surface);padding:22px;box-shadow:0 22px 70px rgba(8,25,29,.24)}.mb-read-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.mb-read-dialog header span{display:block;margin-top:4px;color:var(--mb-muted);font-size:.78rem}.mb-read-dialog h3{margin:0;font-size:1.35rem}.mb-read-dialog header button{border:0;background:transparent;color:inherit;font:inherit;font-size:1.7rem;line-height:1;cursor:pointer}.mb-read-dialog-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-radius:10px;background:var(--mb-soft,#f4f7f6);padding:0 10px}.mb-read-dialog-tabs button{min-height:68px;border:0;border-top:4px solid transparent;background:transparent;color:var(--mb-muted);font:inherit;font-weight:750;cursor:pointer;padding:8px}.mb-read-dialog-tabs button[aria-selected=true]{border-color:var(--mb-accent);background:var(--mb-surface);color:var(--mb-text)}.mb-read-dialog-panel{padding-top:22px}.mb-read-directory-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin:0}.mb-read-directory-main a,.mb-read-directory-table a{color:var(--mb-accent)}.mb-read-directory-table-wrap{border:1px solid var(--mb-border);border-radius:10px;overflow:auto}.mb-read-directory-table{width:100%;border-collapse:collapse;text-align:left}.mb-read-directory-table th,.mb-read-directory-table td{padding:13px 14px;vertical-align:top;border-top:1px solid var(--mb-border)}.mb-read-directory-table th{border-top:0;background:var(--mb-soft,#f4f7f6);color:var(--mb-muted);font-size:.78rem}.mb-read-directory-table td small{display:block;margin-top:4px;color:var(--mb-muted)}.mb-read-directory-empty{margin:0;padding:26px;border:1px dashed var(--mb-border);border-radius:10px;color:var(--mb-muted);text-align:center}.mb-read-match{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:750}.mb-read-match.is-match{background:#eaf7ef;color:#237448}.mb-read-match.is-warning{background:#fff5df;color:#8a5b00}
1292
1297
  @media(max-width:700px){.mb-readonly-heading{align-items:flex-start}.mb-read-grid,.mb-read-directory-main{grid-template-columns:1fr}.mb-read-value.is-wide{grid-column:auto}.mb-read-card{padding:16px}.mb-read-line-header{display:none}.mb-read-line{grid-template-columns:1fr auto;gap:8px}.mb-read-line>*:nth-child(2){grid-column:1/-1}.mb-read-total{justify-content:space-between}.mb-readonly-heading>strong{font-size:1.05rem}.mb-read-dialog-backdrop{place-items:end center;padding:0}.mb-read-dialog{width:100%;min-height:0;max-height:88vh;border-radius:18px 18px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom))}.mb-read-dialog-tabs{display:flex;overflow-x:auto;padding:0}.mb-read-dialog-tabs button{min-width:128px}.mb-read-directory-table-wrap{border:0;overflow:visible}.mb-read-directory-table,.mb-read-directory-table thead,.mb-read-directory-table tbody,.mb-read-directory-table tr,.mb-read-directory-table th,.mb-read-directory-table td{display:block}.mb-read-directory-table thead{display:none}.mb-read-directory-table tr{border:1px solid var(--mb-border);border-radius:10px;margin-bottom:10px;overflow:hidden}.mb-read-directory-table td{border-top:1px solid var(--mb-border)}.mb-read-directory-table td:first-child{border-top:0}}
1293
1298
  `;
1294
1299
 
1295
1300
  // src/bill-submission-form.tsx
1296
- import { createContext, useCallback, useContext, useEffect as useEffect4, useMemo as useMemo3, useRef as useRef2, useState as useState4 } from "react";
1301
+ import { createContext, useCallback, useContext, useEffect as useEffect5, useMemo as useMemo3, useRef as useRef2, useState as useState5 } from "react";
1297
1302
  import {
1298
1303
  createBillReferenceClient,
1299
1304
  createBillSubmissionClient,
@@ -1689,6 +1694,136 @@ function SendRouteDialog({
1689
1694
  ] });
1690
1695
  }
1691
1696
 
1697
+ // src/claims-administrator-directory-dialog.tsx
1698
+ import { useEffect as useEffect4, useState as useState4 } from "react";
1699
+ import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
1700
+ var css2 = `
1701
+ .mbcad-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:24px;background:rgba(17,28,38,.44)}
1702
+ .mbcad-dialog{display:grid;grid-template-rows:auto auto minmax(0,1fr);width:min(1180px,100%);max-height:min(860px,92vh);overflow:hidden;border:1px solid var(--mb-border);border-radius:14px;background:var(--mb-surface);color:var(--mb-text);box-shadow:0 28px 80px rgba(14,31,43,.28);font-family:var(--mb-font)}
1703
+ .mbcad-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--mb-border)}.mbcad-head h2{margin:0;font-size:24px;line-height:1.2}.mbcad-close{width:40px;height:40px;border:0;border-radius:9px;background:color-mix(in srgb,var(--mb-muted) 9%,var(--mb-surface));color:var(--mb-accent);font:inherit;font-size:28px;line-height:1;cursor:pointer}
1704
+ .mbcad-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:18px 22px 0;border-radius:10px;background:color-mix(in srgb,var(--mb-muted) 8%,var(--mb-surface));overflow:hidden}.mbcad-tab{min-height:64px;padding:10px;border:0;border-right:1px solid var(--mb-border);border-top:4px solid transparent;background:transparent;color:var(--mb-muted);font:inherit;font-weight:750;cursor:pointer}.mbcad-tab:last-child{border-right:0}.mbcad-tab[aria-selected=true]{border-top-color:var(--mb-accent);background:var(--mb-surface);color:var(--mb-text)}
1705
+ .mbcad-body{overflow:auto;padding:24px 22px 28px}.mbcad-grid{display:grid;gap:0;border:1px solid var(--mb-border);border-radius:10px;overflow:hidden}.mbcad-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,2fr);gap:18px;padding:11px 14px;border-bottom:1px solid var(--mb-border)}.mbcad-row:last-child{border-bottom:0}.mbcad-row strong{font-weight:750}.mbcad-list{display:grid;gap:5px;margin:0;padding:0;list-style:none}.mbcad-list a,.mbcad-table a{color:var(--mb-accent);overflow-wrap:anywhere}.mbcad-table{width:100%;border-collapse:collapse;border:1px solid var(--mb-border);border-radius:10px;overflow:hidden}.mbcad-table th,.mbcad-table td{padding:13px 14px;border-bottom:1px solid var(--mb-border);text-align:left;vertical-align:top}.mbcad-table th{background:color-mix(in srgb,var(--mb-muted) 7%,var(--mb-surface));font-size:13px}.mbcad-empty{padding:36px;text-align:center;color:var(--mb-muted)}.mbcad-notice{padding:14px 16px;border:1px solid color-mix(in srgb,var(--mb-accent) 70%,var(--mb-border));border-radius:9px;background:color-mix(in srgb,var(--mb-accent) 5%,var(--mb-surface));font-weight:650}
1706
+ @media(max-width:760px){.mbcad-backdrop{padding:8px}.mbcad-dialog{max-height:96vh}.mbcad-head{padding:14px}.mbcad-head h2{font-size:19px}.mbcad-tabs{display:flex;overflow-x:auto;margin:10px 12px 0}.mbcad-tab{min-width:145px}.mbcad-body{padding:14px 12px 18px}.mbcad-row{grid-template-columns:1fr;gap:5px}.mbcad-table{display:block;overflow-x:auto}}
1707
+ `;
1708
+ function outbound(value, kind) {
1709
+ const href = kind === "phone" ? `tel:${value.replace(/[^+\d]/g, "")}` : kind === "email" ? `mailto:${value}` : /^https?:\/\//i.test(value) ? value : `https://${value}`;
1710
+ return /* @__PURE__ */ jsx4("a", { href, ...kind === "url" ? { target: "_blank", rel: "noreferrer" } : {}, children: value });
1711
+ }
1712
+ function list(values, kind) {
1713
+ return values?.length ? /* @__PURE__ */ jsx4("ul", { className: "mbcad-list", children: values.map((value, index) => /* @__PURE__ */ jsx4("li", { children: kind ? outbound(value, kind) : value }, `${value}-${index}`)) }) : "\u2014";
1714
+ }
1715
+ function Main({ directory }) {
1716
+ return /* @__PURE__ */ jsx4("div", { className: "mbcad-grid", children: [
1717
+ ["Name", directory.name ?? "\u2014"],
1718
+ ["Description", directory.description ?? "\u2014"],
1719
+ ["Type", directory.type ?? "\u2014"],
1720
+ ["Website", directory.website ? outbound(directory.website, "url") : "\u2014"],
1721
+ ["Also known as", list(directory.aliases)],
1722
+ ["Affiliated entities", list(directory.affiliatedEntities)],
1723
+ ["Hours of operation", directory.hours ?? "\u2014"],
1724
+ ["Telephone numbers", list(directory.telephoneNumbers, "phone")],
1725
+ ["Email addresses", list(directory.emailAddresses, "email")],
1726
+ ["Web portals", list(directory.webPortals, "url")],
1727
+ ["Payers", directory.payers?.length ? /* @__PURE__ */ jsx4("ul", { className: "mbcad-list", children: directory.payers.map((payer, index) => /* @__PURE__ */ jsxs4("li", { children: [
1728
+ /* @__PURE__ */ jsx4("strong", { children: payer.name }),
1729
+ payer.daisyBillPayerId ? ` \xB7 daisyBill Payer ID ${payer.daisyBillPayerId}` : "",
1730
+ payer.route ? ` \xB7 ${payer.route}` : "",
1731
+ payer.hint ? /* @__PURE__ */ jsx4("small", { children: payer.hint }) : null
1732
+ ] }, `${payer.name}-${index}`)) }) : "\u2014"],
1733
+ ["Bill processing workflow", directory.billProcessingWorkflow ?? "\u2014"],
1734
+ ["Bill processing workflow notes", directory.billProcessingWorkflowNotes ?? "\u2014"],
1735
+ ["Claim number hint", directory.claimNumberHint ?? "\u2014"]
1736
+ ].map(([label, value]) => /* @__PURE__ */ jsxs4("div", { className: "mbcad-row", children: [
1737
+ /* @__PURE__ */ jsx4("strong", { children: label }),
1738
+ /* @__PURE__ */ jsx4("div", { children: value })
1739
+ ] }, label)) });
1740
+ }
1741
+ function contacts(items, empty) {
1742
+ if (!items?.length) return /* @__PURE__ */ jsx4("div", { className: "mbcad-empty", children: empty });
1743
+ return /* @__PURE__ */ jsxs4("table", { className: "mbcad-table", children: [
1744
+ /* @__PURE__ */ jsx4("thead", { children: /* @__PURE__ */ jsxs4("tr", { children: [
1745
+ /* @__PURE__ */ jsx4("th", { children: "Name" }),
1746
+ /* @__PURE__ */ jsx4("th", { children: "Telephone" }),
1747
+ /* @__PURE__ */ jsx4("th", { children: "Web portal" }),
1748
+ /* @__PURE__ */ jsx4("th", { children: "Email" }),
1749
+ /* @__PURE__ */ jsx4("th", { children: "Fax" }),
1750
+ /* @__PURE__ */ jsx4("th", { children: "Address / note" })
1751
+ ] }) }),
1752
+ /* @__PURE__ */ jsx4("tbody", { children: items.map((item, index) => /* @__PURE__ */ jsxs4("tr", { children: [
1753
+ /* @__PURE__ */ jsx4("td", { children: item.name ?? "\u2014" }),
1754
+ /* @__PURE__ */ jsx4("td", { children: item.phone ? outbound(item.phone, "phone") : "\u2014" }),
1755
+ /* @__PURE__ */ jsx4("td", { children: item.portalUrl ? outbound(item.portalUrl, "url") : "\u2014" }),
1756
+ /* @__PURE__ */ jsx4("td", { children: item.email ? outbound(item.email, "email") : "\u2014" }),
1757
+ /* @__PURE__ */ jsx4("td", { children: item.fax ?? "\u2014" }),
1758
+ /* @__PURE__ */ jsx4("td", { children: [item.address, item.note].filter(Boolean).join(" \xB7 ") || "\u2014" })
1759
+ ] }, `${item.name ?? "contact"}-${index}`)) })
1760
+ ] });
1761
+ }
1762
+ function ClaimsAdministratorDirectoryDialog({ open, directory, loading = false, error, onClose }) {
1763
+ const [tab, setTab] = useState4("main");
1764
+ useEffect4(() => {
1765
+ if (open) setTab("main");
1766
+ }, [open, directory?.id]);
1767
+ useEffect4(() => {
1768
+ if (!open) return;
1769
+ const close = (event) => {
1770
+ if (event.key === "Escape") onClose();
1771
+ };
1772
+ window.addEventListener("keydown", close);
1773
+ return () => window.removeEventListener("keydown", close);
1774
+ }, [onClose, open]);
1775
+ if (!open) return null;
1776
+ const title = directory?.name ?? "Claims administrator directory";
1777
+ return /* @__PURE__ */ jsxs4("div", { className: "mbcad-backdrop", onMouseDown: (event) => {
1778
+ if (event.target === event.currentTarget) onClose();
1779
+ }, children: [
1780
+ /* @__PURE__ */ jsx4("style", { children: css2 }),
1781
+ /* @__PURE__ */ jsxs4("section", { className: "mbcad-dialog", role: "dialog", "aria-modal": "true", "aria-labelledby": "mbcad-title", children: [
1782
+ /* @__PURE__ */ jsxs4("header", { className: "mbcad-head", children: [
1783
+ /* @__PURE__ */ jsx4("h2", { id: "mbcad-title", children: title }),
1784
+ /* @__PURE__ */ jsx4("button", { className: "mbcad-close", type: "button", "aria-label": "Close claims administrator details", onClick: onClose, children: "\xD7" })
1785
+ ] }),
1786
+ /* @__PURE__ */ jsx4("div", { className: "mbcad-tabs", role: "tablist", children: [
1787
+ ["main", "Main"],
1788
+ ["bill-review", "Bill Review"],
1789
+ ["authorization", "Authorization Info"],
1790
+ ["mailing", "Mailing Address"],
1791
+ ["patterns", "Claim Number Pattern"]
1792
+ ].map(([id, label]) => /* @__PURE__ */ jsx4("button", { className: "mbcad-tab", type: "button", role: "tab", "aria-selected": tab === id, onClick: () => setTab(id), children: label }, id)) }),
1793
+ /* @__PURE__ */ jsx4("div", { className: "mbcad-body", role: "tabpanel", children: loading ? /* @__PURE__ */ jsx4("div", { className: "mbcad-empty", children: "Loading directory details\u2026" }) : error ? /* @__PURE__ */ jsx4("div", { className: "mbcad-empty", role: "alert", children: error }) : !directory ? /* @__PURE__ */ jsx4("div", { className: "mbcad-empty", children: "Directory details are unavailable." }) : tab === "main" ? /* @__PURE__ */ jsx4(Main, { directory }) : tab === "bill-review" ? contacts(directory.billReview, "No bill-review contacts are listed.") : tab === "authorization" ? /* @__PURE__ */ jsxs4(Fragment3, { children: [
1794
+ directory.authorizationNotice ? /* @__PURE__ */ jsx4("p", { className: "mbcad-notice", children: directory.authorizationNotice }) : null,
1795
+ contacts(directory.authorization, "No authorization contacts are listed.")
1796
+ ] }) : tab === "mailing" ? directory.mailingAddresses?.length ? /* @__PURE__ */ jsxs4("table", { className: "mbcad-table", children: [
1797
+ /* @__PURE__ */ jsx4("thead", { children: /* @__PURE__ */ jsxs4("tr", { children: [
1798
+ /* @__PURE__ */ jsx4("th", { children: "Company" }),
1799
+ /* @__PURE__ */ jsx4("th", { children: "Address" }),
1800
+ /* @__PURE__ */ jsx4("th", { children: "Notes" }),
1801
+ /* @__PURE__ */ jsx4("th", { children: "Bill treatment types" }),
1802
+ /* @__PURE__ */ jsx4("th", { children: "Submission type" })
1803
+ ] }) }),
1804
+ /* @__PURE__ */ jsx4("tbody", { children: directory.mailingAddresses.map((item, index) => /* @__PURE__ */ jsxs4("tr", { children: [
1805
+ /* @__PURE__ */ jsx4("td", { children: item.company ?? "\u2014" }),
1806
+ /* @__PURE__ */ jsx4("td", { children: item.address }),
1807
+ /* @__PURE__ */ jsx4("td", { children: item.notes ?? "\u2014" }),
1808
+ /* @__PURE__ */ jsx4("td", { children: item.billTreatmentTypes?.join(", ") || "\u2014" }),
1809
+ /* @__PURE__ */ jsx4("td", { children: item.submissionTypes?.join(", ") || "\u2014" })
1810
+ ] }, `${item.address}-${index}`)) })
1811
+ ] }) : /* @__PURE__ */ jsx4("div", { className: "mbcad-empty", children: "No mailing addresses are listed." }) : directory.claimNumberPatterns?.length ? /* @__PURE__ */ jsxs4("table", { className: "mbcad-table", children: [
1812
+ /* @__PURE__ */ jsx4("thead", { children: /* @__PURE__ */ jsxs4("tr", { children: [
1813
+ /* @__PURE__ */ jsx4("th", { children: "Length" }),
1814
+ /* @__PURE__ */ jsx4("th", { children: "Pattern" }),
1815
+ /* @__PURE__ */ jsx4("th", { children: "Example" })
1816
+ ] }) }),
1817
+ /* @__PURE__ */ jsx4("tbody", { children: directory.claimNumberPatterns.map((item, index) => /* @__PURE__ */ jsxs4("tr", { children: [
1818
+ /* @__PURE__ */ jsx4("td", { children: item.length ?? "\u2014" }),
1819
+ /* @__PURE__ */ jsx4("td", { children: item.pattern }),
1820
+ /* @__PURE__ */ jsx4("td", { children: item.example ?? "\u2014" })
1821
+ ] }, `${item.pattern}-${index}`)) })
1822
+ ] }) : /* @__PURE__ */ jsx4("div", { className: "mbcad-empty", children: "No claim-number patterns are listed." }) })
1823
+ ] })
1824
+ ] });
1825
+ }
1826
+
1692
1827
  // src/billing-catalog.ts
1693
1828
  var DEFAULT_BILL_SUBMISSION_PROCEDURES = [
1694
1829
  { code: "ML200", description: "Missed appointment for a medical-legal evaluation", allowedAmount: 503.75 },
@@ -1850,7 +1985,7 @@ function calculateBillSubmissionAllowedAmount(line, procedures = DEFAULT_BILL_SU
1850
1985
  }
1851
1986
 
1852
1987
  // src/bill-submission-form.tsx
1853
- import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
1988
+ import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
1854
1989
  var BILL_SUBMISSION_DOCUMENT_TYPES = [
1855
1990
  "final_report",
1856
1991
  "proof_of_service",
@@ -2177,12 +2312,12 @@ function validateBillSubmission(bill) {
2177
2312
  });
2178
2313
  return { valid: Object.keys(errors).length === 0, fieldErrors: errors };
2179
2314
  }
2180
- var css2 = `
2315
+ var css3 = `
2181
2316
  .mbsf{display:grid;gap:20px;color:var(--mb-text);font-family:var(--mb-font);font-size:15px}.mbsf *{box-sizing:border-box}
2182
2317
  .mbsf-attention{padding:14px 16px;border-left:4px solid var(--mb-danger);border-radius:var(--mb-control-radius);background:color-mix(in srgb,var(--mb-danger) 8%,var(--mb-surface));color:var(--mb-text)}.mbsf [data-attention=true] .mbsf-input,.mbsf [data-attention=true] .mbsf-select,.mbsf [data-attention=true].mbsf-lines{border-color:var(--mb-danger);background:color-mix(in srgb,var(--mb-danger) 4%,var(--mb-input))}.mbsf [data-attention=true]>.mbsf-label{color:var(--mb-danger)}
2183
2318
  .mbsf-head,.mbsf-section-head,.mbsf-attach-row,.mbsf-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.mbsf-title{margin:0;font-size:24px}.mbsf-copy,.mbsf-help{color:var(--mb-muted);margin:5px 0 0}.mbsf-required{font-size:13px;color:var(--mb-muted);white-space:nowrap}.mbsf-star,.mbsf-error{color:var(--mb-danger)}
2184
2319
  .mbsf-card{min-width:0;margin:0;padding:24px;border:1px solid var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);box-shadow:var(--mb-shadow)}.mbsf-card[data-invalid=true]{border-color:var(--mb-danger)}.mbsf-legend{padding:0 10px;font-size:18px;font-weight:760}.mbsf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}.mbsf-subhead{grid-column:1/-1;margin:6px 0 -2px;padding-top:14px;border-top:1px solid var(--mb-border);font-size:15px;font-weight:780;letter-spacing:.01em}.mbsf-subhead:first-child{margin-top:0;padding-top:0;border-top:0}.mbsf-span{grid-column:1/-1}.mbsf-field{display:grid;align-content:start;gap:7px;min-width:0}.mbsf-label{font-weight:680}.mbsf-input,.mbsf-select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-input);color:var(--mb-text);font:inherit}.mbsf-input:focus,.mbsf-select:focus{outline:3px solid color-mix(in srgb,var(--mb-accent) 22%,transparent);border-color:var(--mb-accent)}.mbsf-field[data-invalid=true] .mbsf-input,.mbsf-field[data-invalid=true] .mbsf-select,.mbsf-invalid-control .mbsf-input{border-color:var(--mb-danger);background:color-mix(in srgb,var(--mb-danger) 4%,var(--mb-input))}.mbsf-field[data-invalid=true] .mbsf-input:focus,.mbsf-field[data-invalid=true] .mbsf-select:focus{outline-color:color-mix(in srgb,var(--mb-danger) 24%,transparent)}
2185
- .mbsf-combo{position:relative}.mbsf-menu{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:min(360px,46vh);overflow:auto;overscroll-behavior:contain;padding:7px;border:1px solid var(--mb-border);border-radius:12px;background:var(--mb-surface);box-shadow:0 14px 35px rgba(17,38,49,.16)}.mbsf-option{display:grid;width:100%;gap:2px;padding:10px;border:0;border-radius:8px;background:transparent;color:var(--mb-text);font:inherit;text-align:left;cursor:pointer}.mbsf-option:hover,.mbsf-option:focus{background:color-mix(in srgb,var(--mb-accent) 9%,var(--mb-surface))}.mbsf-option small{color:var(--mb-muted)}.mbsf-menu-status{padding:12px;text-align:center;color:var(--mb-muted);font-size:13px}
2320
+ .mbsf-combo{position:relative}.mbsf-menu{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:min(360px,46vh);overflow:auto;overscroll-behavior:contain;padding:7px;border:1px solid var(--mb-border);border-radius:12px;background:var(--mb-surface);box-shadow:0 14px 35px rgba(17,38,49,.16)}.mbsf-option{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;width:100%;padding:10px;border:0;border-radius:8px;background:transparent;color:var(--mb-text);font:inherit;text-align:left;cursor:pointer}.mbsf-option:hover,.mbsf-option:focus{background:color-mix(in srgb,var(--mb-accent) 9%,var(--mb-surface))}.mbsf-option-main{display:grid;gap:2px;min-width:0}.mbsf-option small{color:var(--mb-muted);overflow-wrap:anywhere}.mbsf-option-route{align-self:center;color:var(--mb-accent);font-size:13px;font-weight:750;white-space:nowrap}.mbsf-menu-status{padding:12px;text-align:center;color:var(--mb-muted);font-size:13px}.mbsf-directory-link{justify-self:start;border:0;padding:0;background:transparent;color:var(--mb-accent);font:inherit;font-weight:700;text-align:left;text-decoration:underline;cursor:pointer}
2186
2321
  .mbsf-payer-status{display:flex;align-items:center;gap:7px;color:#087f5b;font-size:13px;font-weight:650}.mbsf-payer-intro{margin:4px 0 0;color:var(--mb-muted)}.mbsf-payer-list{display:grid;gap:8px}.mbsf-payer-option{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:color-mix(in srgb,var(--mb-accent) 3%,var(--mb-surface))}.mbsf-payer-option-main{display:grid;gap:5px;min-width:0}.mbsf-payer-option-main strong{overflow-wrap:anywhere}.mbsf-payer-signals{display:flex;flex-wrap:wrap;gap:6px}.mbsf-payer-signal{padding:2px 7px;border:1px solid var(--mb-border);border-radius:999px;color:var(--mb-muted);font-size:12px}.mbsf-payer-signal[data-state=match]{border-color:color-mix(in srgb,#159447 45%,var(--mb-border));color:#087f5b}.mbsf-payer-signal[data-state=warning]{border-color:color-mix(in srgb,#c56a00 55%,var(--mb-border));color:#9a5200}
2187
2322
  .mbsf-chips,.mbsf-quick-picks{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}.mbsf-chip,.mbsf-quick-pick{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--mb-border);border-radius:999px;background:var(--mb-input)}.mbsf-chip button{border:0;background:transparent;color:var(--mb-muted);cursor:pointer;font:inherit}.mbsf-quick-pick{color:var(--mb-text);font:inherit;cursor:pointer}.mbsf-quick-pick[data-selected=true]{border-color:var(--mb-accent);color:var(--mb-accent)}
2188
2323
  .mbsf-segments{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);overflow:hidden}.mbsf-segment{min-height:44px;border:0;border-right:1px solid var(--mb-border);background:var(--mb-input);color:var(--mb-text);font:inherit;font-weight:700;cursor:pointer}.mbsf-segment:last-child{border-right:0}.mbsf-segment[aria-pressed=true]{background:var(--mb-accent);color:var(--mb-accent-contrast)}
@@ -2191,27 +2326,27 @@ var css2 = `
2191
2326
  @media(max-width:820px){.mbsf{gap:16px}.mbsf-grid{grid-template-columns:1fr}.mbsf-span{grid-column:auto}.mbsf-card{padding:18px 16px}.mbsf-line-head{display:none}.mbsf-line{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:14px;padding:18px 16px}.mbsf-line>div:before{display:block;margin-bottom:6px;color:var(--mb-muted);font-size:12px;font-weight:700;content:attr(data-label)}.mbsf-line>div:nth-child(1),.mbsf-line>div:nth-child(2),.mbsf-line>div:nth-child(3){grid-column:1/-1}.mbsf-money{align-self:end;padding:0 0 12px;text-align:right}.mbsf-line .mbsf-icon-btn{position:absolute;right:8px;bottom:3px}.mbsf-total{padding:16px 18px;gap:24px}.mbsf-head{align-items:flex-start}.mbsf-segments{grid-template-columns:repeat(3,minmax(0,1fr))}.mbsf-segment{min-width:0;padding:8px 4px;border-right:1px solid var(--mb-border);border-bottom:0;font-size:13px}.mbsf-segment:last-child{border-right:0}.mbsf-payer-option{align-items:flex-start}.mbsf-attach-row{align-items:flex-start;flex-wrap:wrap}.mbsf-attach-main{align-items:flex-start;flex-basis:calc(100% - 150px)}.mbsf-attach-type{width:100%;flex-basis:100%;order:3}.mbsf-attach-actions{margin-left:auto}.mbsf-drop{min-height:190px;padding:24px 18px}.mbsf-actions{position:sticky;bottom:86px;z-index:10}.mbsf-submit{width:100%}}
2192
2327
  `;
2193
2328
  function RequiredMark() {
2194
- return /* @__PURE__ */ jsx4("span", { className: "mbsf-star", children: " *" });
2329
+ return /* @__PURE__ */ jsx5("span", { className: "mbsf-star", children: " *" });
2195
2330
  }
2196
- function Field2({ label, required, error, path, span, children }) {
2197
- return /* @__PURE__ */ jsxs4("label", { className: `mbsf-field${span ? " mbsf-span" : ""}`, "data-field-path": path, "data-invalid": Boolean(error), children: [
2198
- /* @__PURE__ */ jsxs4("span", { className: "mbsf-label", children: [
2331
+ function Field2({ label, required, error, invalid, path, span, children }) {
2332
+ return /* @__PURE__ */ jsxs5("label", { className: `mbsf-field${span ? " mbsf-span" : ""}`, "data-field-path": path, "data-invalid": Boolean(error) || invalid, children: [
2333
+ /* @__PURE__ */ jsxs5("span", { className: "mbsf-label", children: [
2199
2334
  label,
2200
- required ? /* @__PURE__ */ jsx4(RequiredMark, {}) : null
2335
+ required ? /* @__PURE__ */ jsx5(RequiredMark, {}) : null
2201
2336
  ] }),
2202
2337
  children,
2203
- error ? /* @__PURE__ */ jsx4("small", { className: "mbsf-error", role: "alert", children: error }) : null
2338
+ error ? /* @__PURE__ */ jsx5("small", { className: "mbsf-error", role: "alert", children: error }) : null
2204
2339
  ] });
2205
2340
  }
2206
2341
  function TextDateInput({ value, onChange, disabled, required, ariaLabel }) {
2207
- const [display, setDisplay] = useState4(() => formatBillSubmissionDate(value));
2208
- const [invalid, setInvalid] = useState4(false);
2209
- useEffect4(() => {
2342
+ const [display, setDisplay] = useState5(() => formatBillSubmissionDate(value));
2343
+ const [invalid, setInvalid] = useState5(false);
2344
+ useEffect5(() => {
2210
2345
  setDisplay(formatBillSubmissionDate(value));
2211
2346
  setInvalid(false);
2212
2347
  }, [value]);
2213
- return /* @__PURE__ */ jsxs4(Fragment3, { children: [
2214
- /* @__PURE__ */ jsx4("input", { className: "mbsf-input", type: "text", inputMode: "numeric", autoComplete: "off", placeholder: "MM/DD/YYYY", "aria-label": ariaLabel, "aria-invalid": invalid, required, disabled, value: display, onChange: (event) => {
2348
+ return /* @__PURE__ */ jsxs5(Fragment4, { children: [
2349
+ /* @__PURE__ */ jsx5("input", { className: "mbsf-input", type: "text", inputMode: "numeric", autoComplete: "off", placeholder: "MM/DD/YYYY", "aria-label": ariaLabel, "aria-invalid": invalid, required, disabled, value: display, onChange: (event) => {
2215
2350
  const next = event.target.value;
2216
2351
  const parsed = parseBillSubmissionDate(next);
2217
2352
  setDisplay(next);
@@ -2219,21 +2354,21 @@ function TextDateInput({ value, onChange, disabled, required, ariaLabel }) {
2219
2354
  if (!next.trim()) onChange("");
2220
2355
  else if (parsed) onChange(parsed);
2221
2356
  }, onBlur: () => setInvalid(Boolean(display && !parseBillSubmissionDate(display))) }),
2222
- invalid ? /* @__PURE__ */ jsx4("small", { className: "mbsf-error", children: "Use MM/DD/YYYY" }) : null
2357
+ invalid ? /* @__PURE__ */ jsx5("small", { className: "mbsf-error", children: "Use MM/DD/YYYY" }) : null
2223
2358
  ] });
2224
2359
  }
2225
2360
  function ComboBox({ value, placeholder, options, disabled, loading, loadingMore, invalid, preserveValueOnOpen = false, onOpen, onQuery, onEndReached, onSelect, createOption, ariaLabel }) {
2226
- const [open, setOpen] = useState4(false);
2227
- const [query, setQuery] = useState4("");
2361
+ const [open, setOpen] = useState5(false);
2362
+ const [query, setQuery] = useState5("");
2228
2363
  const visible = useMemo3(() => {
2229
2364
  const q = query.trim().toLowerCase();
2230
- const matches = q ? options.filter((option) => `${option.id} ${option.label} ${option.detail ?? ""}`.toLowerCase().includes(q)) : options;
2365
+ const matches = q ? options.filter((option) => `${option.id} ${option.label} ${option.detail ?? ""} ${option.trailing ?? ""}`.toLowerCase().includes(q)) : options;
2231
2366
  const custom = createOption?.(query) ?? null;
2232
2367
  return custom && !matches.some((option) => option.id.toUpperCase() === custom.id.toUpperCase()) ? [...matches, custom] : matches;
2233
2368
  }, [createOption, options, query]);
2234
2369
  const showMenu = open && (loading || visible.length > 0 || query.trim().length >= 2);
2235
- return /* @__PURE__ */ jsxs4("div", { className: "mbsf-combo", children: [
2236
- /* @__PURE__ */ jsx4("input", { className: "mbsf-input", role: "combobox", "aria-label": ariaLabel, "aria-invalid": invalid, "aria-expanded": showMenu, autoComplete: "off", disabled, placeholder, value: open ? query : value, onFocus: () => {
2370
+ return /* @__PURE__ */ jsxs5("div", { className: "mbsf-combo", children: [
2371
+ /* @__PURE__ */ jsx5("input", { className: "mbsf-input", role: "combobox", "aria-label": ariaLabel, "aria-invalid": invalid, "aria-expanded": showMenu, autoComplete: "off", disabled, placeholder, value: open ? query : value, onFocus: () => {
2237
2372
  const next = preserveValueOnOpen ? value : "";
2238
2373
  setOpen(true);
2239
2374
  setQuery(next);
@@ -2244,19 +2379,22 @@ function ComboBox({ value, placeholder, options, disabled, loading, loadingMore,
2244
2379
  setQuery(event.target.value);
2245
2380
  onQuery?.(event.target.value);
2246
2381
  }, onBlur: () => setTimeout(() => setOpen(false), 120) }),
2247
- showMenu ? /* @__PURE__ */ jsxs4("div", { className: "mbsf-menu", role: "listbox", onScroll: (event) => {
2382
+ showMenu ? /* @__PURE__ */ jsxs5("div", { className: "mbsf-menu", role: "listbox", onScroll: (event) => {
2248
2383
  const menu = event.currentTarget;
2249
2384
  if (menu.scrollHeight - menu.scrollTop - menu.clientHeight < 120) onEndReached?.();
2250
2385
  }, children: [
2251
- loading && !visible.length ? /* @__PURE__ */ jsx4("div", { className: "mbsf-menu-status", children: "Loading\u2026" }) : visible.length ? visible.map((option) => /* @__PURE__ */ jsxs4("button", { className: "mbsf-option", type: "button", role: "option", onMouseDown: (event) => event.preventDefault(), onClick: () => {
2386
+ loading && !visible.length ? /* @__PURE__ */ jsx5("div", { className: "mbsf-menu-status", children: "Loading\u2026" }) : visible.length ? visible.map((option) => /* @__PURE__ */ jsxs5("button", { className: "mbsf-option", type: "button", role: "option", onMouseDown: (event) => event.preventDefault(), onClick: () => {
2252
2387
  onSelect(option);
2253
2388
  setOpen(false);
2254
2389
  setQuery("");
2255
2390
  }, children: [
2256
- /* @__PURE__ */ jsx4("strong", { children: option.label }),
2257
- option.detail ? /* @__PURE__ */ jsx4("small", { children: option.detail }) : null
2258
- ] }, option.id)) : /* @__PURE__ */ jsx4("div", { className: "mbsf-option", children: "No matches" }),
2259
- loadingMore ? /* @__PURE__ */ jsx4("div", { className: "mbsf-menu-status", children: "Loading more\u2026" }) : null
2391
+ /* @__PURE__ */ jsxs5("span", { className: "mbsf-option-main", children: [
2392
+ /* @__PURE__ */ jsx5("strong", { children: option.label }),
2393
+ option.detail ? /* @__PURE__ */ jsx5("small", { children: option.detail }) : null
2394
+ ] }),
2395
+ option.trailing ? /* @__PURE__ */ jsx5("span", { className: "mbsf-option-route", children: option.trailing }) : null
2396
+ ] }, option.id)) : /* @__PURE__ */ jsx5("div", { className: "mbsf-option", children: "No matches" }),
2397
+ loadingMore ? /* @__PURE__ */ jsx5("div", { className: "mbsf-menu-status", children: "Loading more\u2026" }) : null
2260
2398
  ] }) : null
2261
2399
  ] });
2262
2400
  }
@@ -2325,28 +2463,28 @@ var BillSubmissionSectionsContext = createContext(null);
2325
2463
  function BillSubmissionSection({ id }) {
2326
2464
  const sections = useContext(BillSubmissionSectionsContext);
2327
2465
  if (!sections) throw new Error("Bill submission sections must be rendered inside BillSubmissionForm.");
2328
- return /* @__PURE__ */ jsx4(Fragment3, { children: sections[id] });
2466
+ return /* @__PURE__ */ jsx5(Fragment4, { children: sections[id] });
2329
2467
  }
2330
2468
  function BillSubmissionHeader() {
2331
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "header" });
2469
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "header" });
2332
2470
  }
2333
2471
  function BillSubmissionPatientSection() {
2334
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "patient" });
2472
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "patient" });
2335
2473
  }
2336
2474
  function BillSubmissionClaimSection() {
2337
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "claim" });
2475
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "claim" });
2338
2476
  }
2339
2477
  function BillSubmissionProvidersSection() {
2340
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "providers" });
2478
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "providers" });
2341
2479
  }
2342
2480
  function BillSubmissionServiceLinesSection() {
2343
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "serviceLines" });
2481
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "serviceLines" });
2344
2482
  }
2345
2483
  function BillSubmissionAttachmentsSection() {
2346
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "attachments" });
2484
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "attachments" });
2347
2485
  }
2348
2486
  function BillSubmissionActions() {
2349
- return /* @__PURE__ */ jsx4(BillSubmissionSection, { id: "actions" });
2487
+ return /* @__PURE__ */ jsx5(BillSubmissionSection, { id: "actions" });
2350
2488
  }
2351
2489
  function BillSubmissionForm({
2352
2490
  initialBill,
@@ -2358,6 +2496,8 @@ function BillSubmissionForm({
2358
2496
  apiBaseUrl,
2359
2497
  fetch: fetchOverride,
2360
2498
  onSearchClaimsAdministrators,
2499
+ onGetClaimsAdministratorDirectory,
2500
+ claimsAdministratorHint,
2361
2501
  diagnosisOptions = [],
2362
2502
  onSearchDiagnoses,
2363
2503
  onLookupPostalCode,
@@ -2379,26 +2519,30 @@ function BillSubmissionForm({
2379
2519
  attentionMessage,
2380
2520
  children
2381
2521
  }) {
2382
- const [bill, setBill] = useState4(() => cloneInitialBill(initialBill));
2383
- const [selectedIds, setSelectedIds] = useState4(() => attachments.map((item) => item.id));
2384
- const [removedSourceIds, setRemovedSourceIds] = useState4([]);
2385
- const [uploads, setUploads] = useState4([]);
2386
- const [errors, setErrors] = useState4({});
2387
- const [sourceAttachmentReportTypes, setSourceAttachmentReportTypes] = useState4(() => Object.fromEntries(attachments.flatMap((item) => item.reportTypeCode ? [[item.id, item.reportTypeCode]] : [])));
2388
- const [validationActive, setValidationActive] = useState4(false);
2389
- const [formError, setFormError] = useState4(null);
2390
- const [submitting, setSubmitting] = useState4(false);
2391
- const [routeDialog, setRouteDialog] = useState4(null);
2392
- const [routeError, setRouteError] = useState4(null);
2393
- const [payerResults, setPayerResults] = useState4([]);
2394
- const [payerLoading, setPayerLoading] = useState4(false);
2395
- const [diagnosisResults, setDiagnosisResults] = useState4([]);
2396
- const [diagnosisLoading, setDiagnosisLoading] = useState4(false);
2397
- const [diagnosisLoadingMore, setDiagnosisLoadingMore] = useState4(false);
2398
- const [diagnosisQuery, setDiagnosisQuery] = useState4(null);
2399
- const [diagnosisHasMore, setDiagnosisHasMore] = useState4(true);
2400
- const [postalStatus, setPostalStatus] = useState4(null);
2401
- const [dragActive, setDragActive] = useState4(false);
2522
+ const [bill, setBill] = useState5(() => cloneInitialBill(initialBill));
2523
+ const [selectedIds, setSelectedIds] = useState5(() => attachments.map((item) => item.id));
2524
+ const [removedSourceIds, setRemovedSourceIds] = useState5([]);
2525
+ const [uploads, setUploads] = useState5([]);
2526
+ const [errors, setErrors] = useState5({});
2527
+ const [sourceAttachmentReportTypes, setSourceAttachmentReportTypes] = useState5(() => Object.fromEntries(attachments.flatMap((item) => item.reportTypeCode ? [[item.id, item.reportTypeCode]] : [])));
2528
+ const [validationActive, setValidationActive] = useState5(false);
2529
+ const [formError, setFormError] = useState5(null);
2530
+ const [submitting, setSubmitting] = useState5(false);
2531
+ const [routeDialog, setRouteDialog] = useState5(null);
2532
+ const [routeError, setRouteError] = useState5(null);
2533
+ const [payerResults, setPayerResults] = useState5([]);
2534
+ const [payerLoading, setPayerLoading] = useState5(false);
2535
+ const [directoryOpen, setDirectoryOpen] = useState5(false);
2536
+ const [directory, setDirectory] = useState5(null);
2537
+ const [directoryLoading, setDirectoryLoading] = useState5(false);
2538
+ const [directoryError, setDirectoryError] = useState5(null);
2539
+ const [diagnosisResults, setDiagnosisResults] = useState5([]);
2540
+ const [diagnosisLoading, setDiagnosisLoading] = useState5(false);
2541
+ const [diagnosisLoadingMore, setDiagnosisLoadingMore] = useState5(false);
2542
+ const [diagnosisQuery, setDiagnosisQuery] = useState5(null);
2543
+ const [diagnosisHasMore, setDiagnosisHasMore] = useState5(true);
2544
+ const [postalStatus, setPostalStatus] = useState5(null);
2545
+ const [dragActive, setDragActive] = useState5(false);
2402
2546
  const formRef = useRef2(null);
2403
2547
  const fileInput = useRef2(null);
2404
2548
  const diagnosisRequest = useRef2(0);
@@ -2407,7 +2551,7 @@ function BillSubmissionForm({
2407
2551
  const procedures = useMemo3(() => mergeOptions(DEFAULT_BILL_SUBMISSION_PROCEDURES, procedureOptions), [procedureOptions]);
2408
2552
  const modifiers = useMemo3(() => mergeOptions(DEFAULT_BILL_SUBMISSION_MODIFIERS, modifierOptions), [modifierOptions]);
2409
2553
  const taxonomies = useMemo3(() => mergeOptions(DEFAULT_BILL_SUBMISSION_TAXONOMIES, taxonomyOptions), [taxonomyOptions]);
2410
- const [evaluationType, setEvaluationType] = useState4(() => initialEvaluationType(initialBill));
2554
+ const [evaluationType, setEvaluationType] = useState5(() => initialEvaluationType(initialBill));
2411
2555
  const connected = !onSubmit;
2412
2556
  const referenceClient = useMemo3(() => getSession || sessionEndpoint || connected ? createBillReferenceClient({ getSession, sessionEndpoint, apiBaseUrl, fetch: fetchOverride }) : null, [getSession, sessionEndpoint, apiBaseUrl, fetchOverride, connected]);
2413
2557
  const submissionClient = useMemo3(() => connected ? createBillSubmissionClient({ getSession, sessionEndpoint, apiBaseUrl, fetch: fetchOverride }) : null, [getSession, sessionEndpoint, apiBaseUrl, fetchOverride, connected]);
@@ -2416,7 +2560,7 @@ function BillSubmissionForm({
2416
2560
  const forcedAttachmentReportType = showAttachmentReportTypes ? void 0 : defaultAttachmentReportType ?? MED_LEGAL_REPORT_TYPE_CODE;
2417
2561
  const reportTypeOptions = useMemo3(() => attachmentReportTypes.map((item) => ({ id: item.code, label: item.code.replace(/^OZ:/, ""), detail: item.label })), [attachmentReportTypes]);
2418
2562
  const missingAttachmentReportType = showAttachmentReportTypes && (selectedIds.some((id) => !(sourceAttachmentReportTypes[id] || attachments.find((item) => item.id === id)?.reportTypeCode || defaultAttachmentReportType)) || uploads.some((upload) => !(upload.reportTypeCode || defaultAttachmentReportType)));
2419
- useEffect4(() => {
2563
+ useEffect5(() => {
2420
2564
  setBill(cloneInitialBill(initialBill));
2421
2565
  setEvaluationType(initialEvaluationType(initialBill));
2422
2566
  setSelectedIds(attachments.map((item) => item.id));
@@ -2432,12 +2576,12 @@ function BillSubmissionForm({
2432
2576
  diagnosisRequest.current += 1;
2433
2577
  diagnosisAppendPending.current = false;
2434
2578
  }, [initialBill, attachments]);
2435
- useEffect4(() => {
2579
+ useEffect5(() => {
2436
2580
  if (!validationActive) return;
2437
2581
  const next = validateBillSubmission(bill).fieldErrors;
2438
2582
  setErrors(missingAttachmentReportType ? { ...next, attachments: "Select a report type for every attachment." } : next);
2439
2583
  }, [bill, missingAttachmentReportType, validationActive]);
2440
- useEffect4(() => {
2584
+ useEffect5(() => {
2441
2585
  const root = formRef.current;
2442
2586
  if (!root) return;
2443
2587
  const nodes = Array.from(root.querySelectorAll("[data-field-path]"));
@@ -2465,7 +2609,7 @@ function BillSubmissionForm({
2465
2609
  if (selectedIds.length + uploads.length + files.length > MAX_DOCUMENTS) return setFormError(`A bill can include at most ${MAX_DOCUMENTS} attachments.`);
2466
2610
  setUploads((current) => [...current, ...files.map((file) => ({ file, documentType: "other", ...defaultAttachmentReportType ? { reportTypeCode: defaultAttachmentReportType } : {} }))]);
2467
2611
  }, [defaultAttachmentReportType, selectedIds.length, uploads]);
2468
- useEffect4(() => {
2612
+ useEffect5(() => {
2469
2613
  const over = (event) => {
2470
2614
  if (event.dataTransfer?.types.includes("Files")) {
2471
2615
  event.preventDefault();
@@ -2504,8 +2648,8 @@ function BillSubmissionForm({
2504
2648
  }
2505
2649
  return next;
2506
2650
  })) }));
2507
- const text = (value, onChange, options = {}) => /* @__PURE__ */ jsx4("input", { className: "mbsf-input", disabled: locked, value: value ?? "", onChange: (event) => onChange(event.target.value), ...options });
2508
- const runPayerSearch = useCallback(async (query, autoSelect) => {
2651
+ const text = (value, onChange, options = {}) => /* @__PURE__ */ jsx5("input", { className: "mbsf-input", disabled: locked, value: value ?? "", onChange: (event) => onChange(event.target.value), ...options });
2652
+ const runPayerSearch = useCallback(async (query) => {
2509
2653
  const trimmed = query.trim();
2510
2654
  if (trimmed.length < 2) {
2511
2655
  setPayerResults([]);
@@ -2519,8 +2663,6 @@ function BillSubmissionForm({
2519
2663
  const results = await search(trimmed, bill.claim.claimNumber);
2520
2664
  if (request !== payerRequest.current) return;
2521
2665
  setPayerResults(results);
2522
- const exact = autoSelect ? exactClaimsAdministratorMatch(results, trimmed) : void 0;
2523
- if (exact) setBill((current) => ({ ...current, claim: { ...current.claim, claimsAdministrator: chooseClaimsAdministrator(exact) } }));
2524
2666
  } catch (caught) {
2525
2667
  if (request === payerRequest.current) setFormError(caught instanceof Error ? caught.message : "Claims administrator search is unavailable.");
2526
2668
  } finally {
@@ -2533,13 +2675,8 @@ function BillSubmissionForm({
2533
2675
  if (selected?.id && selected.name === query) return current;
2534
2676
  return { ...current, claim: { ...current.claim, claimsAdministrator: { name: query } } };
2535
2677
  });
2536
- void runPayerSearch(query, true);
2678
+ void runPayerSearch(query);
2537
2679
  };
2538
- useEffect4(() => {
2539
- const payer = bill.claim.claimsAdministrator;
2540
- if (!payer?.name || payer.name.trim().length < 2) return;
2541
- void runPayerSearch(payer.name, !payer.id);
2542
- }, [bill.claim.claimsAdministrator?.id, bill.claim.claimsAdministrator?.name, bill.claim.claimNumber, runPayerSearch]);
2543
2680
  const loadDiagnoses = (query, append = false) => {
2544
2681
  const trimmed = query.trim();
2545
2682
  const search = onSearchDiagnoses ?? referenceClient?.searchDiagnosisCodes;
@@ -2680,226 +2817,224 @@ function BillSubmissionForm({
2680
2817
  }
2681
2818
  }
2682
2819
  const claimsAdministratorError = errors["claim.claimsAdministrator"];
2683
- const selectedPayer = payerResults.find((payer) => payer.id === bill.claim.claimsAdministrator?.id);
2684
- const payerRecommendations = bill.claim.claimsAdministrator?.id ? [] : claimsAdministratorRecommendations(payerResults);
2685
2820
  const choosePayer = (payer) => setBill((current) => ({ ...current, claim: { ...current.claim, claimsAdministrator: chooseClaimsAdministrator(payer) } }));
2686
2821
  const administrator = bill.claim.claimsAdministrator;
2687
2822
  const subpayorOptions = administrator?.payerSelectionRequired ? administrator.payers ?? [] : [];
2688
2823
  const subpayorError = errors["claim.claimsAdministrator.payerId"];
2689
2824
  const selectedSubpayor = subpayorOptions.find((option) => option.id === administrator?.payerId);
2690
2825
  const chooseSubpayor = (payerId) => setBill((current) => current.claim.claimsAdministrator ? { ...current, claim: { ...current.claim, claimsAdministrator: { ...current.claim.claimsAdministrator, payerId } } } : current);
2691
- const headerSection = /* @__PURE__ */ jsxs4("div", { className: "mbsf-head", children: [
2692
- /* @__PURE__ */ jsxs4("div", { children: [
2693
- /* @__PURE__ */ jsx4("h3", { className: "mbsf-title", children: heading }),
2694
- /* @__PURE__ */ jsx4("p", { className: "mbsf-copy", children: description })
2826
+ const openAdministratorDirectory = async () => {
2827
+ if (!administrator?.id) return;
2828
+ setDirectoryOpen(true);
2829
+ setDirectory(null);
2830
+ setDirectoryError(null);
2831
+ setDirectoryLoading(true);
2832
+ try {
2833
+ const load = onGetClaimsAdministratorDirectory ?? referenceClient?.getClaimsAdministratorDirectory;
2834
+ if (!load) throw new Error("Claims administrator details are unavailable.");
2835
+ setDirectory(await load(administrator.id, bill.claim.injuryState));
2836
+ } catch (caught) {
2837
+ setDirectoryError(caught instanceof Error ? caught.message : "Unable to load claims administrator details.");
2838
+ } finally {
2839
+ setDirectoryLoading(false);
2840
+ }
2841
+ };
2842
+ const headerSection = /* @__PURE__ */ jsxs5("div", { className: "mbsf-head", children: [
2843
+ /* @__PURE__ */ jsxs5("div", { children: [
2844
+ /* @__PURE__ */ jsx5("h3", { className: "mbsf-title", children: heading }),
2845
+ /* @__PURE__ */ jsx5("p", { className: "mbsf-copy", children: description })
2695
2846
  ] }),
2696
- /* @__PURE__ */ jsxs4("span", { className: "mbsf-required", children: [
2697
- /* @__PURE__ */ jsx4(RequiredMark, {}),
2847
+ /* @__PURE__ */ jsxs5("span", { className: "mbsf-required", children: [
2848
+ /* @__PURE__ */ jsx5(RequiredMark, {}),
2698
2849
  " Required"
2699
2850
  ] })
2700
2851
  ] });
2701
- const patientSection = /* @__PURE__ */ jsxs4("fieldset", { className: "mbsf-card", disabled: locked, children: [
2702
- /* @__PURE__ */ jsx4("legend", { className: "mbsf-legend", children: "Patient" }),
2703
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-grid", children: [
2704
- /* @__PURE__ */ jsx4(Field2, { path: "patient.firstName", label: "First name", required: true, error: errors["patient.firstName"], children: text(bill.patient.firstName, (firstName) => setBill((c) => ({ ...c, patient: { ...c.patient, firstName } }))) }),
2705
- /* @__PURE__ */ jsx4(Field2, { path: "patient.lastName", label: "Last name", required: true, error: errors["patient.lastName"], children: text(bill.patient.lastName, (lastName) => setBill((c) => ({ ...c, patient: { ...c.patient, lastName } }))) }),
2706
- /* @__PURE__ */ jsx4(Field2, { label: "Middle name", children: text(bill.patient.middleName, (middleName) => setBill((c) => ({ ...c, patient: { ...c.patient, middleName } }))) }),
2707
- /* @__PURE__ */ jsx4(Field2, { label: "Phone (optional)", children: text(bill.patient.phone, (phone) => setBill((c) => ({ ...c, patient: { ...c.patient, phone } })), { type: "tel" }) }),
2708
- /* @__PURE__ */ jsx4(Field2, { path: "patient.dateOfBirth", label: "Date of birth", required: true, error: errors["patient.dateOfBirth"], children: /* @__PURE__ */ jsx4(TextDateInput, { ariaLabel: "Date of birth", value: bill.patient.dateOfBirth, disabled: locked, required: true, onChange: (dateOfBirth) => setBill((c) => ({ ...c, patient: { ...c.patient, dateOfBirth } })) }) }),
2709
- /* @__PURE__ */ jsx4(Field2, { path: "patient.address.line1", label: "Address", required: true, span: true, error: errors["patient.address.line1"], children: text(bill.patient.address.line1, (line1) => setAddress({ line1 }), { placeholder: "Street address" }) }),
2710
- /* @__PURE__ */ jsxs4(Field2, { path: "patient.address.postalCode", label: "ZIP", required: true, error: errors["patient.address.postalCode"], children: [
2852
+ const patientSection = /* @__PURE__ */ jsxs5("fieldset", { className: "mbsf-card", disabled: locked, children: [
2853
+ /* @__PURE__ */ jsx5("legend", { className: "mbsf-legend", children: "Patient" }),
2854
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-grid", children: [
2855
+ /* @__PURE__ */ jsx5(Field2, { path: "patient.firstName", label: "First name", required: true, error: errors["patient.firstName"], children: text(bill.patient.firstName, (firstName) => setBill((c) => ({ ...c, patient: { ...c.patient, firstName } }))) }),
2856
+ /* @__PURE__ */ jsx5(Field2, { path: "patient.lastName", label: "Last name", required: true, error: errors["patient.lastName"], children: text(bill.patient.lastName, (lastName) => setBill((c) => ({ ...c, patient: { ...c.patient, lastName } }))) }),
2857
+ /* @__PURE__ */ jsx5(Field2, { label: "Middle name", children: text(bill.patient.middleName, (middleName) => setBill((c) => ({ ...c, patient: { ...c.patient, middleName } }))) }),
2858
+ /* @__PURE__ */ jsx5(Field2, { label: "Phone (optional)", children: text(bill.patient.phone, (phone) => setBill((c) => ({ ...c, patient: { ...c.patient, phone } })), { type: "tel" }) }),
2859
+ /* @__PURE__ */ jsx5(Field2, { path: "patient.dateOfBirth", label: "Date of birth", required: true, error: errors["patient.dateOfBirth"], children: /* @__PURE__ */ jsx5(TextDateInput, { ariaLabel: "Date of birth", value: bill.patient.dateOfBirth, disabled: locked, required: true, onChange: (dateOfBirth) => setBill((c) => ({ ...c, patient: { ...c.patient, dateOfBirth } })) }) }),
2860
+ /* @__PURE__ */ jsx5(Field2, { path: "patient.address.line1", label: "Address", required: true, span: true, error: errors["patient.address.line1"], children: text(bill.patient.address.line1, (line1) => setAddress({ line1 }), { placeholder: "Street address" }) }),
2861
+ /* @__PURE__ */ jsxs5(Field2, { path: "patient.address.postalCode", label: "ZIP", required: true, error: errors["patient.address.postalCode"], children: [
2711
2862
  text(bill.patient.address.postalCode, updatePostalCode, { maxLength: 10 }),
2712
- postalStatus ? /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: postalStatus }) : null
2863
+ postalStatus ? /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: postalStatus }) : null
2713
2864
  ] }),
2714
- /* @__PURE__ */ jsx4(Field2, { path: "patient.address.city", label: "City", required: true, error: errors["patient.address.city"], children: text(bill.patient.address.city, (city) => setAddress({ city })) }),
2715
- /* @__PURE__ */ jsx4(Field2, { path: "patient.address.state", label: "State", required: true, error: errors["patient.address.state"], children: text(bill.patient.address.state, (state) => setAddress({ state: state.toUpperCase() }), { maxLength: 2 }) })
2865
+ /* @__PURE__ */ jsx5(Field2, { path: "patient.address.city", label: "City", required: true, error: errors["patient.address.city"], children: text(bill.patient.address.city, (city) => setAddress({ city })) }),
2866
+ /* @__PURE__ */ jsx5(Field2, { path: "patient.address.state", label: "State", required: true, error: errors["patient.address.state"], children: text(bill.patient.address.state, (state) => setAddress({ state: state.toUpperCase() }), { maxLength: 2 }) })
2716
2867
  ] })
2717
2868
  ] });
2718
- const claimSection = /* @__PURE__ */ jsxs4("fieldset", { className: "mbsf-card", disabled: locked, children: [
2719
- /* @__PURE__ */ jsx4("legend", { className: "mbsf-legend", children: "Injury & claim" }),
2720
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-grid", children: [
2721
- /* @__PURE__ */ jsx4(Field2, { path: "service.date", label: "Date of service", required: true, error: errors["service.date"], children: /* @__PURE__ */ jsx4(TextDateInput, { ariaLabel: "Date of service", value: bill.service.date, disabled: locked, required: true, onChange: (date2) => setBill((c) => ({ ...c, service: { ...c.service, date: date2 } })) }) }),
2722
- /* @__PURE__ */ jsxs4(Field2, { label: "Treatment authorization # (optional)", children: [
2869
+ const claimSection = /* @__PURE__ */ jsxs5("fieldset", { className: "mbsf-card", disabled: locked, children: [
2870
+ /* @__PURE__ */ jsx5("legend", { className: "mbsf-legend", children: "Injury & claim" }),
2871
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-grid", children: [
2872
+ /* @__PURE__ */ jsx5(Field2, { path: "service.date", label: "Date of service", required: true, error: errors["service.date"], children: /* @__PURE__ */ jsx5(TextDateInput, { ariaLabel: "Date of service", value: bill.service.date, disabled: locked, required: true, onChange: (date2) => setBill((c) => ({ ...c, service: { ...c.service, date: date2 } })) }) }),
2873
+ /* @__PURE__ */ jsxs5(Field2, { label: "Treatment authorization # (optional)", children: [
2723
2874
  text(bill.service.authorizationNumber, (authorizationNumber) => setBill((c) => ({ ...c, service: { ...c.service, authorizationNumber } })), { placeholder: "Utilization-review authorization number" }),
2724
- /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: "Rides on the bill as CMS-1500 Box 23 / 837 REF*G1." })
2875
+ /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "Rides on the bill as CMS-1500 Box 23 / 837 REF*G1." })
2725
2876
  ] }),
2726
- /* @__PURE__ */ jsx4(Field2, { path: "claim.dateOfInjury", label: "Date of injury", required: true, error: errors["claim.dateOfInjury"], children: /* @__PURE__ */ jsx4(TextDateInput, { ariaLabel: "Date of injury", value: bill.claim.dateOfInjury, disabled: locked, required: true, onChange: (dateOfInjury) => setBill((c) => ({ ...c, claim: { ...c.claim, dateOfInjury } })) }) }),
2727
- /* @__PURE__ */ jsx4(Field2, { path: "claim.employer", label: "Employer name", required: true, error: errors["claim.employer"], children: text(bill.claim.employer, (employer) => setBill((c) => ({ ...c, claim: { ...c.claim, employer } }))) }),
2728
- /* @__PURE__ */ jsx4(Field2, { path: "claim.claimNumber", label: "Claim number", required: true, error: errors["claim.claimNumber"], children: text(bill.claim.claimNumber, (claimNumber) => setBill((c) => ({ ...c, claim: { ...c.claim, claimNumber } }))) }),
2729
- /* @__PURE__ */ jsx4(Field2, { label: "WCAB / ADJ number (optional)", children: text(bill.claim.adjNumber, (adjNumber) => setBill((c) => ({ ...c, claim: { ...c.claim, adjNumber } }))) }),
2730
- /* @__PURE__ */ jsxs4(Field2, { path: "claim.claimsAdministrator", label: "Claims administrator", required: true, span: true, error: claimsAdministratorError, children: [
2731
- /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: "Claims administrator", invalid: Boolean(claimsAdministratorError), disabled: locked, loading: payerLoading, preserveValueOnOpen: true, value: bill.claim.claimsAdministrator?.name ?? "", placeholder: "Search the payer directory\u2026", options: payerResults.map((payer) => ({ id: payer.id, label: payer.name, detail: [payer.hasElectronic ? "Electronic" : "Work comp", ...payer.states ?? []].join(" \xB7 ") })), onQuery: searchPayers, onSelect: (option) => choosePayer(payerResults.find((payer) => payer.id === option.id) ?? { id: option.id, name: option.label }) }),
2732
- selectedPayer ? /* @__PURE__ */ jsxs4("div", { className: "mbsf-payer-status", role: "status", children: [
2733
- /* @__PURE__ */ jsx4("strong", { children: "\u2713 Routing match set:" }),
2734
- " ",
2735
- selectedPayer.name
2877
+ /* @__PURE__ */ jsx5(Field2, { path: "claim.dateOfInjury", label: "Date of injury", required: true, error: errors["claim.dateOfInjury"], children: /* @__PURE__ */ jsx5(TextDateInput, { ariaLabel: "Date of injury", value: bill.claim.dateOfInjury, disabled: locked, required: true, onChange: (dateOfInjury) => setBill((c) => ({ ...c, claim: { ...c.claim, dateOfInjury } })) }) }),
2878
+ /* @__PURE__ */ jsx5(Field2, { path: "claim.employer", label: "Employer name", required: true, error: errors["claim.employer"], children: text(bill.claim.employer, (employer) => setBill((c) => ({ ...c, claim: { ...c.claim, employer } }))) }),
2879
+ /* @__PURE__ */ jsx5(Field2, { path: "claim.claimNumber", label: "Claim number", required: true, error: errors["claim.claimNumber"], children: text(bill.claim.claimNumber, (claimNumber) => setBill((c) => ({ ...c, claim: { ...c.claim, claimNumber } }))) }),
2880
+ /* @__PURE__ */ jsx5(Field2, { label: "WCAB / ADJ number (optional)", children: text(bill.claim.adjNumber, (adjNumber) => setBill((c) => ({ ...c, claim: { ...c.claim, adjNumber } }))) }),
2881
+ /* @__PURE__ */ jsxs5(Field2, { path: "claim.claimsAdministrator", label: "Claims administrator", required: true, span: true, error: claimsAdministratorError, invalid: !administrator?.id, children: [
2882
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: "Claims administrator", invalid: Boolean(claimsAdministratorError) || !administrator?.id, disabled: locked, loading: payerLoading, preserveValueOnOpen: true, value: administrator?.name ?? "", placeholder: "Search the claims administrator directory\u2026", options: payerResults.map((payer) => ({ id: payer.id, label: payer.name, detail: [payer.aliases?.length ? `Also known as ${payer.aliases.join(", ")}` : "", payer.claimNumberHint ?? "", payer.affiliatedEntities?.length ? `Affiliated with ${payer.affiliatedEntities.join(", ")}` : ""].filter(Boolean).join(" \xB7 ") || "Claims administrator", ...payer.route ? { trailing: payer.route } : {} })), onQuery: searchPayers, onSelect: (option) => choosePayer(payerResults.find((payer) => payer.id === option.id) ?? { id: option.id, name: option.label }) }),
2883
+ claimsAdministratorHint ? /* @__PURE__ */ jsxs5("small", { className: "mbsf-help", children: [
2884
+ "Claims administrator in your system: ",
2885
+ claimsAdministratorHint
2736
2886
  ] }) : null,
2737
- selectedPayer?.signals?.length ? /* @__PURE__ */ jsx4("div", { className: "mbsf-payer-signals", children: selectedPayer.signals.map((signal, index) => /* @__PURE__ */ jsxs4("span", { "data-state": signal.state, children: [
2738
- signal.state === "match" ? "\u2713" : "!",
2739
- " ",
2740
- signal.label
2741
- ] }, `${signal.kind}-${index}`)) }) : null,
2742
- !selectedPayer && payerRecommendations.length ? /* @__PURE__ */ jsxs4(Fragment3, { children: [
2743
- /* @__PURE__ */ jsxs4("p", { className: "mbsf-payer-intro", children: [
2744
- "Confirm the best routing match for ",
2745
- /* @__PURE__ */ jsx4("strong", { children: bill.claim.claimsAdministrator?.name }),
2746
- ":"
2747
- ] }),
2748
- /* @__PURE__ */ jsx4("div", { className: "mbsf-payer-list", children: payerRecommendations.map((payer) => /* @__PURE__ */ jsxs4("div", { className: "mbsf-payer-option", children: [
2749
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-payer-option-main", children: [
2750
- /* @__PURE__ */ jsx4("strong", { children: payer.name }),
2751
- payer.signals?.length ? /* @__PURE__ */ jsx4("div", { className: "mbsf-payer-signals", children: payer.signals.map((signal, index) => /* @__PURE__ */ jsxs4("span", { "data-state": signal.state, children: [
2752
- signal.state === "match" ? "\u2713" : "!",
2753
- " ",
2754
- signal.label
2755
- ] }, `${signal.kind}-${index}`)) }) : /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: "Directory match" })
2756
- ] }),
2757
- /* @__PURE__ */ jsx4("button", { className: "mbsf-secondary", type: "button", onClick: () => choosePayer(payer), children: "Use" })
2758
- ] }, payer.id)) })
2759
- ] }) : null,
2760
- !selectedPayer && !payerLoading && !payerRecommendations.length && (bill.claim.claimsAdministrator?.name.trim().length ?? 0) >= 2 ? /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: "No confident route selected yet. Search the directory and choose a claims administrator." }) : null
2887
+ administrator?.id ? /* @__PURE__ */ jsxs5("button", { className: "mbsf-directory-link", type: "button", onClick: () => {
2888
+ void openAdministratorDirectory();
2889
+ }, children: [
2890
+ "View contacts and routing details for ",
2891
+ administrator.name
2892
+ ] }) : /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "Search the directory and choose a claims administrator." })
2761
2893
  ] }),
2762
- administrator?.payerSelectionRequired && subpayorOptions.length ? /* @__PURE__ */ jsxs4(Field2, { path: "claim.claimsAdministrator.payerId", label: "Payer", required: true, span: true, error: subpayorError, children: [
2763
- /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: "Payer", invalid: Boolean(subpayorError), disabled: locked, preserveValueOnOpen: true, value: selectedSubpayor?.label ?? "", placeholder: "Select the payer for this claims administrator\u2026", options: subpayorOptions.map((option) => ({ id: option.id, label: option.label, ...option.default ? { detail: "Default" } : {} })), onSelect: (option) => chooseSubpayor(option.id) }),
2764
- selectedSubpayor ? /* @__PURE__ */ jsxs4("div", { className: "mbsf-payer-status", role: "status", children: [
2765
- /* @__PURE__ */ jsx4("strong", { children: "\u2713 Payer set:" }),
2894
+ administrator?.payerSelectionRequired && subpayorOptions.length ? /* @__PURE__ */ jsxs5(Field2, { path: "claim.claimsAdministrator.payerId", label: "Payer", required: true, span: true, error: subpayorError, children: [
2895
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: "Payer", invalid: Boolean(subpayorError), disabled: locked, preserveValueOnOpen: true, value: selectedSubpayor?.label ?? "", placeholder: "Select the payer for this claims administrator\u2026", options: subpayorOptions.map((option) => {
2896
+ const detail = [option.aliases?.length ? `Also known as ${option.aliases.join(", ")}` : "", option.hint ?? "", option.affiliatedEntities?.length ? `Affiliated with ${option.affiliatedEntities.join(", ")}` : "", option.default ? "Default" : ""].filter(Boolean).join(" \xB7 ");
2897
+ return { id: option.id, label: option.label, ...detail ? { detail } : {}, ...option.route ? { trailing: option.route } : {} };
2898
+ }), onSelect: (option) => chooseSubpayor(option.id) }),
2899
+ selectedSubpayor ? /* @__PURE__ */ jsxs5("div", { className: "mbsf-payer-status", role: "status", children: [
2900
+ /* @__PURE__ */ jsx5("strong", { children: "\u2713 Payer set:" }),
2766
2901
  " ",
2767
2902
  selectedSubpayor.label
2768
- ] }) : /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: "This claims administrator routes bills per payer. Choose the payer that should receive this bill." })
2903
+ ] }) : /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "This claims administrator routes bills per payer. Choose the payer that should receive this bill." })
2769
2904
  ] }) : null,
2770
- /* @__PURE__ */ jsx4(Field2, { label: "Injury description (optional)", span: true, children: text(bill.claim.description, (description2) => setBill((c) => ({ ...c, claim: { ...c.claim, description: description2 } }))) }),
2771
- /* @__PURE__ */ jsxs4(Field2, { path: "diagnoses", label: "Diagnosis codes (ICD-10)", required: true, span: true, error: errors.diagnoses, children: [
2772
- /* @__PURE__ */ jsx4("div", { className: "mbsf-quick-picks", "aria-label": "Common diagnosis codes", children: BILL_SUBMISSION_DIAGNOSIS_QUICK_PICKS.map((option) => {
2905
+ /* @__PURE__ */ jsx5(Field2, { label: "Injury description (optional)", span: true, children: text(bill.claim.description, (description2) => setBill((c) => ({ ...c, claim: { ...c.claim, description: description2 } }))) }),
2906
+ /* @__PURE__ */ jsxs5(Field2, { path: "diagnoses", label: "Diagnosis codes (ICD-10)", required: true, span: true, error: errors.diagnoses, children: [
2907
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-quick-picks", "aria-label": "Common diagnosis codes", children: BILL_SUBMISSION_DIAGNOSIS_QUICK_PICKS.map((option) => {
2773
2908
  const selected = (bill.diagnoses ?? []).includes(option.code);
2774
- return /* @__PURE__ */ jsxs4("button", { className: "mbsf-quick-pick", "data-selected": selected, type: "button", "aria-pressed": selected, title: `${option.code} \u2014 ${option.description}`, onClick: () => setBill((current) => ({ ...current, diagnoses: selected ? (current.diagnoses ?? []).filter((code) => code !== option.code) : [.../* @__PURE__ */ new Set([...current.diagnoses ?? [], option.code])] })), children: [
2909
+ return /* @__PURE__ */ jsxs5("button", { className: "mbsf-quick-pick", "data-selected": selected, type: "button", "aria-pressed": selected, title: `${option.code} \u2014 ${option.description}`, onClick: () => setBill((current) => ({ ...current, diagnoses: selected ? (current.diagnoses ?? []).filter((code) => code !== option.code) : [.../* @__PURE__ */ new Set([...current.diagnoses ?? [], option.code])] })), children: [
2775
2910
  selected ? "\u2713" : "+",
2776
2911
  " ",
2777
2912
  option.label
2778
2913
  ] }, option.code);
2779
2914
  }) }),
2780
- /* @__PURE__ */ jsx4("div", { className: "mbsf-chips", children: (bill.diagnoses ?? []).map((code) => {
2915
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-chips", children: (bill.diagnoses ?? []).map((code) => {
2781
2916
  const option = [...BILL_SUBMISSION_DIAGNOSIS_QUICK_PICKS, ...diagnosisChoices].find((item) => item.code === code);
2782
- return /* @__PURE__ */ jsxs4("span", { className: "mbsf-chip", children: [
2783
- /* @__PURE__ */ jsx4("strong", { children: code }),
2917
+ return /* @__PURE__ */ jsxs5("span", { className: "mbsf-chip", children: [
2918
+ /* @__PURE__ */ jsx5("strong", { children: code }),
2784
2919
  option?.description ? ` ${option.description}` : "",
2785
- /* @__PURE__ */ jsx4("button", { type: "button", "aria-label": `Remove ${code}`, onClick: () => setBill((c) => ({ ...c, diagnoses: (c.diagnoses ?? []).filter((item) => item !== code) })), children: "\xD7" })
2920
+ /* @__PURE__ */ jsx5("button", { type: "button", "aria-label": `Remove ${code}`, onClick: () => setBill((c) => ({ ...c, diagnoses: (c.diagnoses ?? []).filter((item) => item !== code) })), children: "\xD7" })
2786
2921
  ] }, code);
2787
2922
  }) }),
2788
- /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: "Add diagnosis code", invalid: Boolean(errors.diagnoses), disabled: locked, loading: diagnosisLoading, loadingMore: diagnosisLoadingMore, value: "", placeholder: bill.diagnoses?.length ?? 0 ? `${bill.diagnoses.length} selected \u2014 add more\u2026` : "Search ICD-10 codes\u2026", options: diagnosisChoices.filter((item) => !(bill.diagnoses ?? []).includes(item.code)).map((item) => ({ id: item.code, label: item.code, detail: item.description })), onOpen: () => {
2923
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: "Add diagnosis code", invalid: Boolean(errors.diagnoses), disabled: locked, loading: diagnosisLoading, loadingMore: diagnosisLoadingMore, value: "", placeholder: bill.diagnoses?.length ?? 0 ? `${bill.diagnoses.length} selected \u2014 add more\u2026` : "Search ICD-10 codes\u2026", options: diagnosisChoices.filter((item) => !(bill.diagnoses ?? []).includes(item.code)).map((item) => ({ id: item.code, label: item.code, detail: item.description })), onOpen: () => {
2789
2924
  if (diagnosisQuery !== "") loadDiagnoses("");
2790
2925
  }, onQuery: searchDiagnoses, onEndReached: () => loadDiagnoses(diagnosisQuery ?? "", true), onSelect: (option) => setBill((c) => ({ ...c, diagnoses: [.../* @__PURE__ */ new Set([...c.diagnoses ?? [], option.id])] })) })
2791
2926
  ] })
2792
2927
  ] })
2793
2928
  ] });
2794
- const providersSection = /* @__PURE__ */ jsxs4("fieldset", { className: "mbsf-card", disabled: locked, children: [
2795
- /* @__PURE__ */ jsx4("legend", { className: "mbsf-legend", children: "Providers & place of service" }),
2796
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-grid", children: [
2797
- /* @__PURE__ */ jsx4("h4", { className: "mbsf-subhead", children: "Billing provider" }),
2798
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.name", label: "Billing provider name", required: true, error: errors["billingProvider.name"], children: text(bill.billingProvider?.name, (name) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, name } }))) }),
2799
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.taxId", label: "Tax ID (EIN / SSN)", required: true, error: errors["billingProvider.taxId"], children: text(bill.billingProvider?.taxId, (taxId) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, taxId } })), { inputMode: "numeric" }) }),
2800
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.npi", label: "Billing provider NPI", required: true, error: errors["billingProvider.npi"], children: text(bill.billingProvider?.npi, (npi) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, npi } })), { inputMode: "numeric", maxLength: 10 }) }),
2801
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.phone", label: "Billing provider phone", required: true, error: errors["billingProvider.phone"], children: text(bill.billingProvider?.phone, (phone) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, phone } })), { type: "tel" }) }),
2802
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.address.line1", label: "Billing address line 1", required: true, span: true, error: errors["billingProvider.address.line1"], children: text(bill.billingProvider?.address?.line1, (line1) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1, line2: c.billingProvider?.address?.line2 ?? "", city: c.billingProvider?.address?.city ?? "", state: c.billingProvider?.address?.state ?? "", postalCode: c.billingProvider?.address?.postalCode ?? "" } } }))) }),
2803
- /* @__PURE__ */ jsx4(Field2, { label: "Billing address line 2 (optional)", span: true, children: text(bill.billingProvider?.address?.line2, (line2) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2, city: c.billingProvider?.address?.city ?? "", state: c.billingProvider?.address?.state ?? "", postalCode: c.billingProvider?.address?.postalCode ?? "" } } }))) }),
2804
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.address.city", label: "Billing city", required: true, error: errors["billingProvider.address.city"], children: text(bill.billingProvider?.address?.city, (city) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2: c.billingProvider?.address?.line2 ?? "", city, state: c.billingProvider?.address?.state ?? "", postalCode: c.billingProvider?.address?.postalCode ?? "" } } }))) }),
2805
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.address.state", label: "Billing state", required: true, error: errors["billingProvider.address.state"], children: text(bill.billingProvider?.address?.state, (state) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2: c.billingProvider?.address?.line2 ?? "", city: c.billingProvider?.address?.city ?? "", state: state.toUpperCase(), postalCode: c.billingProvider?.address?.postalCode ?? "" } } })), { maxLength: 2 }) }),
2806
- /* @__PURE__ */ jsx4(Field2, { path: "billingProvider.address.postalCode", label: "Billing ZIP", required: true, error: errors["billingProvider.address.postalCode"], children: text(bill.billingProvider?.address?.postalCode, (postalCode) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2: c.billingProvider?.address?.line2 ?? "", city: c.billingProvider?.address?.city ?? "", state: c.billingProvider?.address?.state ?? "", postalCode } } }))) }),
2807
- /* @__PURE__ */ jsx4("h4", { className: "mbsf-subhead", children: "Rendering provider" }),
2808
- /* @__PURE__ */ jsx4(Field2, { path: "renderingProvider.name", label: "Rendering provider name", required: true, error: errors["renderingProvider.name"], children: text(bill.renderingProvider?.name, (name) => setBill((c) => ({ ...c, renderingProvider: { ...c.renderingProvider, name } }))) }),
2809
- /* @__PURE__ */ jsx4(Field2, { path: "renderingProvider.npi", label: "Rendering provider NPI", required: true, error: errors["renderingProvider.npi"], children: text(bill.renderingProvider?.npi, (npi) => setBill((c) => ({ ...c, renderingProvider: { ...c.renderingProvider, npi } })), { inputMode: "numeric", maxLength: 10 }) }),
2810
- /* @__PURE__ */ jsxs4(Field2, { path: "renderingProvider.taxonomy", label: "Rendering taxonomy", required: true, error: errors["renderingProvider.taxonomy"], children: [
2811
- /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: "Rendering taxonomy", invalid: Boolean(errors["renderingProvider.taxonomy"]), disabled: locked, preserveValueOnOpen: true, value: bill.renderingProvider?.taxonomy ?? "", placeholder: "Search specialty name or taxonomy code\u2026", options: taxonomies.map((item) => ({ id: item.code, label: item.description, detail: item.code })), createOption: (query) => {
2929
+ const providersSection = /* @__PURE__ */ jsxs5("fieldset", { className: "mbsf-card", disabled: locked, children: [
2930
+ /* @__PURE__ */ jsx5("legend", { className: "mbsf-legend", children: "Providers & place of service" }),
2931
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-grid", children: [
2932
+ /* @__PURE__ */ jsx5("h4", { className: "mbsf-subhead", children: "Billing provider" }),
2933
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.name", label: "Billing provider name", required: true, error: errors["billingProvider.name"], children: text(bill.billingProvider?.name, (name) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, name } }))) }),
2934
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.taxId", label: "Tax ID (EIN / SSN)", required: true, error: errors["billingProvider.taxId"], children: text(bill.billingProvider?.taxId, (taxId) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, taxId } })), { inputMode: "numeric" }) }),
2935
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.npi", label: "Billing provider NPI", required: true, error: errors["billingProvider.npi"], children: text(bill.billingProvider?.npi, (npi) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, npi } })), { inputMode: "numeric", maxLength: 10 }) }),
2936
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.phone", label: "Billing provider phone", required: true, error: errors["billingProvider.phone"], children: text(bill.billingProvider?.phone, (phone) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, phone } })), { type: "tel" }) }),
2937
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.address.line1", label: "Billing address line 1", required: true, span: true, error: errors["billingProvider.address.line1"], children: text(bill.billingProvider?.address?.line1, (line1) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1, line2: c.billingProvider?.address?.line2 ?? "", city: c.billingProvider?.address?.city ?? "", state: c.billingProvider?.address?.state ?? "", postalCode: c.billingProvider?.address?.postalCode ?? "" } } }))) }),
2938
+ /* @__PURE__ */ jsx5(Field2, { label: "Billing address line 2 (optional)", span: true, children: text(bill.billingProvider?.address?.line2, (line2) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2, city: c.billingProvider?.address?.city ?? "", state: c.billingProvider?.address?.state ?? "", postalCode: c.billingProvider?.address?.postalCode ?? "" } } }))) }),
2939
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.address.city", label: "Billing city", required: true, error: errors["billingProvider.address.city"], children: text(bill.billingProvider?.address?.city, (city) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2: c.billingProvider?.address?.line2 ?? "", city, state: c.billingProvider?.address?.state ?? "", postalCode: c.billingProvider?.address?.postalCode ?? "" } } }))) }),
2940
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.address.state", label: "Billing state", required: true, error: errors["billingProvider.address.state"], children: text(bill.billingProvider?.address?.state, (state) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2: c.billingProvider?.address?.line2 ?? "", city: c.billingProvider?.address?.city ?? "", state: state.toUpperCase(), postalCode: c.billingProvider?.address?.postalCode ?? "" } } })), { maxLength: 2 }) }),
2941
+ /* @__PURE__ */ jsx5(Field2, { path: "billingProvider.address.postalCode", label: "Billing ZIP", required: true, error: errors["billingProvider.address.postalCode"], children: text(bill.billingProvider?.address?.postalCode, (postalCode) => setBill((c) => ({ ...c, billingProvider: { ...c.billingProvider, address: { line1: c.billingProvider?.address?.line1 ?? "", line2: c.billingProvider?.address?.line2 ?? "", city: c.billingProvider?.address?.city ?? "", state: c.billingProvider?.address?.state ?? "", postalCode } } }))) }),
2942
+ /* @__PURE__ */ jsx5("h4", { className: "mbsf-subhead", children: "Rendering provider" }),
2943
+ /* @__PURE__ */ jsx5(Field2, { path: "renderingProvider.name", label: "Rendering provider name", required: true, error: errors["renderingProvider.name"], children: text(bill.renderingProvider?.name, (name) => setBill((c) => ({ ...c, renderingProvider: { ...c.renderingProvider, name } }))) }),
2944
+ /* @__PURE__ */ jsx5(Field2, { path: "renderingProvider.npi", label: "Rendering provider NPI", required: true, error: errors["renderingProvider.npi"], children: text(bill.renderingProvider?.npi, (npi) => setBill((c) => ({ ...c, renderingProvider: { ...c.renderingProvider, npi } })), { inputMode: "numeric", maxLength: 10 }) }),
2945
+ /* @__PURE__ */ jsxs5(Field2, { path: "renderingProvider.taxonomy", label: "Rendering taxonomy", required: true, error: errors["renderingProvider.taxonomy"], children: [
2946
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: "Rendering taxonomy", invalid: Boolean(errors["renderingProvider.taxonomy"]), disabled: locked, preserveValueOnOpen: true, value: bill.renderingProvider?.taxonomy ?? "", placeholder: "Search specialty name or taxonomy code\u2026", options: taxonomies.map((item) => ({ id: item.code, label: item.description, detail: item.code })), createOption: (query) => {
2812
2947
  const code = query.trim().toUpperCase();
2813
2948
  return /^[A-Z0-9]{10}$/.test(code) ? { id: code, label: code, detail: "Use this taxonomy code" } : null;
2814
2949
  }, onSelect: (option) => setBill((c) => ({ ...c, renderingProvider: { ...c.renderingProvider, taxonomy: option.id } })) }),
2815
- /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: "Search by specialty name or 10-character taxonomy code." })
2950
+ /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "Search by specialty name or 10-character taxonomy code." })
2816
2951
  ] }),
2817
- /* @__PURE__ */ jsx4("h4", { className: "mbsf-subhead", children: "Service facility" }),
2818
- /* @__PURE__ */ jsx4(Field2, { path: "serviceLocation.placeOfServiceCode", label: "Place of service code", required: true, error: errors["serviceLocation.placeOfServiceCode"], children: text(bill.serviceLocation?.placeOfServiceCode, (placeOfServiceCode) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, placeOfServiceCode } })), { inputMode: "numeric", maxLength: 2, placeholder: "11" }) }),
2819
- /* @__PURE__ */ jsx4(Field2, { path: "serviceLocation.address.line1", label: "Service address line 1", required: true, span: true, error: errors["serviceLocation.address.line1"], children: text(bill.serviceLocation?.address?.line1, (line1) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1, line2: c.serviceLocation?.address?.line2 ?? "", city: c.serviceLocation?.address?.city ?? "", state: c.serviceLocation?.address?.state ?? "", postalCode: c.serviceLocation?.address?.postalCode ?? "" } } }))) }),
2820
- /* @__PURE__ */ jsx4(Field2, { label: "Service address line 2 (optional)", span: true, children: text(bill.serviceLocation?.address?.line2, (line2) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2, city: c.serviceLocation?.address?.city ?? "", state: c.serviceLocation?.address?.state ?? "", postalCode: c.serviceLocation?.address?.postalCode ?? "" } } }))) }),
2821
- /* @__PURE__ */ jsx4(Field2, { path: "serviceLocation.address.city", label: "Service city", required: true, error: errors["serviceLocation.address.city"], children: text(bill.serviceLocation?.address?.city, (city) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2: c.serviceLocation?.address?.line2 ?? "", city, state: c.serviceLocation?.address?.state ?? "", postalCode: c.serviceLocation?.address?.postalCode ?? "" } } }))) }),
2822
- /* @__PURE__ */ jsx4(Field2, { path: "serviceLocation.address.state", label: "Service state", required: true, error: errors["serviceLocation.address.state"], children: text(bill.serviceLocation?.address?.state, (state) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2: c.serviceLocation?.address?.line2 ?? "", city: c.serviceLocation?.address?.city ?? "", state: state.toUpperCase(), postalCode: c.serviceLocation?.address?.postalCode ?? "" } } })), { maxLength: 2 }) }),
2823
- /* @__PURE__ */ jsx4(Field2, { path: "serviceLocation.address.postalCode", label: "Service ZIP", required: true, error: errors["serviceLocation.address.postalCode"], children: text(bill.serviceLocation?.address?.postalCode, (postalCode) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2: c.serviceLocation?.address?.line2 ?? "", city: c.serviceLocation?.address?.city ?? "", state: c.serviceLocation?.address?.state ?? "", postalCode } } }))) })
2952
+ /* @__PURE__ */ jsx5("h4", { className: "mbsf-subhead", children: "Service facility" }),
2953
+ /* @__PURE__ */ jsx5(Field2, { path: "serviceLocation.placeOfServiceCode", label: "Place of service code", required: true, error: errors["serviceLocation.placeOfServiceCode"], children: text(bill.serviceLocation?.placeOfServiceCode, (placeOfServiceCode) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, placeOfServiceCode } })), { inputMode: "numeric", maxLength: 2, placeholder: "11" }) }),
2954
+ /* @__PURE__ */ jsx5(Field2, { path: "serviceLocation.address.line1", label: "Service address line 1", required: true, span: true, error: errors["serviceLocation.address.line1"], children: text(bill.serviceLocation?.address?.line1, (line1) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1, line2: c.serviceLocation?.address?.line2 ?? "", city: c.serviceLocation?.address?.city ?? "", state: c.serviceLocation?.address?.state ?? "", postalCode: c.serviceLocation?.address?.postalCode ?? "" } } }))) }),
2955
+ /* @__PURE__ */ jsx5(Field2, { label: "Service address line 2 (optional)", span: true, children: text(bill.serviceLocation?.address?.line2, (line2) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2, city: c.serviceLocation?.address?.city ?? "", state: c.serviceLocation?.address?.state ?? "", postalCode: c.serviceLocation?.address?.postalCode ?? "" } } }))) }),
2956
+ /* @__PURE__ */ jsx5(Field2, { path: "serviceLocation.address.city", label: "Service city", required: true, error: errors["serviceLocation.address.city"], children: text(bill.serviceLocation?.address?.city, (city) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2: c.serviceLocation?.address?.line2 ?? "", city, state: c.serviceLocation?.address?.state ?? "", postalCode: c.serviceLocation?.address?.postalCode ?? "" } } }))) }),
2957
+ /* @__PURE__ */ jsx5(Field2, { path: "serviceLocation.address.state", label: "Service state", required: true, error: errors["serviceLocation.address.state"], children: text(bill.serviceLocation?.address?.state, (state) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2: c.serviceLocation?.address?.line2 ?? "", city: c.serviceLocation?.address?.city ?? "", state: state.toUpperCase(), postalCode: c.serviceLocation?.address?.postalCode ?? "" } } })), { maxLength: 2 }) }),
2958
+ /* @__PURE__ */ jsx5(Field2, { path: "serviceLocation.address.postalCode", label: "Service ZIP", required: true, error: errors["serviceLocation.address.postalCode"], children: text(bill.serviceLocation?.address?.postalCode, (postalCode) => setBill((c) => ({ ...c, serviceLocation: { ...c.serviceLocation, address: { line1: c.serviceLocation?.address?.line1 ?? "", line2: c.serviceLocation?.address?.line2 ?? "", city: c.serviceLocation?.address?.city ?? "", state: c.serviceLocation?.address?.state ?? "", postalCode } } }))) })
2824
2959
  ] })
2825
2960
  ] });
2826
- const serviceLinesSection = /* @__PURE__ */ jsxs4("fieldset", { className: "mbsf-card", disabled: locked, children: [
2827
- /* @__PURE__ */ jsx4("legend", { className: "mbsf-legend", children: "Evaluation & service lines" }),
2828
- /* @__PURE__ */ jsx4("p", { className: "mbsf-help", children: "Sets the evaluator/specialty modifier on medical-legal evaluation lines." }),
2829
- /* @__PURE__ */ jsx4("div", { className: "mbsf-segments", role: "group", "aria-label": "Evaluation type", children: [["qme", "QME (default)"], ["ame", "AME"], ["psych_qme", "Psych QME"]].map(([type, label]) => /* @__PURE__ */ jsx4("button", { className: "mbsf-segment", type: "button", "aria-pressed": evaluationType === type, onClick: () => changeEvaluation(type), children: label }, type)) }),
2830
- /* @__PURE__ */ jsx4("p", { className: "mbsf-help", children: evaluationType === "ame" ? "Agreed Medical Evaluator \u2014 eligible ML evaluation codes default to modifier -94." : evaluationType === "psych_qme" ? "Psychiatric QME \u2014 eligible ML evaluation codes default to modifier -96 (-95 for ML200)." : "Qualified Medical Evaluator \u2014 eligible ML evaluation codes default to modifier -95." }),
2831
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-lines", "data-field-path": "serviceLines", "data-invalid": Boolean(errors.serviceLines), children: [
2832
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-line-head", children: [
2833
- /* @__PURE__ */ jsxs4("span", { children: [
2961
+ const serviceLinesSection = /* @__PURE__ */ jsxs5("fieldset", { className: "mbsf-card", disabled: locked, children: [
2962
+ /* @__PURE__ */ jsx5("legend", { className: "mbsf-legend", children: "Evaluation & service lines" }),
2963
+ /* @__PURE__ */ jsx5("p", { className: "mbsf-help", children: "Sets the evaluator/specialty modifier on medical-legal evaluation lines." }),
2964
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-segments", role: "group", "aria-label": "Evaluation type", children: [["qme", "QME (default)"], ["ame", "AME"], ["psych_qme", "Psych QME"]].map(([type, label]) => /* @__PURE__ */ jsx5("button", { className: "mbsf-segment", type: "button", "aria-pressed": evaluationType === type, onClick: () => changeEvaluation(type), children: label }, type)) }),
2965
+ /* @__PURE__ */ jsx5("p", { className: "mbsf-help", children: evaluationType === "ame" ? "Agreed Medical Evaluator \u2014 eligible ML evaluation codes default to modifier -94." : evaluationType === "psych_qme" ? "Psychiatric QME \u2014 eligible ML evaluation codes default to modifier -96 (-95 for ML200)." : "Qualified Medical Evaluator \u2014 eligible ML evaluation codes default to modifier -95." }),
2966
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-lines", "data-field-path": "serviceLines", "data-invalid": Boolean(errors.serviceLines), children: [
2967
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-line-head", children: [
2968
+ /* @__PURE__ */ jsxs5("span", { children: [
2834
2969
  "Procedure code",
2835
- /* @__PURE__ */ jsx4(RequiredMark, {})
2970
+ /* @__PURE__ */ jsx5(RequiredMark, {})
2836
2971
  ] }),
2837
- /* @__PURE__ */ jsx4("span", { children: "Modifiers" }),
2838
- /* @__PURE__ */ jsx4("span", { children: "Dx" }),
2839
- /* @__PURE__ */ jsxs4("span", { children: [
2972
+ /* @__PURE__ */ jsx5("span", { children: "Modifiers" }),
2973
+ /* @__PURE__ */ jsx5("span", { children: "Dx" }),
2974
+ /* @__PURE__ */ jsxs5("span", { children: [
2840
2975
  "Units",
2841
- /* @__PURE__ */ jsx4(RequiredMark, {})
2976
+ /* @__PURE__ */ jsx5(RequiredMark, {})
2842
2977
  ] }),
2843
- /* @__PURE__ */ jsx4("span", { children: "Allowed" }),
2844
- /* @__PURE__ */ jsx4("span", {}),
2978
+ /* @__PURE__ */ jsx5("span", { children: "Allowed" }),
2979
+ /* @__PURE__ */ jsx5("span", {}),
2845
2980
  " "
2846
2981
  ] }),
2847
- bill.serviceLines.map((line, index) => /* @__PURE__ */ jsxs4("div", { className: "mbsf-line", children: [
2848
- /* @__PURE__ */ jsxs4("div", { "data-label": "Procedure code", "data-field-path": `serviceLines.${index}.code`, "data-invalid": Boolean(errors[`serviceLines.${index}.code`]), children: [
2849
- /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: `Procedure code ${index + 1}`, invalid: Boolean(errors[`serviceLines.${index}.code`]), disabled: locked, value: line.code, placeholder: "Search or enter code\u2026", options: procedures.map((item) => ({ id: item.code, label: item.code, detail: item.description })), createOption: customProcedureOption, onSelect: (option) => {
2982
+ bill.serviceLines.map((line, index) => /* @__PURE__ */ jsxs5("div", { className: "mbsf-line", children: [
2983
+ /* @__PURE__ */ jsxs5("div", { "data-label": "Procedure code", "data-field-path": `serviceLines.${index}.code`, "data-invalid": Boolean(errors[`serviceLines.${index}.code`]), children: [
2984
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: `Procedure code ${index + 1}`, invalid: Boolean(errors[`serviceLines.${index}.code`]), disabled: locked, value: line.code, placeholder: "Search or enter code\u2026", options: procedures.map((item) => ({ id: item.code, label: item.code, detail: item.description })), createOption: customProcedureOption, onSelect: (option) => {
2850
2985
  const auto = evaluationModifier(evaluationType, option.id);
2851
2986
  setLine(index, { code: option.id, ...auto ? { modifiers: [auto, ...(line.modifiers ?? []).filter((item) => !["94", "95", "96"].includes(item.replace(/^-/, "")))] } : line.modifiers ? { modifiers: line.modifiers } : {} });
2852
2987
  } }),
2853
- line.code ? /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: procedures.find((item) => item.code === line.code)?.description ?? "Custom CPT, HCPCS, or medical-legal code" }) : null,
2854
- errors[`serviceLines.${index}.code`] ? /* @__PURE__ */ jsx4("small", { className: "mbsf-error", role: "alert", children: errors[`serviceLines.${index}.code`] }) : null
2988
+ line.code ? /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: procedures.find((item) => item.code === line.code)?.description ?? "Custom CPT, HCPCS, or medical-legal code" }) : null,
2989
+ errors[`serviceLines.${index}.code`] ? /* @__PURE__ */ jsx5("small", { className: "mbsf-error", role: "alert", children: errors[`serviceLines.${index}.code`] }) : null
2855
2990
  ] }),
2856
- /* @__PURE__ */ jsxs4("div", { "data-label": "Modifiers", children: [
2857
- /* @__PURE__ */ jsx4("div", { className: "mbsf-chips", children: (line.modifiers ?? []).map((modifier) => /* @__PURE__ */ jsxs4("span", { className: "mbsf-chip", children: [
2991
+ /* @__PURE__ */ jsxs5("div", { "data-label": "Modifiers", children: [
2992
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-chips", children: (line.modifiers ?? []).map((modifier) => /* @__PURE__ */ jsxs5("span", { className: "mbsf-chip", children: [
2858
2993
  "\u2212",
2859
2994
  modifier.replace(/^-/, ""),
2860
- /* @__PURE__ */ jsx4("button", { type: "button", "aria-label": `Remove modifier ${modifier}`, onClick: () => setLine(index, { modifiers: (line.modifiers ?? []).filter((item) => item !== modifier) }), children: "\xD7" })
2995
+ /* @__PURE__ */ jsx5("button", { type: "button", "aria-label": `Remove modifier ${modifier}`, onClick: () => setLine(index, { modifiers: (line.modifiers ?? []).filter((item) => item !== modifier) }), children: "\xD7" })
2861
2996
  ] }, modifier)) }),
2862
- /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: `Modifiers ${index + 1}`, disabled: locked, value: "", placeholder: line.modifiers?.length ?? 0 ? `${line.modifiers.length} modifier${line.modifiers.length === 1 ? "" : "s"}` : "Add modifiers\u2026", options: modifiers.filter((item) => !(line.modifiers ?? []).includes(item.code)).map((item) => ({ id: item.code, label: `\u2212${item.code}`, detail: item.description })), onSelect: (option) => setLine(index, { modifiers: [.../* @__PURE__ */ new Set([...line.modifiers ?? [], option.id])] }) })
2997
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: `Modifiers ${index + 1}`, disabled: locked, value: "", placeholder: line.modifiers?.length ?? 0 ? `${line.modifiers.length} modifier${line.modifiers.length === 1 ? "" : "s"}` : "Add modifiers\u2026", options: modifiers.filter((item) => !(line.modifiers ?? []).includes(item.code)).map((item) => ({ id: item.code, label: `\u2212${item.code}`, detail: item.description })), onSelect: (option) => setLine(index, { modifiers: [.../* @__PURE__ */ new Set([...line.modifiers ?? [], option.id])] }) })
2863
2998
  ] }),
2864
- /* @__PURE__ */ jsx4("div", { "data-label": "Dx", children: /* @__PURE__ */ jsx4("div", { className: "mbsf-dx", children: (bill.diagnoses ?? []).length ? (bill.diagnoses ?? []).map((code, dxIndex) => {
2999
+ /* @__PURE__ */ jsx5("div", { "data-label": "Dx", children: /* @__PURE__ */ jsx5("div", { className: "mbsf-dx", children: (bill.diagnoses ?? []).length ? (bill.diagnoses ?? []).map((code, dxIndex) => {
2865
3000
  const pointer = dxIndex + 1;
2866
3001
  const active = (line.diagnosisPointers ?? []).includes(pointer);
2867
- return /* @__PURE__ */ jsx4("button", { type: "button", className: "mbsf-dx-chip", "data-active": active, title: `${String.fromCharCode(64 + pointer)} \u2014 ${code}`, "aria-pressed": active, "aria-label": `Point line ${index + 1} at diagnosis ${code}`, onClick: () => setLine(index, { diagnosisPointers: active ? (line.diagnosisPointers ?? []).filter((item) => item !== pointer) : [...line.diagnosisPointers ?? [], pointer].sort((left, right) => left - right) }), children: String.fromCharCode(64 + pointer) }, code);
2868
- }) : /* @__PURE__ */ jsx4("small", { className: "mbsf-help", children: "Add diagnoses above" }) }) }),
2869
- /* @__PURE__ */ jsxs4("div", { "data-label": "Units", "data-field-path": `serviceLines.${index}.units`, "data-invalid": Boolean(errors[`serviceLines.${index}.units`]), children: [
2870
- /* @__PURE__ */ jsx4("input", { className: "mbsf-input", "aria-label": `Units ${index + 1}`, "aria-invalid": Boolean(errors[`serviceLines.${index}.units`]), type: "number", min: 1, value: line.units ?? 1, onChange: (event) => setLine(index, { units: Number(event.target.value) }) }),
2871
- errors[`serviceLines.${index}.units`] ? /* @__PURE__ */ jsx4("small", { className: "mbsf-error", role: "alert", children: errors[`serviceLines.${index}.units`] }) : null
3002
+ return /* @__PURE__ */ jsx5("button", { type: "button", className: "mbsf-dx-chip", "data-active": active, title: `${String.fromCharCode(64 + pointer)} \u2014 ${code}`, "aria-pressed": active, "aria-label": `Point line ${index + 1} at diagnosis ${code}`, onClick: () => setLine(index, { diagnosisPointers: active ? (line.diagnosisPointers ?? []).filter((item) => item !== pointer) : [...line.diagnosisPointers ?? [], pointer].sort((left, right) => left - right) }), children: String.fromCharCode(64 + pointer) }, code);
3003
+ }) : /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "Add diagnoses above" }) }) }),
3004
+ /* @__PURE__ */ jsxs5("div", { "data-label": "Units", "data-field-path": `serviceLines.${index}.units`, "data-invalid": Boolean(errors[`serviceLines.${index}.units`]), children: [
3005
+ /* @__PURE__ */ jsx5("input", { className: "mbsf-input", "aria-label": `Units ${index + 1}`, "aria-invalid": Boolean(errors[`serviceLines.${index}.units`]), type: "number", min: 1, value: line.units ?? 1, onChange: (event) => setLine(index, { units: Number(event.target.value) }) }),
3006
+ errors[`serviceLines.${index}.units`] ? /* @__PURE__ */ jsx5("small", { className: "mbsf-error", role: "alert", children: errors[`serviceLines.${index}.units`] }) : null
2872
3007
  ] }),
2873
- /* @__PURE__ */ jsx4("div", { className: "mbsf-money", "data-label": "Allowed", children: lineCharge(line) == null ? "\u2014" : lineCharge(line).toLocaleString(void 0, { style: "currency", currency: "USD" }) }),
2874
- /* @__PURE__ */ jsx4("button", { className: "mbsf-icon-btn", type: "button", "aria-label": `Remove service line ${index + 1}`, disabled: locked || !lineHasContent(line) && index === bill.serviceLines.length - 1, onClick: () => setBill((c) => ({ ...c, serviceLines: ensureTrailingBillSubmissionLine(c.serviceLines.filter((_, itemIndex) => itemIndex !== index)) })), children: "\xD7" })
3008
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-money", "data-label": "Allowed", children: lineCharge(line) == null ? "\u2014" : lineCharge(line).toLocaleString(void 0, { style: "currency", currency: "USD" }) }),
3009
+ /* @__PURE__ */ jsx5("button", { className: "mbsf-icon-btn", type: "button", "aria-label": `Remove service line ${index + 1}`, disabled: locked || !lineHasContent(line) && index === bill.serviceLines.length - 1, onClick: () => setBill((c) => ({ ...c, serviceLines: ensureTrailingBillSubmissionLine(c.serviceLines.filter((_, itemIndex) => itemIndex !== index)) })), children: "\xD7" })
2875
3010
  ] }, index)),
2876
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-total", children: [
2877
- /* @__PURE__ */ jsx4("span", { children: "Total" }),
2878
- /* @__PURE__ */ jsx4("span", { children: total.toLocaleString(void 0, { style: "currency", currency: "USD" }) })
3011
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-total", children: [
3012
+ /* @__PURE__ */ jsx5("span", { children: "Total" }),
3013
+ /* @__PURE__ */ jsx5("span", { children: total.toLocaleString(void 0, { style: "currency", currency: "USD" }) })
2879
3014
  ] })
2880
3015
  ] }),
2881
- errors.serviceLines ? /* @__PURE__ */ jsx4("p", { className: "mbsf-error", role: "alert", children: errors.serviceLines }) : null
3016
+ errors.serviceLines ? /* @__PURE__ */ jsx5("p", { className: "mbsf-error", role: "alert", children: errors.serviceLines }) : null
2882
3017
  ] });
2883
- const attachmentsSection = /* @__PURE__ */ jsxs4("fieldset", { className: "mbsf-card", "data-field-path": "attachments", "data-invalid": Boolean(errors.attachments), disabled: locked, children: [
2884
- /* @__PURE__ */ jsx4("legend", { className: "mbsf-legend", children: "Attachments" }),
2885
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-attach-list", children: [
3018
+ const attachmentsSection = /* @__PURE__ */ jsxs5("fieldset", { className: "mbsf-card", "data-field-path": "attachments", "data-invalid": Boolean(errors.attachments), disabled: locked, children: [
3019
+ /* @__PURE__ */ jsx5("legend", { className: "mbsf-legend", children: "Attachments" }),
3020
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-attach-list", children: [
2886
3021
  attachments.filter((attachment) => !removedSourceIds.includes(attachment.id)).map((attachment) => {
2887
3022
  const auto = attachment.autoAttached || attachment.documentType === "w9";
2888
3023
  const removable = !auto && attachment.removable !== false;
2889
3024
  const reportTypeCode = sourceAttachmentReportTypes[attachment.id] || attachment.reportTypeCode || defaultAttachmentReportType || "";
2890
- return /* @__PURE__ */ jsxs4("div", { className: "mbsf-attach-row", "data-auto": auto, children: [
2891
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-attach-main", children: [
2892
- auto ? /* @__PURE__ */ jsx4("span", { "aria-label": "Always attached", role: "img", children: "\u2713" }) : null,
2893
- /* @__PURE__ */ jsxs4("span", { className: "mbsf-file", children: [
2894
- /* @__PURE__ */ jsx4("strong", { children: attachment.fileName }),
2895
- /* @__PURE__ */ jsx4("span", { className: "mbsf-badge", children: auto ? "Auto-attached" : documentLabels[attachment.documentType] }),
2896
- /* @__PURE__ */ jsx4("span", { className: "mbsf-help", style: { display: "block" }, children: attachment.description || (auto ? "Included automatically with every bill." : documentLabels[attachment.documentType]) })
3025
+ return /* @__PURE__ */ jsxs5("div", { className: "mbsf-attach-row", "data-auto": auto, children: [
3026
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-attach-main", children: [
3027
+ auto ? /* @__PURE__ */ jsx5("span", { "aria-label": "Always attached", role: "img", children: "\u2713" }) : null,
3028
+ /* @__PURE__ */ jsxs5("span", { className: "mbsf-file", children: [
3029
+ /* @__PURE__ */ jsx5("strong", { children: attachment.fileName }),
3030
+ /* @__PURE__ */ jsx5("span", { className: "mbsf-badge", children: auto ? "Auto-attached" : documentLabels[attachment.documentType] }),
3031
+ /* @__PURE__ */ jsx5("span", { className: "mbsf-help", style: { display: "block" }, children: attachment.description || (auto ? "Included automatically with every bill." : documentLabels[attachment.documentType]) })
2897
3032
  ] })
2898
3033
  ] }),
2899
- showAttachmentReportTypes ? /* @__PURE__ */ jsx4("div", { className: "mbsf-attach-type", children: /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: `Report type for ${attachment.fileName}`, invalid: !reportTypeCode, disabled: locked, preserveValueOnOpen: true, value: reportTypeCode, placeholder: "Select report type\u2026", options: reportTypeOptions, onSelect: (option) => setSourceAttachmentReportTypes((current) => ({ ...current, [attachment.id]: option.id })) }) }) : null,
2900
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-attach-actions", children: [
2901
- attachment.previewUrl ? /* @__PURE__ */ jsx4("a", { className: "mbsf-secondary", href: attachment.previewUrl, target: "_blank", rel: "noopener noreferrer", children: "Preview" }) : null,
2902
- removable ? /* @__PURE__ */ jsx4("button", { className: "mbsf-icon-btn", type: "button", "aria-label": `Remove ${attachment.fileName}`, disabled: locked, onClick: () => {
3034
+ showAttachmentReportTypes ? /* @__PURE__ */ jsx5("div", { className: "mbsf-attach-type", children: /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: `Report type for ${attachment.fileName}`, invalid: !reportTypeCode, disabled: locked, preserveValueOnOpen: true, value: reportTypeCode, placeholder: "Select report type\u2026", options: reportTypeOptions, onSelect: (option) => setSourceAttachmentReportTypes((current) => ({ ...current, [attachment.id]: option.id })) }) }) : null,
3035
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-attach-actions", children: [
3036
+ attachment.previewUrl ? /* @__PURE__ */ jsx5("a", { className: "mbsf-secondary", href: attachment.previewUrl, target: "_blank", rel: "noopener noreferrer", children: "Preview" }) : null,
3037
+ removable ? /* @__PURE__ */ jsx5("button", { className: "mbsf-icon-btn", type: "button", "aria-label": `Remove ${attachment.fileName}`, disabled: locked, onClick: () => {
2903
3038
  setSelectedIds((current) => current.filter((id) => id !== attachment.id));
2904
3039
  setRemovedSourceIds((current) => [.../* @__PURE__ */ new Set([...current, attachment.id])]);
2905
3040
  }, children: "\xD7" }) : null
@@ -2908,35 +3043,35 @@ function BillSubmissionForm({
2908
3043
  }),
2909
3044
  uploads.map((upload, index) => {
2910
3045
  const reportTypeCode = upload.reportTypeCode || defaultAttachmentReportType || "";
2911
- return /* @__PURE__ */ jsxs4("div", { className: "mbsf-attach-row", children: [
2912
- /* @__PURE__ */ jsx4("div", { className: "mbsf-attach-main", children: /* @__PURE__ */ jsxs4("span", { className: "mbsf-file", children: [
2913
- /* @__PURE__ */ jsx4("strong", { children: upload.file.name }),
2914
- /* @__PURE__ */ jsxs4("span", { className: "mbsf-help", style: { display: "block" }, children: [
3046
+ return /* @__PURE__ */ jsxs5("div", { className: "mbsf-attach-row", children: [
3047
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-attach-main", children: /* @__PURE__ */ jsxs5("span", { className: "mbsf-file", children: [
3048
+ /* @__PURE__ */ jsx5("strong", { children: upload.file.name }),
3049
+ /* @__PURE__ */ jsxs5("span", { className: "mbsf-help", style: { display: "block" }, children: [
2915
3050
  (upload.file.size / 1024 / 1024).toFixed(1),
2916
3051
  " MB"
2917
3052
  ] })
2918
3053
  ] }) }),
2919
- showAttachmentReportTypes ? /* @__PURE__ */ jsx4("div", { className: "mbsf-attach-type", children: /* @__PURE__ */ jsx4(ComboBox, { ariaLabel: `Report type for ${upload.file.name}`, invalid: !reportTypeCode, disabled: locked, preserveValueOnOpen: true, value: reportTypeCode, placeholder: "Select report type\u2026", options: reportTypeOptions, onSelect: (option) => setUploads((current) => current.map((item, itemIndex) => itemIndex === index ? { ...item, reportTypeCode: option.id } : item)) }) }) : null,
2920
- /* @__PURE__ */ jsxs4("div", { className: "mbsf-attach-actions", children: [
2921
- /* @__PURE__ */ jsx4("button", { className: "mbsf-secondary", type: "button", onClick: () => previewUploadedPdf(upload.file), children: "Preview" }),
2922
- /* @__PURE__ */ jsx4("button", { className: "mbsf-icon-btn", type: "button", "aria-label": `Remove ${upload.file.name}`, onClick: () => setUploads((current) => current.filter((_, itemIndex) => itemIndex !== index)), children: "\xD7" })
3054
+ showAttachmentReportTypes ? /* @__PURE__ */ jsx5("div", { className: "mbsf-attach-type", children: /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: `Report type for ${upload.file.name}`, invalid: !reportTypeCode, disabled: locked, preserveValueOnOpen: true, value: reportTypeCode, placeholder: "Select report type\u2026", options: reportTypeOptions, onSelect: (option) => setUploads((current) => current.map((item, itemIndex) => itemIndex === index ? { ...item, reportTypeCode: option.id } : item)) }) }) : null,
3055
+ /* @__PURE__ */ jsxs5("div", { className: "mbsf-attach-actions", children: [
3056
+ /* @__PURE__ */ jsx5("button", { className: "mbsf-secondary", type: "button", onClick: () => previewUploadedPdf(upload.file), children: "Preview" }),
3057
+ /* @__PURE__ */ jsx5("button", { className: "mbsf-icon-btn", type: "button", "aria-label": `Remove ${upload.file.name}`, onClick: () => setUploads((current) => current.filter((_, itemIndex) => itemIndex !== index)), children: "\xD7" })
2923
3058
  ] })
2924
3059
  ] }, `${upload.file.name}-${index}`);
2925
3060
  })
2926
3061
  ] }),
2927
- errors.attachments ? /* @__PURE__ */ jsx4("p", { className: "mbsf-error", role: "alert", children: errors.attachments }) : null,
2928
- /* @__PURE__ */ jsx4("input", { ref: fileInput, hidden: true, type: "file", accept: "application/pdf,.pdf", multiple: true, onChange: (event) => {
3062
+ errors.attachments ? /* @__PURE__ */ jsx5("p", { className: "mbsf-error", role: "alert", children: errors.attachments }) : null,
3063
+ /* @__PURE__ */ jsx5("input", { ref: fileInput, hidden: true, type: "file", accept: "application/pdf,.pdf", multiple: true, onChange: (event) => {
2929
3064
  if (event.target.files) addFiles(event.target.files);
2930
3065
  event.target.value = "";
2931
3066
  } }),
2932
- /* @__PURE__ */ jsx4("button", { className: "mbsf-drop", "data-active": dragActive, type: "button", onClick: () => fileInput.current?.click(), children: /* @__PURE__ */ jsxs4("span", { children: [
2933
- /* @__PURE__ */ jsx4("strong", { style: { fontSize: 18 }, children: "Drop additional PDF files here, or click to choose" }),
2934
- /* @__PURE__ */ jsx4("span", { className: "mbsf-help", style: { display: "block", marginTop: 8 }, children: "Add supporting documents anywhere on this screen." })
3067
+ /* @__PURE__ */ jsx5("button", { className: "mbsf-drop", "data-active": dragActive, type: "button", onClick: () => fileInput.current?.click(), children: /* @__PURE__ */ jsxs5("span", { children: [
3068
+ /* @__PURE__ */ jsx5("strong", { style: { fontSize: 18 }, children: "Drop additional PDF files here, or click to choose" }),
3069
+ /* @__PURE__ */ jsx5("span", { className: "mbsf-help", style: { display: "block", marginTop: 8 }, children: "Add supporting documents anywhere on this screen." })
2935
3070
  ] }) })
2936
3071
  ] });
2937
- const actionsSection = /* @__PURE__ */ jsxs4(Fragment3, { children: [
2938
- formError ? /* @__PURE__ */ jsx4("div", { className: "mbsf-alert", role: "alert", children: formError }) : null,
2939
- /* @__PURE__ */ jsx4("div", { className: "mbsf-actions", children: /* @__PURE__ */ jsx4("button", { className: "mbsf-submit", type: "submit", disabled: locked, children: submitting ? "Submitting\u2026" : submitLabel }) })
3072
+ const actionsSection = /* @__PURE__ */ jsxs5(Fragment4, { children: [
3073
+ formError ? /* @__PURE__ */ jsx5("div", { className: "mbsf-alert", role: "alert", children: formError }) : null,
3074
+ /* @__PURE__ */ jsx5("div", { className: "mbsf-actions", children: /* @__PURE__ */ jsx5("button", { className: "mbsf-submit", type: "submit", disabled: locked, children: submitting ? "Submitting\u2026" : submitLabel }) })
2940
3075
  ] });
2941
3076
  const sections = {
2942
3077
  header: headerSection,
@@ -2947,47 +3082,63 @@ function BillSubmissionForm({
2947
3082
  attachments: attachmentsSection,
2948
3083
  actions: actionsSection
2949
3084
  };
2950
- const defaultLayout = /* @__PURE__ */ jsxs4(Fragment3, { children: [
2951
- /* @__PURE__ */ jsx4(BillSubmissionHeader, {}),
2952
- /* @__PURE__ */ jsx4(BillSubmissionPatientSection, {}),
2953
- /* @__PURE__ */ jsx4(BillSubmissionClaimSection, {}),
2954
- /* @__PURE__ */ jsx4(BillSubmissionProvidersSection, {}),
2955
- /* @__PURE__ */ jsx4(BillSubmissionServiceLinesSection, {}),
2956
- /* @__PURE__ */ jsx4(BillSubmissionAttachmentsSection, {}),
2957
- /* @__PURE__ */ jsx4(BillSubmissionActions, {})
3085
+ const defaultLayout = /* @__PURE__ */ jsxs5(Fragment4, { children: [
3086
+ /* @__PURE__ */ jsx5(BillSubmissionHeader, {}),
3087
+ /* @__PURE__ */ jsx5(BillSubmissionPatientSection, {}),
3088
+ /* @__PURE__ */ jsx5(BillSubmissionClaimSection, {}),
3089
+ /* @__PURE__ */ jsx5(BillSubmissionProvidersSection, {}),
3090
+ /* @__PURE__ */ jsx5(BillSubmissionServiceLinesSection, {}),
3091
+ /* @__PURE__ */ jsx5(BillSubmissionAttachmentsSection, {}),
3092
+ /* @__PURE__ */ jsx5(BillSubmissionActions, {})
2958
3093
  ] });
2959
- return /* @__PURE__ */ jsx4(BillSubmissionSectionsContext.Provider, { value: sections, children: /* @__PURE__ */ jsxs4("form", { ref: formRef, className: `${className} mbsf`, style: { ...mindBillAppearanceStyle(appearance), ...style }, onSubmit: (event) => {
2960
- event.preventDefault();
2961
- void submit();
2962
- }, noValidate: true, children: [
2963
- /* @__PURE__ */ jsx4("style", { children: css2 }),
2964
- attentionMessage ? /* @__PURE__ */ jsx4("div", { className: "mbsf-attention", role: "status", children: attentionMessage }) : null,
2965
- children ?? defaultLayout,
2966
- routeDialog ? /* @__PURE__ */ jsx4(
2967
- SendRouteDialog,
2968
- {
2969
- title: "Send bill",
2970
- delivery: routeDialog.delivery,
2971
- submitting,
2972
- error: routeError,
2973
- onCancel: () => {
2974
- if (!submitting) {
2975
- setRouteDialog(null);
2976
- setRouteError(null);
3094
+ return /* @__PURE__ */ jsxs5(BillSubmissionSectionsContext.Provider, { value: sections, children: [
3095
+ /* @__PURE__ */ jsxs5("form", { ref: formRef, className: `${className} mbsf`, style: { ...mindBillAppearanceStyle(appearance), ...style }, onSubmit: (event) => {
3096
+ event.preventDefault();
3097
+ void submit();
3098
+ }, noValidate: true, children: [
3099
+ /* @__PURE__ */ jsx5("style", { children: css3 }),
3100
+ attentionMessage ? /* @__PURE__ */ jsx5("div", { className: "mbsf-attention", role: "status", children: attentionMessage }) : null,
3101
+ children ?? defaultLayout,
3102
+ routeDialog ? /* @__PURE__ */ jsx5(
3103
+ SendRouteDialog,
3104
+ {
3105
+ title: "Send bill",
3106
+ delivery: routeDialog.delivery,
3107
+ submitting,
3108
+ error: routeError,
3109
+ onCancel: () => {
3110
+ if (!submitting) {
3111
+ setRouteDialog(null);
3112
+ setRouteError(null);
3113
+ }
3114
+ },
3115
+ onConfirm: (submission) => {
3116
+ void performConnectedSubmit(routeDialog.complete, submission);
2977
3117
  }
2978
- },
2979
- onConfirm: (submission) => {
2980
- void performConnectedSubmit(routeDialog.complete, submission);
3118
+ }
3119
+ ) : null
3120
+ ] }),
3121
+ /* @__PURE__ */ jsx5(
3122
+ ClaimsAdministratorDirectoryDialog,
3123
+ {
3124
+ open: directoryOpen,
3125
+ directory,
3126
+ loading: directoryLoading,
3127
+ error: directoryError,
3128
+ onClose: () => {
3129
+ setDirectoryOpen(false);
3130
+ setDirectory(null);
3131
+ setDirectoryError(null);
2981
3132
  }
2982
3133
  }
2983
- ) : null
2984
- ] }) });
3134
+ )
3135
+ ] });
2985
3136
  }
2986
3137
 
2987
3138
  // src/billing-dashboard.tsx
2988
- import { useMemo as useMemo4, useState as useState5 } from "react";
2989
- import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
2990
- var css3 = `
3139
+ import { useMemo as useMemo4, useState as useState6 } from "react";
3140
+ import { Fragment as Fragment5, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
3141
+ var css4 = `
2991
3142
  .mbdash{display:grid;gap:20px;color:var(--mb-text);font-family:var(--mb-font);font-size:15px}.mbdash *{box-sizing:border-box}.mbdash h2,.mbdash h3,.mbdash p{margin:0}.mbdash-copy{color:var(--mb-muted);margin-top:5px!important}.mbdash-card{min-width:0;border:1px solid var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);box-shadow:var(--mb-shadow)}
2992
3143
  .mbdash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.mbdash-head h2{font-size:24px}.mbdash-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.mbdash-stat{display:grid;gap:7px;padding:20px 22px;border-right:1px solid var(--mb-border)}.mbdash-stat:last-child{border:0}.mbdash-label{color:var(--mb-muted);font-size:12px;font-weight:760;letter-spacing:.06em;text-transform:uppercase}.mbdash-value{font-size:24px;font-weight:780;font-variant-numeric:tabular-nums}.mbdash-aging{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.mbdash-aging-item{display:grid;gap:5px;padding:16px 20px;border-right:1px solid var(--mb-border)}.mbdash-aging-item:last-child{border:0}.mbdash-aging-item strong{font-size:18px;font-variant-numeric:tabular-nums}.mbdash-aging-item span:last-child{color:var(--mb-muted);font-size:13px}
2993
3144
  .mbdash-filters{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,260px);gap:12px}.mbdash-control{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-input);color:var(--mb-text);font:inherit}.mbdash-control:focus{outline:3px solid color-mix(in srgb,var(--mb-accent) 22%,transparent);border-color:var(--mb-accent)}
@@ -3038,63 +3189,63 @@ function summarizeBillingDashboard(bills, now = /* @__PURE__ */ new Date()) {
3038
3189
  return { totalBilled, totalPaid, outstanding, openCount, bills: bills.length, aging };
3039
3190
  }
3040
3191
  function Shell({ appearance, className = "", style, children }) {
3041
- return /* @__PURE__ */ jsxs5("div", { className: `mbdash ${className}`.trim(), style: { ...mindBillAppearanceStyle(appearance), ...style }, children: [
3042
- /* @__PURE__ */ jsx5("style", { children: css3 }),
3192
+ return /* @__PURE__ */ jsxs6("div", { className: `mbdash ${className}`.trim(), style: { ...mindBillAppearanceStyle(appearance), ...style }, children: [
3193
+ /* @__PURE__ */ jsx6("style", { children: css4 }),
3043
3194
  children
3044
3195
  ] });
3045
3196
  }
3046
3197
  function BillIdentity({ bill }) {
3047
3198
  const label = bill.billNumber == null ? bill.externalId ?? "Bill" : `Bill #${bill.billNumber}`;
3048
- const content = /* @__PURE__ */ jsxs5(Fragment4, { children: [
3049
- /* @__PURE__ */ jsx5("span", { className: "mbdash-primary", children: label }),
3050
- /* @__PURE__ */ jsx5("span", { className: "mbdash-secondary", children: [bill.patientName, bill.claimNumber ? `Claim ${bill.claimNumber}` : null].filter(Boolean).join(" \xB7 ") })
3199
+ const content = /* @__PURE__ */ jsxs6(Fragment5, { children: [
3200
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-primary", children: label }),
3201
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-secondary", children: [bill.patientName, bill.claimNumber ? `Claim ${bill.claimNumber}` : null].filter(Boolean).join(" \xB7 ") })
3051
3202
  ] });
3052
- return bill.href ? /* @__PURE__ */ jsx5("a", { href: bill.href, className: "mbdash-primary", children: content }) : /* @__PURE__ */ jsx5(Fragment4, { children: content });
3203
+ return bill.href ? /* @__PURE__ */ jsx6("a", { href: bill.href, className: "mbdash-primary", children: content }) : /* @__PURE__ */ jsx6(Fragment5, { children: content });
3053
3204
  }
3054
3205
  function BillListContent({ bills, onSelectBill, emptyState = "No bills match these filters." }) {
3055
- if (!bills.length) return /* @__PURE__ */ jsx5("div", { className: "mbdash-card mbdash-empty", children: emptyState });
3056
- return /* @__PURE__ */ jsxs5("div", { className: "mbdash-card", children: [
3057
- /* @__PURE__ */ jsx5("div", { className: "mbdash-table-wrap", children: /* @__PURE__ */ jsxs5("table", { className: "mbdash-table", children: [
3058
- /* @__PURE__ */ jsx5("thead", { children: /* @__PURE__ */ jsxs5("tr", { children: [
3059
- /* @__PURE__ */ jsx5("th", { children: "Bill" }),
3060
- /* @__PURE__ */ jsx5("th", { children: "Payer" }),
3061
- /* @__PURE__ */ jsx5("th", { children: "Status" }),
3062
- /* @__PURE__ */ jsx5("th", { children: "Age" }),
3063
- /* @__PURE__ */ jsx5("th", { className: "mbdash-money", children: "Billed" }),
3064
- /* @__PURE__ */ jsx5("th", { className: "mbdash-money", children: "Paid" }),
3065
- /* @__PURE__ */ jsx5("th", { className: "mbdash-money", children: "Balance" })
3206
+ if (!bills.length) return /* @__PURE__ */ jsx6("div", { className: "mbdash-card mbdash-empty", children: emptyState });
3207
+ return /* @__PURE__ */ jsxs6("div", { className: "mbdash-card", children: [
3208
+ /* @__PURE__ */ jsx6("div", { className: "mbdash-table-wrap", children: /* @__PURE__ */ jsxs6("table", { className: "mbdash-table", children: [
3209
+ /* @__PURE__ */ jsx6("thead", { children: /* @__PURE__ */ jsxs6("tr", { children: [
3210
+ /* @__PURE__ */ jsx6("th", { children: "Bill" }),
3211
+ /* @__PURE__ */ jsx6("th", { children: "Payer" }),
3212
+ /* @__PURE__ */ jsx6("th", { children: "Status" }),
3213
+ /* @__PURE__ */ jsx6("th", { children: "Age" }),
3214
+ /* @__PURE__ */ jsx6("th", { className: "mbdash-money", children: "Billed" }),
3215
+ /* @__PURE__ */ jsx6("th", { className: "mbdash-money", children: "Paid" }),
3216
+ /* @__PURE__ */ jsx6("th", { className: "mbdash-money", children: "Balance" })
3066
3217
  ] }) }),
3067
- /* @__PURE__ */ jsx5("tbody", { children: bills.map((bill) => /* @__PURE__ */ jsxs5("tr", { "data-clickable": Boolean(onSelectBill), onClick: () => onSelectBill?.(bill), children: [
3068
- /* @__PURE__ */ jsx5("td", { children: /* @__PURE__ */ jsx5(BillIdentity, { bill }) }),
3069
- /* @__PURE__ */ jsx5("td", { children: bill.payerName || "\u2014" }),
3070
- /* @__PURE__ */ jsx5("td", { children: /* @__PURE__ */ jsx5("span", { className: "mbdash-state", children: stateLabel(bill.state) }) }),
3071
- /* @__PURE__ */ jsxs5("td", { children: [
3218
+ /* @__PURE__ */ jsx6("tbody", { children: bills.map((bill) => /* @__PURE__ */ jsxs6("tr", { "data-clickable": Boolean(onSelectBill), onClick: () => onSelectBill?.(bill), children: [
3219
+ /* @__PURE__ */ jsx6("td", { children: /* @__PURE__ */ jsx6(BillIdentity, { bill }) }),
3220
+ /* @__PURE__ */ jsx6("td", { children: bill.payerName || "\u2014" }),
3221
+ /* @__PURE__ */ jsx6("td", { children: /* @__PURE__ */ jsx6("span", { className: "mbdash-state", children: stateLabel(bill.state) }) }),
3222
+ /* @__PURE__ */ jsxs6("td", { children: [
3072
3223
  billAgingDays(bill),
3073
3224
  " days"
3074
3225
  ] }),
3075
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(bill.totalCharge) }),
3076
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(bill.totalPaid) }),
3077
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: /* @__PURE__ */ jsx5("strong", { children: money3(bill.balanceDue) }) })
3226
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(bill.totalCharge) }),
3227
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(bill.totalPaid) }),
3228
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: /* @__PURE__ */ jsx6("strong", { children: money3(bill.balanceDue) }) })
3078
3229
  ] }, bill.id)) })
3079
3230
  ] }) }),
3080
- /* @__PURE__ */ jsx5("div", { className: "mbdash-mobile-list", children: bills.map((bill) => /* @__PURE__ */ jsxs5("article", { className: "mbdash-mobile-card", onClick: () => onSelectBill?.(bill), children: [
3081
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-mobile-top", children: [
3082
- /* @__PURE__ */ jsx5("div", { children: /* @__PURE__ */ jsx5(BillIdentity, { bill }) }),
3083
- /* @__PURE__ */ jsx5("span", { className: "mbdash-state", children: stateLabel(bill.state) })
3231
+ /* @__PURE__ */ jsx6("div", { className: "mbdash-mobile-list", children: bills.map((bill) => /* @__PURE__ */ jsxs6("article", { className: "mbdash-mobile-card", onClick: () => onSelectBill?.(bill), children: [
3232
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-mobile-top", children: [
3233
+ /* @__PURE__ */ jsx6("div", { children: /* @__PURE__ */ jsx6(BillIdentity, { bill }) }),
3234
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-state", children: stateLabel(bill.state) })
3084
3235
  ] }),
3085
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-mobile-money", children: [
3086
- /* @__PURE__ */ jsxs5("span", { children: [
3087
- /* @__PURE__ */ jsx5("small", { children: "Age" }),
3236
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-mobile-money", children: [
3237
+ /* @__PURE__ */ jsxs6("span", { children: [
3238
+ /* @__PURE__ */ jsx6("small", { children: "Age" }),
3088
3239
  billAgingDays(bill),
3089
3240
  " days"
3090
3241
  ] }),
3091
- /* @__PURE__ */ jsxs5("span", { children: [
3092
- /* @__PURE__ */ jsx5("small", { children: "Paid" }),
3242
+ /* @__PURE__ */ jsxs6("span", { children: [
3243
+ /* @__PURE__ */ jsx6("small", { children: "Paid" }),
3093
3244
  money3(bill.totalPaid)
3094
3245
  ] }),
3095
- /* @__PURE__ */ jsxs5("span", { children: [
3096
- /* @__PURE__ */ jsx5("small", { children: "Balance" }),
3097
- /* @__PURE__ */ jsx5("strong", { children: money3(bill.balanceDue) })
3246
+ /* @__PURE__ */ jsxs6("span", { children: [
3247
+ /* @__PURE__ */ jsx6("small", { children: "Balance" }),
3248
+ /* @__PURE__ */ jsx6("strong", { children: money3(bill.balanceDue) })
3098
3249
  ] })
3099
3250
  ] })
3100
3251
  ] }, bill.id)) })
@@ -3106,37 +3257,37 @@ function BillList(props) {
3106
3257
  ...props.className === void 0 ? {} : { className: props.className },
3107
3258
  ...props.style === void 0 ? {} : { style: props.style }
3108
3259
  };
3109
- return /* @__PURE__ */ jsx5(Shell, { ...shellProps, children: /* @__PURE__ */ jsx5(BillListContent, { ...props }) });
3260
+ return /* @__PURE__ */ jsx6(Shell, { ...shellProps, children: /* @__PURE__ */ jsx6(BillListContent, { ...props }) });
3110
3261
  }
3111
3262
  function AgingContent({ bills, heading = "Accounts receivable" }) {
3112
3263
  const summary = useMemo4(() => summarizeBillingDashboard(bills), [bills]);
3113
- return /* @__PURE__ */ jsxs5(Fragment4, { children: [
3114
- /* @__PURE__ */ jsx5("div", { className: "mbdash-head", children: /* @__PURE__ */ jsxs5("div", { children: [
3115
- /* @__PURE__ */ jsx5("h2", { children: heading }),
3116
- /* @__PURE__ */ jsx5("p", { className: "mbdash-copy", children: "Current balances and aging at a glance." })
3264
+ return /* @__PURE__ */ jsxs6(Fragment5, { children: [
3265
+ /* @__PURE__ */ jsx6("div", { className: "mbdash-head", children: /* @__PURE__ */ jsxs6("div", { children: [
3266
+ /* @__PURE__ */ jsx6("h2", { children: heading }),
3267
+ /* @__PURE__ */ jsx6("p", { className: "mbdash-copy", children: "Current balances and aging at a glance." })
3117
3268
  ] }) }),
3118
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-card mbdash-summary", children: [
3119
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-stat", children: [
3120
- /* @__PURE__ */ jsx5("span", { className: "mbdash-label", children: "Outstanding" }),
3121
- /* @__PURE__ */ jsx5("span", { className: "mbdash-value", children: money3(summary.outstanding) })
3269
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-card mbdash-summary", children: [
3270
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-stat", children: [
3271
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-label", children: "Outstanding" }),
3272
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-value", children: money3(summary.outstanding) })
3122
3273
  ] }),
3123
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-stat", children: [
3124
- /* @__PURE__ */ jsx5("span", { className: "mbdash-label", children: "Open bills" }),
3125
- /* @__PURE__ */ jsx5("span", { className: "mbdash-value", children: summary.openCount })
3274
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-stat", children: [
3275
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-label", children: "Open bills" }),
3276
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-value", children: summary.openCount })
3126
3277
  ] }),
3127
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-stat", children: [
3128
- /* @__PURE__ */ jsx5("span", { className: "mbdash-label", children: "Collected" }),
3129
- /* @__PURE__ */ jsx5("span", { className: "mbdash-value", children: money3(summary.totalPaid) })
3278
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-stat", children: [
3279
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-label", children: "Collected" }),
3280
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-value", children: money3(summary.totalPaid) })
3130
3281
  ] }),
3131
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-stat", children: [
3132
- /* @__PURE__ */ jsx5("span", { className: "mbdash-label", children: "Total billed" }),
3133
- /* @__PURE__ */ jsx5("span", { className: "mbdash-value", children: money3(summary.totalBilled) })
3282
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-stat", children: [
3283
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-label", children: "Total billed" }),
3284
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-value", children: money3(summary.totalBilled) })
3134
3285
  ] })
3135
3286
  ] }),
3136
- /* @__PURE__ */ jsx5("div", { className: "mbdash-card mbdash-aging", children: summary.aging.map((bucket) => /* @__PURE__ */ jsxs5("div", { className: "mbdash-aging-item", children: [
3137
- /* @__PURE__ */ jsx5("span", { className: "mbdash-label", children: bucket.label }),
3138
- /* @__PURE__ */ jsx5("strong", { children: money3(bucket.balance) }),
3139
- /* @__PURE__ */ jsxs5("span", { children: [
3287
+ /* @__PURE__ */ jsx6("div", { className: "mbdash-card mbdash-aging", children: summary.aging.map((bucket) => /* @__PURE__ */ jsxs6("div", { className: "mbdash-aging-item", children: [
3288
+ /* @__PURE__ */ jsx6("span", { className: "mbdash-label", children: bucket.label }),
3289
+ /* @__PURE__ */ jsx6("strong", { children: money3(bucket.balance) }),
3290
+ /* @__PURE__ */ jsxs6("span", { children: [
3140
3291
  bucket.count,
3141
3292
  " bill",
3142
3293
  bucket.count === 1 ? "" : "s"
@@ -3150,11 +3301,11 @@ function BillAgingSummary(props) {
3150
3301
  ...props.className === void 0 ? {} : { className: props.className },
3151
3302
  ...props.style === void 0 ? {} : { style: props.style }
3152
3303
  };
3153
- return /* @__PURE__ */ jsx5(Shell, { ...shellProps, children: /* @__PURE__ */ jsx5(AgingContent, { bills: props.bills, ...props.heading === void 0 ? {} : { heading: props.heading } }) });
3304
+ return /* @__PURE__ */ jsx6(Shell, { ...shellProps, children: /* @__PURE__ */ jsx6(AgingContent, { bills: props.bills, ...props.heading === void 0 ? {} : { heading: props.heading } }) });
3154
3305
  }
3155
3306
  function BillingDashboard({ bills, heading = "Billing", description = "Track submitted bills, payments, and outstanding balances.", onSelectBill, initialSearch = "", initialState = "all", hideFilters = false, appearance, className, style }) {
3156
- const [search, setSearch] = useState5(initialSearch);
3157
- const [state, setState] = useState5(initialState);
3307
+ const [search, setSearch] = useState6(initialSearch);
3308
+ const [state, setState] = useState6(initialState);
3158
3309
  const states = useMemo4(() => [...new Set(bills.map((bill) => bill.state))].sort((a, b) => a.localeCompare(b)), [bills]);
3159
3310
  const filtered = useMemo4(() => {
3160
3311
  const query = search.trim().toLowerCase();
@@ -3166,20 +3317,20 @@ function BillingDashboard({ bills, heading = "Billing", description = "Track sub
3166
3317
  ...style === void 0 ? {} : { style }
3167
3318
  };
3168
3319
  const listProps = { bills: filtered, ...onSelectBill === void 0 ? {} : { onSelectBill } };
3169
- return /* @__PURE__ */ jsxs5(Shell, { ...shellProps, children: [
3170
- /* @__PURE__ */ jsx5("div", { className: "mbdash-head", children: /* @__PURE__ */ jsxs5("div", { children: [
3171
- /* @__PURE__ */ jsx5("h2", { children: heading }),
3172
- /* @__PURE__ */ jsx5("p", { className: "mbdash-copy", children: description })
3320
+ return /* @__PURE__ */ jsxs6(Shell, { ...shellProps, children: [
3321
+ /* @__PURE__ */ jsx6("div", { className: "mbdash-head", children: /* @__PURE__ */ jsxs6("div", { children: [
3322
+ /* @__PURE__ */ jsx6("h2", { children: heading }),
3323
+ /* @__PURE__ */ jsx6("p", { className: "mbdash-copy", children: description })
3173
3324
  ] }) }),
3174
- /* @__PURE__ */ jsx5(AgingContent, { bills: filtered, heading: "Receivables" }),
3175
- hideFilters ? null : /* @__PURE__ */ jsxs5("div", { className: "mbdash-filters", children: [
3176
- /* @__PURE__ */ jsx5("input", { className: "mbdash-control", type: "search", value: search, onChange: (event) => setSearch(event.target.value), placeholder: "Search patient, claim, payer, or bill\u2026", "aria-label": "Search bills" }),
3177
- /* @__PURE__ */ jsxs5("select", { className: "mbdash-control", value: state, onChange: (event) => setState(event.target.value), "aria-label": "Filter bills by status", children: [
3178
- /* @__PURE__ */ jsx5("option", { value: "all", children: "All statuses" }),
3179
- states.map((item) => /* @__PURE__ */ jsx5("option", { value: item, children: stateLabel(item) }, item))
3325
+ /* @__PURE__ */ jsx6(AgingContent, { bills: filtered, heading: "Receivables" }),
3326
+ hideFilters ? null : /* @__PURE__ */ jsxs6("div", { className: "mbdash-filters", children: [
3327
+ /* @__PURE__ */ jsx6("input", { className: "mbdash-control", type: "search", value: search, onChange: (event) => setSearch(event.target.value), placeholder: "Search patient, claim, payer, or bill\u2026", "aria-label": "Search bills" }),
3328
+ /* @__PURE__ */ jsxs6("select", { className: "mbdash-control", value: state, onChange: (event) => setState(event.target.value), "aria-label": "Filter bills by status", children: [
3329
+ /* @__PURE__ */ jsx6("option", { value: "all", children: "All statuses" }),
3330
+ states.map((item) => /* @__PURE__ */ jsx6("option", { value: item, children: stateLabel(item) }, item))
3180
3331
  ] })
3181
3332
  ] }),
3182
- /* @__PURE__ */ jsx5(BillListContent, { ...listProps })
3333
+ /* @__PURE__ */ jsx6(BillListContent, { ...listProps })
3183
3334
  ] });
3184
3335
  }
3185
3336
  function buildBillingReportRows(bills, groupBy = "status") {
@@ -3208,39 +3359,39 @@ function BillingReport({ bills, groupBy = "status", heading = "Billing report",
3208
3359
  className: `mbdash-report ${className ?? ""}`.trim(),
3209
3360
  ...style === void 0 ? {} : { style }
3210
3361
  };
3211
- return /* @__PURE__ */ jsx5(Shell, { ...shellProps, children: /* @__PURE__ */ jsxs5("div", { className: "mbdash-card", children: [
3212
- /* @__PURE__ */ jsxs5("div", { className: "mbdash-report-head", children: [
3213
- /* @__PURE__ */ jsxs5("div", { children: [
3214
- /* @__PURE__ */ jsx5("h2", { children: heading }),
3215
- /* @__PURE__ */ jsx5("p", { className: "mbdash-copy", children: description })
3362
+ return /* @__PURE__ */ jsx6(Shell, { ...shellProps, children: /* @__PURE__ */ jsxs6("div", { className: "mbdash-card", children: [
3363
+ /* @__PURE__ */ jsxs6("div", { className: "mbdash-report-head", children: [
3364
+ /* @__PURE__ */ jsxs6("div", { children: [
3365
+ /* @__PURE__ */ jsx6("h2", { children: heading }),
3366
+ /* @__PURE__ */ jsx6("p", { className: "mbdash-copy", children: description })
3216
3367
  ] }),
3217
- /* @__PURE__ */ jsxs5("span", { className: "mbdash-state", children: [
3368
+ /* @__PURE__ */ jsxs6("span", { className: "mbdash-state", children: [
3218
3369
  "By ",
3219
3370
  groupBy
3220
3371
  ] })
3221
3372
  ] }),
3222
- /* @__PURE__ */ jsx5("div", { className: "mbdash-table-wrap", children: /* @__PURE__ */ jsxs5("table", { className: "mbdash-table", children: [
3223
- /* @__PURE__ */ jsx5("thead", { children: /* @__PURE__ */ jsxs5("tr", { children: [
3224
- /* @__PURE__ */ jsx5("th", { children: "Group" }),
3225
- /* @__PURE__ */ jsx5("th", { children: "Bills" }),
3226
- /* @__PURE__ */ jsx5("th", { className: "mbdash-money", children: "Billed" }),
3227
- /* @__PURE__ */ jsx5("th", { className: "mbdash-money", children: "Paid" }),
3228
- /* @__PURE__ */ jsx5("th", { className: "mbdash-money", children: "Balance" })
3373
+ /* @__PURE__ */ jsx6("div", { className: "mbdash-table-wrap", children: /* @__PURE__ */ jsxs6("table", { className: "mbdash-table", children: [
3374
+ /* @__PURE__ */ jsx6("thead", { children: /* @__PURE__ */ jsxs6("tr", { children: [
3375
+ /* @__PURE__ */ jsx6("th", { children: "Group" }),
3376
+ /* @__PURE__ */ jsx6("th", { children: "Bills" }),
3377
+ /* @__PURE__ */ jsx6("th", { className: "mbdash-money", children: "Billed" }),
3378
+ /* @__PURE__ */ jsx6("th", { className: "mbdash-money", children: "Paid" }),
3379
+ /* @__PURE__ */ jsx6("th", { className: "mbdash-money", children: "Balance" })
3229
3380
  ] }) }),
3230
- /* @__PURE__ */ jsxs5("tbody", { children: [
3231
- rows.map((row) => /* @__PURE__ */ jsxs5("tr", { children: [
3232
- /* @__PURE__ */ jsx5("td", { children: /* @__PURE__ */ jsx5("strong", { children: row.label }) }),
3233
- /* @__PURE__ */ jsx5("td", { children: row.billCount }),
3234
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(row.totalBilled) }),
3235
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(row.totalPaid) }),
3236
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(row.balanceDue) })
3381
+ /* @__PURE__ */ jsxs6("tbody", { children: [
3382
+ rows.map((row) => /* @__PURE__ */ jsxs6("tr", { children: [
3383
+ /* @__PURE__ */ jsx6("td", { children: /* @__PURE__ */ jsx6("strong", { children: row.label }) }),
3384
+ /* @__PURE__ */ jsx6("td", { children: row.billCount }),
3385
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(row.totalBilled) }),
3386
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(row.totalPaid) }),
3387
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(row.balanceDue) })
3237
3388
  ] }, row.key)),
3238
- /* @__PURE__ */ jsxs5("tr", { className: "mbdash-report-total", children: [
3239
- /* @__PURE__ */ jsx5("td", { children: "Total" }),
3240
- /* @__PURE__ */ jsx5("td", { children: total.bills }),
3241
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(total.totalBilled) }),
3242
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(total.totalPaid) }),
3243
- /* @__PURE__ */ jsx5("td", { className: "mbdash-money", children: money3(total.outstanding) })
3389
+ /* @__PURE__ */ jsxs6("tr", { className: "mbdash-report-total", children: [
3390
+ /* @__PURE__ */ jsx6("td", { children: "Total" }),
3391
+ /* @__PURE__ */ jsx6("td", { children: total.bills }),
3392
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(total.totalBilled) }),
3393
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(total.totalPaid) }),
3394
+ /* @__PURE__ */ jsx6("td", { className: "mbdash-money", children: money3(total.outstanding) })
3244
3395
  ] })
3245
3396
  ] })
3246
3397
  ] }) })
@@ -3249,7 +3400,7 @@ function BillingReport({ bills, groupBy = "status", heading = "Billing report",
3249
3400
 
3250
3401
  // src/status-aging-matrix.tsx
3251
3402
  import { useMemo as useMemo5 } from "react";
3252
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
3403
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
3253
3404
  var BILL_STATUS_AGING_BUCKETS = [
3254
3405
  { id: "current", label: "0\u201330 days" },
3255
3406
  { id: "31-60", label: "31\u201360 days" },
@@ -3312,7 +3463,7 @@ function buildBillStatusAgingCsv(bills, stateOrder) {
3312
3463
  lines.push(["Total", ...matrix.columnTotals.map((cell) => cell.count), matrix.grandTotal.count]);
3313
3464
  return [header, ...lines].map((line) => line.map(escape).join(",")).join("\n");
3314
3465
  }
3315
- var css4 = `
3466
+ var css5 = `
3316
3467
  .mbmx{color:var(--mb-text);font-family:var(--mb-font);font-size:15px}.mbmx *{box-sizing:border-box}.mbmx h2,.mbmx p{margin:0}
3317
3468
  .mbmx-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}.mbmx-head h2{font-size:24px}.mbmx-copy{color:var(--mb-muted);margin-top:5px!important}
3318
3469
  .mbmx-card{border:1px solid var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);box-shadow:var(--mb-shadow);overflow:auto}
@@ -3343,7 +3494,7 @@ function BillStatusAgingMatrix({
3343
3494
  }) {
3344
3495
  const matrix = useMemo5(() => buildBillStatusAgingMatrix(bills, stateOrder), [bills, stateOrder]);
3345
3496
  const clickable = Boolean(onSelectCell);
3346
- const cell = (data, key, isTotal = false) => /* @__PURE__ */ jsx6("td", { className: isTotal ? "mbmx-rowtotal" : void 0, children: /* @__PURE__ */ jsxs6(
3497
+ const cell = (data, key, isTotal = false) => /* @__PURE__ */ jsx7("td", { className: isTotal ? "mbmx-rowtotal" : void 0, children: /* @__PURE__ */ jsxs7(
3347
3498
  "button",
3348
3499
  {
3349
3500
  type: "button",
@@ -3353,31 +3504,31 @@ function BillStatusAgingMatrix({
3353
3504
  disabled: !clickable || data.count === 0,
3354
3505
  "aria-label": `${stateLabel2(data.state)} \xB7 ${data.bucket === "total" ? "all ages" : data.bucket}: ${data.count} bills`,
3355
3506
  children: [
3356
- /* @__PURE__ */ jsx6("span", { className: `mbmx-count ${data.count === 0 ? "mbmx-zero" : ""}`.trim(), children: data.count === 0 ? "\u2014" : data.count }),
3357
- showBalances && data.count > 0 ? /* @__PURE__ */ jsx6("span", { className: "mbmx-balance", children: money4(data.balance) }) : null
3507
+ /* @__PURE__ */ jsx7("span", { className: `mbmx-count ${data.count === 0 ? "mbmx-zero" : ""}`.trim(), children: data.count === 0 ? "\u2014" : data.count }),
3508
+ showBalances && data.count > 0 ? /* @__PURE__ */ jsx7("span", { className: "mbmx-balance", children: money4(data.balance) }) : null
3358
3509
  ]
3359
3510
  }
3360
3511
  ) }, key);
3361
- return /* @__PURE__ */ jsxs6("div", { className: `mbmx ${className}`.trim(), style: { ...mindBillAppearanceStyle(appearance), ...style }, children: [
3362
- /* @__PURE__ */ jsx6("style", { children: css4 }),
3363
- /* @__PURE__ */ jsx6("div", { className: "mbmx-head", children: /* @__PURE__ */ jsxs6("div", { children: [
3364
- /* @__PURE__ */ jsx6("h2", { children: heading }),
3365
- /* @__PURE__ */ jsx6("p", { className: "mbmx-copy", children: description })
3512
+ return /* @__PURE__ */ jsxs7("div", { className: `mbmx ${className}`.trim(), style: { ...mindBillAppearanceStyle(appearance), ...style }, children: [
3513
+ /* @__PURE__ */ jsx7("style", { children: css5 }),
3514
+ /* @__PURE__ */ jsx7("div", { className: "mbmx-head", children: /* @__PURE__ */ jsxs7("div", { children: [
3515
+ /* @__PURE__ */ jsx7("h2", { children: heading }),
3516
+ /* @__PURE__ */ jsx7("p", { className: "mbmx-copy", children: description })
3366
3517
  ] }) }),
3367
- /* @__PURE__ */ jsx6("div", { className: "mbmx-card", children: /* @__PURE__ */ jsxs6("table", { className: "mbmx-table", children: [
3368
- /* @__PURE__ */ jsx6("thead", { children: /* @__PURE__ */ jsxs6("tr", { children: [
3369
- /* @__PURE__ */ jsx6("th", { children: "Status" }),
3370
- BILL_STATUS_AGING_BUCKETS.map((bucket) => /* @__PURE__ */ jsx6("th", { children: bucket.label }, bucket.id)),
3371
- /* @__PURE__ */ jsx6("th", { children: "Total" })
3518
+ /* @__PURE__ */ jsx7("div", { className: "mbmx-card", children: /* @__PURE__ */ jsxs7("table", { className: "mbmx-table", children: [
3519
+ /* @__PURE__ */ jsx7("thead", { children: /* @__PURE__ */ jsxs7("tr", { children: [
3520
+ /* @__PURE__ */ jsx7("th", { children: "Status" }),
3521
+ BILL_STATUS_AGING_BUCKETS.map((bucket) => /* @__PURE__ */ jsx7("th", { children: bucket.label }, bucket.id)),
3522
+ /* @__PURE__ */ jsx7("th", { children: "Total" })
3372
3523
  ] }) }),
3373
- /* @__PURE__ */ jsxs6("tbody", { children: [
3374
- matrix.rows.map((row) => /* @__PURE__ */ jsxs6("tr", { children: [
3375
- /* @__PURE__ */ jsx6("td", { children: /* @__PURE__ */ jsx6("span", { className: "mbmx-state", children: row.label }) }),
3524
+ /* @__PURE__ */ jsxs7("tbody", { children: [
3525
+ matrix.rows.map((row) => /* @__PURE__ */ jsxs7("tr", { children: [
3526
+ /* @__PURE__ */ jsx7("td", { children: /* @__PURE__ */ jsx7("span", { className: "mbmx-state", children: row.label }) }),
3376
3527
  row.cells.map((data) => cell(data, `${row.state}-${data.bucket}`)),
3377
3528
  cell(row.total, `${row.state}-total`, true)
3378
3529
  ] }, row.state)),
3379
- /* @__PURE__ */ jsxs6("tr", { className: "mbmx-total", children: [
3380
- /* @__PURE__ */ jsx6("td", { children: "Total" }),
3530
+ /* @__PURE__ */ jsxs7("tr", { className: "mbmx-total", children: [
3531
+ /* @__PURE__ */ jsx7("td", { children: "Total" }),
3381
3532
  matrix.columnTotals.map((data) => cell(data, `all-${data.bucket}`)),
3382
3533
  cell(matrix.grandTotal, "all-total", true)
3383
3534
  ] })
@@ -3395,7 +3546,7 @@ import {
3395
3546
  billTasksAgingBucketIndex,
3396
3547
  buildBillTasksDashboard
3397
3548
  } from "@mindbill/browser";
3398
- import { Fragment as Fragment5, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
3549
+ import { Fragment as Fragment6, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
3399
3550
  var TONES = {
3400
3551
  violet: "#7c53c3",
3401
3552
  red: "#cf4437",
@@ -3405,7 +3556,7 @@ var TONES = {
3405
3556
  neutral: "#8195a1"
3406
3557
  };
3407
3558
  var BUCKET_PILL_BASES = ["#2c9a5b", "#1f9aa8", "#dcbb28", "#e08a2e", "#d75d8a"];
3408
- var css5 = `
3559
+ var css6 = `
3409
3560
  .mbtk{color:var(--mb-text);font-family:var(--mb-font);font-size:14px}.mbtk *{box-sizing:border-box}.mbtk h2,.mbtk p{margin:0}
3410
3561
  .mbtk-heading{margin-bottom:14px}.mbtk-heading h2{font-size:24px}
3411
3562
  .mbtk-toolbar{margin-bottom:14px}
@@ -3438,9 +3589,9 @@ var css5 = `
3438
3589
  `;
3439
3590
  function cellButton(key, count, className, label, onSelect) {
3440
3591
  if (count > 0 && onSelect) {
3441
- return /* @__PURE__ */ jsx7("span", { className, children: /* @__PURE__ */ jsx7("button", { type: "button", className: "mbtk-link", "aria-label": label, onClick: onSelect, children: count }) }, key);
3592
+ return /* @__PURE__ */ jsx8("span", { className, children: /* @__PURE__ */ jsx8("button", { type: "button", className: "mbtk-link", "aria-label": label, onClick: onSelect, children: count }) }, key);
3442
3593
  }
3443
- return /* @__PURE__ */ jsx7("span", { className: `${className}${count === 0 ? " mbtk-zero" : ""}`, children: count }, key);
3594
+ return /* @__PURE__ */ jsx8("span", { className: `${className}${count === 0 ? " mbtk-zero" : ""}`, children: count }, key);
3444
3595
  }
3445
3596
  function TaskRow({
3446
3597
  sectionId,
@@ -3449,8 +3600,8 @@ function TaskRow({
3449
3600
  onSelectCell
3450
3601
  }) {
3451
3602
  const allRefs = row.refs.flat();
3452
- return /* @__PURE__ */ jsxs7("div", { className: "mbtk-grid mbtk-row", children: [
3453
- /* @__PURE__ */ jsx7("span", { className: "mbtk-rowlabel", children: row.label }),
3603
+ return /* @__PURE__ */ jsxs8("div", { className: "mbtk-grid mbtk-row", children: [
3604
+ /* @__PURE__ */ jsx8("span", { className: "mbtk-rowlabel", children: row.label }),
3454
3605
  buckets.map((bucket, index) => {
3455
3606
  const count = row.counts[index] ?? 0;
3456
3607
  return cellButton(
@@ -3476,25 +3627,25 @@ function SectionCard({
3476
3627
  emptyLabel,
3477
3628
  onSelectCell
3478
3629
  }) {
3479
- return /* @__PURE__ */ jsxs7(
3630
+ return /* @__PURE__ */ jsxs8(
3480
3631
  "section",
3481
3632
  {
3482
3633
  className: "mbtk-section",
3483
3634
  style: { "--mbtk-tone": TONES[section.tone] },
3484
3635
  "aria-label": section.label,
3485
3636
  children: [
3486
- /* @__PURE__ */ jsxs7("div", { className: "mbtk-grid mbtk-head", children: [
3487
- /* @__PURE__ */ jsxs7("span", { className: "mbtk-title", children: [
3488
- /* @__PURE__ */ jsx7("i", { className: "mbtk-dot", "aria-hidden": "true" }),
3489
- /* @__PURE__ */ jsxs7("span", { className: "mbtk-title-text", children: [
3490
- /* @__PURE__ */ jsx7("strong", { children: section.label }),
3491
- /* @__PURE__ */ jsxs7("span", { className: "mbtk-basis", children: [
3637
+ /* @__PURE__ */ jsxs8("div", { className: "mbtk-grid mbtk-head", children: [
3638
+ /* @__PURE__ */ jsxs8("span", { className: "mbtk-title", children: [
3639
+ /* @__PURE__ */ jsx8("i", { className: "mbtk-dot", "aria-hidden": "true" }),
3640
+ /* @__PURE__ */ jsxs8("span", { className: "mbtk-title-text", children: [
3641
+ /* @__PURE__ */ jsx8("strong", { children: section.label }),
3642
+ /* @__PURE__ */ jsxs8("span", { className: "mbtk-basis", children: [
3492
3643
  "by ",
3493
3644
  section.agingBasisLabel
3494
3645
  ] })
3495
3646
  ] })
3496
3647
  ] }),
3497
- buckets.map((bucket, index) => /* @__PURE__ */ jsx7(
3648
+ buckets.map((bucket, index) => /* @__PURE__ */ jsx8(
3498
3649
  "span",
3499
3650
  {
3500
3651
  className: "mbtk-pill",
@@ -3503,14 +3654,14 @@ function SectionCard({
3503
3654
  },
3504
3655
  bucket.id
3505
3656
  )),
3506
- /* @__PURE__ */ jsx7("span", { className: "mbtk-colhead", children: "Task Total" })
3657
+ /* @__PURE__ */ jsx8("span", { className: "mbtk-colhead", children: "Task Total" })
3507
3658
  ] }),
3508
- section.empty ? /* @__PURE__ */ jsx7("p", { className: "mbtk-empty", children: emptyLabel }) : /* @__PURE__ */ jsxs7(Fragment5, { children: [
3509
- section.rows.map((row) => /* @__PURE__ */ jsx7(TaskRow, { sectionId: section.id, row, buckets, onSelectCell }, row.id)),
3510
- /* @__PURE__ */ jsxs7("div", { className: "mbtk-grid mbtk-row mbtk-totals", children: [
3511
- /* @__PURE__ */ jsx7("span", { className: "mbtk-rowlabel", children: "Total" }),
3512
- buckets.map((bucket, index) => /* @__PURE__ */ jsx7("span", { className: "mbtk-count", children: section.totals[index] ?? 0 }, bucket.id)),
3513
- /* @__PURE__ */ jsx7("span", { className: "mbtk-total", children: section.total })
3659
+ section.empty ? /* @__PURE__ */ jsx8("p", { className: "mbtk-empty", children: emptyLabel }) : /* @__PURE__ */ jsxs8(Fragment6, { children: [
3660
+ section.rows.map((row) => /* @__PURE__ */ jsx8(TaskRow, { sectionId: section.id, row, buckets, onSelectCell }, row.id)),
3661
+ /* @__PURE__ */ jsxs8("div", { className: "mbtk-grid mbtk-row mbtk-totals", children: [
3662
+ /* @__PURE__ */ jsx8("span", { className: "mbtk-rowlabel", children: "Total" }),
3663
+ buckets.map((bucket, index) => /* @__PURE__ */ jsx8("span", { className: "mbtk-count", children: section.totals[index] ?? 0 }, bucket.id)),
3664
+ /* @__PURE__ */ jsx8("span", { className: "mbtk-total", children: section.total })
3514
3665
  ] })
3515
3666
  ] })
3516
3667
  ]
@@ -3531,16 +3682,16 @@ function BillTasksDashboard({
3531
3682
  style
3532
3683
  }) {
3533
3684
  const columns = `minmax(150px,1.6fr) repeat(${buckets.length},minmax(84px,1fr)) minmax(84px,1fr)`;
3534
- return /* @__PURE__ */ jsxs7(
3685
+ return /* @__PURE__ */ jsxs8(
3535
3686
  "div",
3536
3687
  {
3537
3688
  className: `mbtk ${className}`.trim(),
3538
3689
  style: { ...mindBillAppearanceStyle(appearance), "--mbtk-cols": columns, ...style },
3539
3690
  children: [
3540
- /* @__PURE__ */ jsx7("style", { children: css5 }),
3541
- heading ? /* @__PURE__ */ jsx7("div", { className: "mbtk-heading", children: typeof heading === "string" ? /* @__PURE__ */ jsx7("h2", { children: heading }) : heading }) : null,
3542
- toolbar ? /* @__PURE__ */ jsx7("div", { className: "mbtk-toolbar", children: toolbar }) : null,
3543
- data.sections.map((section) => /* @__PURE__ */ jsx7(
3691
+ /* @__PURE__ */ jsx8("style", { children: css6 }),
3692
+ heading ? /* @__PURE__ */ jsx8("div", { className: "mbtk-heading", children: typeof heading === "string" ? /* @__PURE__ */ jsx8("h2", { children: heading }) : heading }) : null,
3693
+ toolbar ? /* @__PURE__ */ jsx8("div", { className: "mbtk-toolbar", children: toolbar }) : null,
3694
+ data.sections.map((section) => /* @__PURE__ */ jsx8(
3544
3695
  SectionCard,
3545
3696
  {
3546
3697
  section,
@@ -3550,19 +3701,19 @@ function BillTasksDashboard({
3550
3701
  },
3551
3702
  section.id
3552
3703
  )),
3553
- /* @__PURE__ */ jsx7("section", { className: "mbtk-section is-grand", "aria-label": grandTotalLabel, children: /* @__PURE__ */ jsxs7("div", { className: "mbtk-grid mbtk-row mbtk-grand mbtk-totals", children: [
3554
- /* @__PURE__ */ jsx7("span", { className: "mbtk-rowlabel", children: grandTotalLabel }),
3555
- buckets.map((bucket, index) => /* @__PURE__ */ jsx7("span", { className: "mbtk-count", children: data.grandTotals[index] ?? 0 }, bucket.id)),
3556
- /* @__PURE__ */ jsx7("span", { className: "mbtk-total", children: data.grandTotal })
3704
+ /* @__PURE__ */ jsx8("section", { className: "mbtk-section is-grand", "aria-label": grandTotalLabel, children: /* @__PURE__ */ jsxs8("div", { className: "mbtk-grid mbtk-row mbtk-grand mbtk-totals", children: [
3705
+ /* @__PURE__ */ jsx8("span", { className: "mbtk-rowlabel", children: grandTotalLabel }),
3706
+ buckets.map((bucket, index) => /* @__PURE__ */ jsx8("span", { className: "mbtk-count", children: data.grandTotals[index] ?? 0 }, bucket.id)),
3707
+ /* @__PURE__ */ jsx8("span", { className: "mbtk-total", children: data.grandTotal })
3557
3708
  ] }) }),
3558
- footnote ? /* @__PURE__ */ jsx7("p", { className: "mbtk-footnote", children: footnote }) : null
3709
+ footnote ? /* @__PURE__ */ jsx8("p", { className: "mbtk-footnote", children: footnote }) : null
3559
3710
  ]
3560
3711
  }
3561
3712
  );
3562
3713
  }
3563
3714
 
3564
3715
  // src/bill-submissions-ribbon.tsx
3565
- import { Fragment as Fragment6, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
3716
+ import { Fragment as Fragment7, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
3566
3717
  function billSubmissionsRibbonDeliveryLabel(summary) {
3567
3718
  if (/electronically sent/i.test(summary)) return "e-Bill (837)";
3568
3719
  if (/faxed/i.test(summary)) return "Fax";
@@ -3585,7 +3736,7 @@ function billSubmissionsRibbonFromHistory(history) {
3585
3736
  ]
3586
3737
  }));
3587
3738
  }
3588
- var css6 = `
3739
+ var css7 = `
3589
3740
  .mbsr{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;color:var(--mb-text);font-family:var(--mb-font);font-size:13px}
3590
3741
  .mbsr *{box-sizing:border-box}
3591
3742
  .mbsr-chip{flex:0 0 auto;display:grid;gap:7px;min-width:180px;max-width:280px;padding:11px 13px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-surface);color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer}
@@ -3606,7 +3757,7 @@ function BillSubmissionsRibbon({
3606
3757
  className = "",
3607
3758
  style
3608
3759
  }) {
3609
- return /* @__PURE__ */ jsxs8(
3760
+ return /* @__PURE__ */ jsxs9(
3610
3761
  "div",
3611
3762
  {
3612
3763
  className: `mbsr ${className}`.trim(),
@@ -3614,19 +3765,19 @@ function BillSubmissionsRibbon({
3614
3765
  role: "list",
3615
3766
  "aria-label": "Bill submissions",
3616
3767
  children: [
3617
- /* @__PURE__ */ jsx8("style", { children: css6 }),
3768
+ /* @__PURE__ */ jsx9("style", { children: css7 }),
3618
3769
  items.map((item) => {
3619
- const content = /* @__PURE__ */ jsxs8(Fragment6, { children: [
3620
- /* @__PURE__ */ jsxs8("span", { className: "mbsr-top", children: [
3621
- /* @__PURE__ */ jsx8("span", { className: "mbsr-label", children: item.label }),
3622
- item.badge ? /* @__PURE__ */ jsx8("span", { className: "mbsr-badge", children: item.badge }) : null
3770
+ const content = /* @__PURE__ */ jsxs9(Fragment7, { children: [
3771
+ /* @__PURE__ */ jsxs9("span", { className: "mbsr-top", children: [
3772
+ /* @__PURE__ */ jsx9("span", { className: "mbsr-label", children: item.label }),
3773
+ item.badge ? /* @__PURE__ */ jsx9("span", { className: "mbsr-badge", children: item.badge }) : null
3623
3774
  ] }),
3624
- item.meta?.length ? /* @__PURE__ */ jsx8("span", { className: "mbsr-meta", children: item.meta.slice(0, 3).map((pair) => /* @__PURE__ */ jsxs8("span", { children: [
3625
- /* @__PURE__ */ jsx8("i", { children: pair.label }),
3626
- /* @__PURE__ */ jsx8("b", { children: pair.value })
3775
+ item.meta?.length ? /* @__PURE__ */ jsx9("span", { className: "mbsr-meta", children: item.meta.slice(0, 3).map((pair) => /* @__PURE__ */ jsxs9("span", { children: [
3776
+ /* @__PURE__ */ jsx9("i", { children: pair.label }),
3777
+ /* @__PURE__ */ jsx9("b", { children: pair.value })
3627
3778
  ] }, pair.label)) }) : null
3628
3779
  ] });
3629
- return item.href ? /* @__PURE__ */ jsx8(
3780
+ return item.href ? /* @__PURE__ */ jsx9(
3630
3781
  "a",
3631
3782
  {
3632
3783
  className: "mbsr-chip",
@@ -3637,7 +3788,7 @@ function BillSubmissionsRibbon({
3637
3788
  children: content
3638
3789
  },
3639
3790
  item.id
3640
- ) : /* @__PURE__ */ jsx8(
3791
+ ) : /* @__PURE__ */ jsx9(
3641
3792
  "button",
3642
3793
  {
3643
3794
  type: "button",
@@ -3656,13 +3807,13 @@ function BillSubmissionsRibbon({
3656
3807
  }
3657
3808
 
3658
3809
  // src/report-bill-status-dialog.tsx
3659
- import { useEffect as useEffect5, useState as useState6 } from "react";
3810
+ import { useEffect as useEffect6, useState as useState7 } from "react";
3660
3811
  import {
3661
3812
  REPORT_BILL_STATUS_OPTIONS
3662
3813
  } from "@mindbill/browser";
3663
3814
  import { REPORT_BILL_STATUS_OPTIONS as REPORT_BILL_STATUS_OPTIONS2 } from "@mindbill/browser";
3664
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
3665
- var css7 = `
3815
+ import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
3816
+ var css8 = `
3666
3817
  .mbbs-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(15,30,40,.45)}
3667
3818
  .mbbs{display:grid;gap:18px;width:min(860px,100%);max-height:min(90vh,960px);overflow:auto;overscroll-behavior:contain;padding:24px;border:1px solid var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);color:var(--mb-text);font-family:var(--mb-font);font-size:14px;box-shadow:0 24px 60px rgba(17,38,49,.28)}
3668
3819
  .mbbs *{box-sizing:border-box}
@@ -3712,14 +3863,14 @@ function ReportBillStatusDialog({
3712
3863
  className = "",
3713
3864
  style
3714
3865
  }) {
3715
- const [status, setStatus] = useState6(null);
3716
- const [company, setCompany] = useState6("");
3717
- const [representativeName, setRepresentativeName] = useState6("");
3718
- const [representativeRole, setRepresentativeRole] = useState6("");
3719
- const [phone, setPhone] = useState6("");
3720
- const [callReference, setCallReference] = useState6("");
3721
- const [note, setNote] = useState6("");
3722
- useEffect5(() => {
3866
+ const [status, setStatus] = useState7(null);
3867
+ const [company, setCompany] = useState7("");
3868
+ const [representativeName, setRepresentativeName] = useState7("");
3869
+ const [representativeRole, setRepresentativeRole] = useState7("");
3870
+ const [phone, setPhone] = useState7("");
3871
+ const [callReference, setCallReference] = useState7("");
3872
+ const [note, setNote] = useState7("");
3873
+ useEffect6(() => {
3723
3874
  const onKey = (event) => {
3724
3875
  if (event.key === "Escape" && !submitting) onCancel();
3725
3876
  };
@@ -3738,11 +3889,11 @@ function ReportBillStatusDialog({
3738
3889
  ...note.trim() ? { note: note.trim() } : {}
3739
3890
  });
3740
3891
  };
3741
- const field = (label, value, onChange) => /* @__PURE__ */ jsxs9("label", { className: "mbbs-field", children: [
3742
- /* @__PURE__ */ jsx9("span", { className: "mbbs-label", children: label }),
3743
- /* @__PURE__ */ jsx9("input", { className: "mbbs-input", value, disabled: submitting, onChange: (event) => onChange(event.target.value) })
3892
+ const field = (label, value, onChange) => /* @__PURE__ */ jsxs10("label", { className: "mbbs-field", children: [
3893
+ /* @__PURE__ */ jsx10("span", { className: "mbbs-label", children: label }),
3894
+ /* @__PURE__ */ jsx10("input", { className: "mbbs-input", value, disabled: submitting, onChange: (event) => onChange(event.target.value) })
3744
3895
  ] }, label);
3745
- return /* @__PURE__ */ jsxs9(
3896
+ return /* @__PURE__ */ jsxs10(
3746
3897
  "div",
3747
3898
  {
3748
3899
  className: "mbbs-overlay",
@@ -3751,8 +3902,8 @@ function ReportBillStatusDialog({
3751
3902
  if (event.target === event.currentTarget && !submitting) onCancel();
3752
3903
  },
3753
3904
  children: [
3754
- /* @__PURE__ */ jsx9("style", { children: css7 }),
3755
- /* @__PURE__ */ jsxs9(
3905
+ /* @__PURE__ */ jsx10("style", { children: css8 }),
3906
+ /* @__PURE__ */ jsxs10(
3756
3907
  "div",
3757
3908
  {
3758
3909
  className: `mbbs ${className}`.trim(),
@@ -3761,57 +3912,57 @@ function ReportBillStatusDialog({
3761
3912
  "aria-modal": "true",
3762
3913
  "aria-label": typeof title === "string" ? title : "Report Bill Status",
3763
3914
  children: [
3764
- /* @__PURE__ */ jsxs9("div", { className: "mbbs-head", children: [
3765
- /* @__PURE__ */ jsx9("h3", { className: "mbbs-title", children: title }),
3766
- /* @__PURE__ */ jsx9("button", { className: "mbbs-close", type: "button", "aria-label": "Close", disabled: submitting, onClick: onCancel, children: "\xD7" })
3915
+ /* @__PURE__ */ jsxs10("div", { className: "mbbs-head", children: [
3916
+ /* @__PURE__ */ jsx10("h3", { className: "mbbs-title", children: title }),
3917
+ /* @__PURE__ */ jsx10("button", { className: "mbbs-close", type: "button", "aria-label": "Close", disabled: submitting, onClick: onCancel, children: "\xD7" })
3767
3918
  ] }),
3768
- claimsAdmin || billReview ? /* @__PURE__ */ jsxs9("div", { className: "mbbs-section", children: [
3769
- /* @__PURE__ */ jsx9("h4", { children: "1. Call Claims Administrator or Bill Review" }),
3770
- /* @__PURE__ */ jsx9("p", { className: "mbbs-copy", children: "Contact the payer to request the payment status of this bill." }),
3771
- /* @__PURE__ */ jsxs9("div", { className: "mbbs-contacts", children: [
3772
- claimsAdmin ? /* @__PURE__ */ jsxs9("div", { className: "mbbs-contact", children: [
3773
- /* @__PURE__ */ jsx9("h5", { children: "Claims Admin" }),
3774
- /* @__PURE__ */ jsxs9("dl", { children: [
3775
- /* @__PURE__ */ jsxs9("div", { children: [
3776
- /* @__PURE__ */ jsx9("dt", { children: "Name" }),
3777
- /* @__PURE__ */ jsx9("dd", { children: claimsAdmin.name })
3919
+ claimsAdmin || billReview ? /* @__PURE__ */ jsxs10("div", { className: "mbbs-section", children: [
3920
+ /* @__PURE__ */ jsx10("h4", { children: "1. Call Claims Administrator or Bill Review" }),
3921
+ /* @__PURE__ */ jsx10("p", { className: "mbbs-copy", children: "Contact the payer to request the payment status of this bill." }),
3922
+ /* @__PURE__ */ jsxs10("div", { className: "mbbs-contacts", children: [
3923
+ claimsAdmin ? /* @__PURE__ */ jsxs10("div", { className: "mbbs-contact", children: [
3924
+ /* @__PURE__ */ jsx10("h5", { children: "Claims Admin" }),
3925
+ /* @__PURE__ */ jsxs10("dl", { children: [
3926
+ /* @__PURE__ */ jsxs10("div", { children: [
3927
+ /* @__PURE__ */ jsx10("dt", { children: "Name" }),
3928
+ /* @__PURE__ */ jsx10("dd", { children: claimsAdmin.name })
3778
3929
  ] }),
3779
- claimsAdmin.hoursOfOperation ? /* @__PURE__ */ jsxs9("div", { children: [
3780
- /* @__PURE__ */ jsx9("dt", { children: "Hours of Operation" }),
3781
- /* @__PURE__ */ jsx9("dd", { children: claimsAdmin.hoursOfOperation })
3930
+ claimsAdmin.hoursOfOperation ? /* @__PURE__ */ jsxs10("div", { children: [
3931
+ /* @__PURE__ */ jsx10("dt", { children: "Hours of Operation" }),
3932
+ /* @__PURE__ */ jsx10("dd", { children: claimsAdmin.hoursOfOperation })
3782
3933
  ] }) : null,
3783
- (claimsAdmin.phones ?? []).map((entry) => /* @__PURE__ */ jsxs9("div", { children: [
3784
- /* @__PURE__ */ jsx9("dt", { children: entry.label }),
3785
- /* @__PURE__ */ jsx9("dd", { children: entry.value })
3934
+ (claimsAdmin.phones ?? []).map((entry) => /* @__PURE__ */ jsxs10("div", { children: [
3935
+ /* @__PURE__ */ jsx10("dt", { children: entry.label }),
3936
+ /* @__PURE__ */ jsx10("dd", { children: entry.value })
3786
3937
  ] }, `${entry.label}-${entry.value}`))
3787
3938
  ] })
3788
3939
  ] }) : null,
3789
- billReview ? /* @__PURE__ */ jsxs9("div", { className: "mbbs-contact", children: [
3790
- /* @__PURE__ */ jsx9("h5", { children: "Bill Review" }),
3791
- /* @__PURE__ */ jsxs9("dl", { children: [
3792
- /* @__PURE__ */ jsxs9("div", { children: [
3793
- /* @__PURE__ */ jsx9("dt", { children: "Name" }),
3794
- /* @__PURE__ */ jsx9("dd", { children: billReview.name })
3940
+ billReview ? /* @__PURE__ */ jsxs10("div", { className: "mbbs-contact", children: [
3941
+ /* @__PURE__ */ jsx10("h5", { children: "Bill Review" }),
3942
+ /* @__PURE__ */ jsxs10("dl", { children: [
3943
+ /* @__PURE__ */ jsxs10("div", { children: [
3944
+ /* @__PURE__ */ jsx10("dt", { children: "Name" }),
3945
+ /* @__PURE__ */ jsx10("dd", { children: billReview.name })
3795
3946
  ] }),
3796
- billReview.phone ? /* @__PURE__ */ jsxs9("div", { children: [
3797
- /* @__PURE__ */ jsx9("dt", { children: "Phone" }),
3798
- /* @__PURE__ */ jsx9("dd", { children: billReview.phone })
3947
+ billReview.phone ? /* @__PURE__ */ jsxs10("div", { children: [
3948
+ /* @__PURE__ */ jsx10("dt", { children: "Phone" }),
3949
+ /* @__PURE__ */ jsx10("dd", { children: billReview.phone })
3799
3950
  ] }) : null
3800
3951
  ] })
3801
3952
  ] }) : null
3802
3953
  ] })
3803
3954
  ] }) : null,
3804
- receipt ? /* @__PURE__ */ jsxs9("div", { className: "mbbs-section", children: [
3805
- /* @__PURE__ */ jsx9("h4", { children: "2. Review Bill Submission Receipt" }),
3806
- /* @__PURE__ */ jsx9("p", { className: "mbbs-copy", children: "Reference the submission receipt below when the payer asks how and when the bill was sent." }),
3807
- /* @__PURE__ */ jsx9("div", { className: "mbbs-receipt", children: receipt })
3955
+ receipt ? /* @__PURE__ */ jsxs10("div", { className: "mbbs-section", children: [
3956
+ /* @__PURE__ */ jsx10("h4", { children: "2. Review Bill Submission Receipt" }),
3957
+ /* @__PURE__ */ jsx10("p", { className: "mbbs-copy", children: "Reference the submission receipt below when the payer asks how and when the bill was sent." }),
3958
+ /* @__PURE__ */ jsx10("div", { className: "mbbs-receipt", children: receipt })
3808
3959
  ] }) : null,
3809
- /* @__PURE__ */ jsxs9("div", { className: "mbbs-section", children: [
3810
- /* @__PURE__ */ jsx9("h4", { children: "3. Report Bill Payment Status" }),
3811
- /* @__PURE__ */ jsx9("p", { className: "mbbs-copy", children: "Select the status reported by the payer, then record who provided it." }),
3812
- /* @__PURE__ */ jsxs9("div", { className: "mbbs-report", children: [
3813
- /* @__PURE__ */ jsx9("div", { className: "mbbs-options", role: "radiogroup", "aria-label": "Reported bill payment status", children: REPORT_BILL_STATUS_OPTIONS.map((option) => /* @__PURE__ */ jsxs9("label", { className: "mbbs-option", "data-selected": status === option.id, children: [
3814
- /* @__PURE__ */ jsx9(
3960
+ /* @__PURE__ */ jsxs10("div", { className: "mbbs-section", children: [
3961
+ /* @__PURE__ */ jsx10("h4", { children: "3. Report Bill Payment Status" }),
3962
+ /* @__PURE__ */ jsx10("p", { className: "mbbs-copy", children: "Select the status reported by the payer, then record who provided it." }),
3963
+ /* @__PURE__ */ jsxs10("div", { className: "mbbs-report", children: [
3964
+ /* @__PURE__ */ jsx10("div", { className: "mbbs-options", role: "radiogroup", "aria-label": "Reported bill payment status", children: REPORT_BILL_STATUS_OPTIONS.map((option) => /* @__PURE__ */ jsxs10("label", { className: "mbbs-option", "data-selected": status === option.id, children: [
3965
+ /* @__PURE__ */ jsx10(
3815
3966
  "input",
3816
3967
  {
3817
3968
  type: "radio",
@@ -3822,28 +3973,28 @@ function ReportBillStatusDialog({
3822
3973
  onChange: () => setStatus(option.id)
3823
3974
  }
3824
3975
  ),
3825
- /* @__PURE__ */ jsxs9("span", { children: [
3826
- /* @__PURE__ */ jsx9("span", { className: "mbbs-option-label", children: option.label }),
3827
- /* @__PURE__ */ jsx9("span", { className: "mbbs-option-copy", children: option.description })
3976
+ /* @__PURE__ */ jsxs10("span", { children: [
3977
+ /* @__PURE__ */ jsx10("span", { className: "mbbs-option-label", children: option.label }),
3978
+ /* @__PURE__ */ jsx10("span", { className: "mbbs-option-copy", children: option.description })
3828
3979
  ] })
3829
3980
  ] }, option.id)) }),
3830
- /* @__PURE__ */ jsxs9("div", { className: "mbbs-fields", children: [
3981
+ /* @__PURE__ */ jsxs10("div", { className: "mbbs-fields", children: [
3831
3982
  field("Company", company, setCompany),
3832
3983
  field("Name", representativeName, setRepresentativeName),
3833
3984
  field("Role", representativeRole, setRepresentativeRole),
3834
3985
  field("Phone Number", phone, setPhone),
3835
3986
  field("Call Reference Number", callReference, setCallReference),
3836
- /* @__PURE__ */ jsxs9("label", { className: "mbbs-field", children: [
3837
- /* @__PURE__ */ jsx9("span", { className: "mbbs-label", children: "Message Note" }),
3838
- /* @__PURE__ */ jsx9("textarea", { className: "mbbs-textarea", value: note, disabled: submitting, onChange: (event) => setNote(event.target.value) })
3987
+ /* @__PURE__ */ jsxs10("label", { className: "mbbs-field", children: [
3988
+ /* @__PURE__ */ jsx10("span", { className: "mbbs-label", children: "Message Note" }),
3989
+ /* @__PURE__ */ jsx10("textarea", { className: "mbbs-textarea", value: note, disabled: submitting, onChange: (event) => setNote(event.target.value) })
3839
3990
  ] })
3840
3991
  ] })
3841
3992
  ] })
3842
3993
  ] }),
3843
- error ? /* @__PURE__ */ jsx9("div", { className: "mbbs-alert", role: "alert", children: error }) : null,
3844
- /* @__PURE__ */ jsxs9("div", { className: "mbbs-actions", children: [
3845
- /* @__PURE__ */ jsx9("button", { className: "mbbs-cancel", type: "button", disabled: submitting, onClick: onCancel, children: "Cancel" }),
3846
- /* @__PURE__ */ jsx9("button", { className: "mbbs-save", type: "button", disabled: submitting || !status, onClick: save, children: submitting ? "Saving\u2026" : "Save" })
3994
+ error ? /* @__PURE__ */ jsx10("div", { className: "mbbs-alert", role: "alert", children: error }) : null,
3995
+ /* @__PURE__ */ jsxs10("div", { className: "mbbs-actions", children: [
3996
+ /* @__PURE__ */ jsx10("button", { className: "mbbs-cancel", type: "button", disabled: submitting, onClick: onCancel, children: "Cancel" }),
3997
+ /* @__PURE__ */ jsx10("button", { className: "mbbs-save", type: "button", disabled: submitting || !status, onClick: save, children: submitting ? "Saving\u2026" : "Save" })
3847
3998
  ] })
3848
3999
  ]
3849
4000
  }
@@ -3854,18 +4005,18 @@ function ReportBillStatusDialog({
3854
4005
  }
3855
4006
 
3856
4007
  // src/organization-onboarding.tsx
3857
- import { useCallback as useCallback2, useEffect as useEffect6, useMemo as useMemo6, useRef as useRef3, useState as useState7 } from "react";
4008
+ import { useCallback as useCallback2, useEffect as useEffect7, useMemo as useMemo6, useRef as useRef3, useState as useState8 } from "react";
3858
4009
  import {
3859
4010
  createOrganizationClient
3860
4011
  } from "@mindbill/browser";
3861
- import { Fragment as Fragment7, jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
4012
+ import { Fragment as Fragment8, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
3862
4013
  var STEPS = [
3863
4014
  { id: "practice", label: "Practice & billing" },
3864
4015
  { id: "locations", label: "Locations" },
3865
4016
  { id: "w9", label: "W-9" },
3866
4017
  { id: "review", label: "Review" }
3867
4018
  ];
3868
- var css8 = `
4019
+ var css9 = `
3869
4020
  .mbob{color:var(--mb-text);font-family:var(--mb-font);font-size:15px}.mbob *{box-sizing:border-box}.mbob h2,.mbob h3,.mbob p{margin:0}
3870
4021
  .mbob-card{border:1px solid var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);box-shadow:var(--mb-shadow);padding:24px}
3871
4022
  .mbob-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.mbob-head h2{font-size:22px}.mbob-copy{color:var(--mb-muted);margin-top:5px!important}
@@ -3929,16 +4080,16 @@ function OrganizationOnboarding({
3929
4080
  }),
3930
4081
  [sessionEndpoint, getSession, apiBaseUrl]
3931
4082
  );
3932
- const [profile, setProfile] = useState7(null);
3933
- const [loadError, setLoadError] = useState7(null);
3934
- const [step, setStep] = useState7("practice");
3935
- const [identity, setIdentity] = useState7({ name: "", legalName: "", taxId: "", npi: "", phone: "", email: "" });
3936
- const [provider, setProvider] = useState7({ name: "", taxId: "", npi: "", billType: "Professional", phone: "", billingStreet: "", billingCity: "", billingState: "", billingZip: "" });
3937
- const [locations, setLocations] = useState7([blankLocation()]);
3938
- const [w9File, setW9File] = useState7(null);
3939
- const [saving, setSaving] = useState7(false);
3940
- const [error, setError] = useState7(null);
3941
- const [savedStep, setSavedStep] = useState7({});
4083
+ const [profile, setProfile] = useState8(null);
4084
+ const [loadError, setLoadError] = useState8(null);
4085
+ const [step, setStep] = useState8("practice");
4086
+ const [identity, setIdentity] = useState8({ name: "", legalName: "", taxId: "", npi: "", phone: "", email: "" });
4087
+ const [provider, setProvider] = useState8({ name: "", taxId: "", npi: "", billType: "Professional", phone: "", billingStreet: "", billingCity: "", billingState: "", billingZip: "" });
4088
+ const [locations, setLocations] = useState8([blankLocation()]);
4089
+ const [w9File, setW9File] = useState8(null);
4090
+ const [saving, setSaving] = useState8(false);
4091
+ const [error, setError] = useState8(null);
4092
+ const [savedStep, setSavedStep] = useState8({});
3942
4093
  const completedFired = useRef3(false);
3943
4094
  const adoptProfile = useCallback2((next) => {
3944
4095
  setProfile(next);
@@ -3957,7 +4108,7 @@ function OrganizationOnboarding({
3957
4108
  onCompleted?.(next);
3958
4109
  }
3959
4110
  }, [onCompleted]);
3960
- useEffect6(() => {
4111
+ useEffect7(() => {
3961
4112
  let alive = true;
3962
4113
  client.getOrganization().then((next) => {
3963
4114
  if (alive) {
@@ -4004,16 +4155,16 @@ function OrganizationOnboarding({
4004
4155
  if (!w9File) throw new Error("Choose the practice W-9 PDF first.");
4005
4156
  return client.saveW9({ filename: w9File.name, contentBase64: await fileToBase64(w9File) });
4006
4157
  }, "w9");
4007
- const field = (label, value, onChange, span = false, placeholder = "") => /* @__PURE__ */ jsxs10("label", { className: `mbob-field${span ? " mbob-span" : ""}`, children: [
4158
+ const field = (label, value, onChange, span = false, placeholder = "") => /* @__PURE__ */ jsxs11("label", { className: `mbob-field${span ? " mbob-span" : ""}`, children: [
4008
4159
  label,
4009
- /* @__PURE__ */ jsx10("input", { value, placeholder, onChange: (event) => onChange(event.target.value), disabled: saving })
4160
+ /* @__PURE__ */ jsx11("input", { value, placeholder, onChange: (event) => onChange(event.target.value), disabled: saving })
4010
4161
  ] });
4011
4162
  const setLocation = (index, patch) => setLocations((current) => current.map((item, itemIndex) => {
4012
4163
  if (itemIndex !== index) return patch.isPrimary ? { ...item, isPrimary: false } : item;
4013
4164
  return { ...item, ...patch };
4014
4165
  }));
4015
- const practiceSection = /* @__PURE__ */ jsxs10("div", { children: [
4016
- /* @__PURE__ */ jsxs10("div", { className: "mbob-grid", children: [
4166
+ const practiceSection = /* @__PURE__ */ jsxs11("div", { children: [
4167
+ /* @__PURE__ */ jsxs11("div", { className: "mbob-grid", children: [
4017
4168
  field("Practice name", identity.name, (name) => setIdentity((c) => ({ ...c, name }))),
4018
4169
  field("Legal name", identity.legalName, (legalName) => setIdentity((c) => ({ ...c, legalName }))),
4019
4170
  field("Tax ID (EIN)", identity.taxId, (taxId) => setIdentity((c) => ({ ...c, taxId })), false, "94-1234567"),
@@ -4021,8 +4172,8 @@ function OrganizationOnboarding({
4021
4172
  field("Phone", identity.phone, (phone) => setIdentity((c) => ({ ...c, phone }))),
4022
4173
  field("Email", identity.email, (email) => setIdentity((c) => ({ ...c, email })))
4023
4174
  ] }),
4024
- /* @__PURE__ */ jsx10("h3", { className: "mbob-subhead", children: "Billing provider (pay-to)" }),
4025
- /* @__PURE__ */ jsxs10("div", { className: "mbob-grid", children: [
4175
+ /* @__PURE__ */ jsx11("h3", { className: "mbob-subhead", children: "Billing provider (pay-to)" }),
4176
+ /* @__PURE__ */ jsxs11("div", { className: "mbob-grid", children: [
4026
4177
  field("Billing provider name", provider.name, (name) => setProvider((c) => ({ ...c, name }))),
4027
4178
  field("Billing tax ID", provider.taxId, (taxId) => setProvider((c) => ({ ...c, taxId }))),
4028
4179
  field("Billing NPI", provider.npi, (npi) => setProvider((c) => ({ ...c, npi }))),
@@ -4032,88 +4183,88 @@ function OrganizationOnboarding({
4032
4183
  field("State", provider.billingState ?? "", (billingState) => setProvider((c) => ({ ...c, billingState: billingState.toUpperCase().slice(0, 2) }))),
4033
4184
  field("ZIP", provider.billingZip ?? "", (billingZip) => setProvider((c) => ({ ...c, billingZip })))
4034
4185
  ] }),
4035
- /* @__PURE__ */ jsxs10("div", { className: "mbob-actions", children: [
4036
- /* @__PURE__ */ jsx10("span", { className: "mbob-status", children: savedStep["practice"] ? "Saved to MindBill." : "Saved once, used on every bill." }),
4037
- /* @__PURE__ */ jsx10("button", { className: "mbob-save", type: "button", disabled: saving, onClick: savePractice, children: saving ? "Saving\u2026" : "Save practice" })
4186
+ /* @__PURE__ */ jsxs11("div", { className: "mbob-actions", children: [
4187
+ /* @__PURE__ */ jsx11("span", { className: "mbob-status", children: savedStep["practice"] ? "Saved to MindBill." : "Saved once, used on every bill." }),
4188
+ /* @__PURE__ */ jsx11("button", { className: "mbob-save", type: "button", disabled: saving, onClick: savePractice, children: saving ? "Saving\u2026" : "Save practice" })
4038
4189
  ] })
4039
4190
  ] });
4040
- const locationsSection = /* @__PURE__ */ jsxs10("div", { children: [
4041
- locations.map((location, index) => /* @__PURE__ */ jsxs10("div", { className: "mbob-loc", children: [
4191
+ const locationsSection = /* @__PURE__ */ jsxs11("div", { children: [
4192
+ locations.map((location, index) => /* @__PURE__ */ jsxs11("div", { className: "mbob-loc", children: [
4042
4193
  field("Name", location.name, (name) => setLocation(index, { name })),
4043
4194
  field("Street", location.street, (street) => setLocation(index, { street })),
4044
4195
  field("City", location.city, (city) => setLocation(index, { city })),
4045
4196
  field("State", location.state, (state) => setLocation(index, { state: state.toUpperCase().slice(0, 2) })),
4046
4197
  field("ZIP", location.zip, (zip) => setLocation(index, { zip })),
4047
- /* @__PURE__ */ jsxs10("label", { className: "mbob-primary", children: [
4048
- /* @__PURE__ */ jsx10("input", { type: "radio", name: "mbob-primary", checked: location.isPrimary === true, onChange: () => setLocation(index, { isPrimary: true }) }),
4198
+ /* @__PURE__ */ jsxs11("label", { className: "mbob-primary", children: [
4199
+ /* @__PURE__ */ jsx11("input", { type: "radio", name: "mbob-primary", checked: location.isPrimary === true, onChange: () => setLocation(index, { isPrimary: true }) }),
4049
4200
  " Primary"
4050
4201
  ] }),
4051
- /* @__PURE__ */ jsx10("button", { className: "mbob-remove", type: "button", "aria-label": "Remove location", onClick: () => setLocations((current) => current.filter((_, itemIndex) => itemIndex !== index)), children: "\xD7" })
4202
+ /* @__PURE__ */ jsx11("button", { className: "mbob-remove", type: "button", "aria-label": "Remove location", onClick: () => setLocations((current) => current.filter((_, itemIndex) => itemIndex !== index)), children: "\xD7" })
4052
4203
  ] }, location.id ?? index)),
4053
- /* @__PURE__ */ jsx10("button", { className: "mbob-add", type: "button", onClick: () => setLocations((current) => [...current, blankLocation()]), children: "+ Add location" }),
4054
- /* @__PURE__ */ jsxs10("div", { className: "mbob-actions", children: [
4055
- /* @__PURE__ */ jsx10("span", { className: "mbob-status", children: savedStep["locations"] ? "Saved to MindBill." : "Where evaluations happen." }),
4056
- /* @__PURE__ */ jsx10("button", { className: "mbob-save", type: "button", disabled: saving, onClick: saveLocations, children: saving ? "Saving\u2026" : "Save locations" })
4204
+ /* @__PURE__ */ jsx11("button", { className: "mbob-add", type: "button", onClick: () => setLocations((current) => [...current, blankLocation()]), children: "+ Add location" }),
4205
+ /* @__PURE__ */ jsxs11("div", { className: "mbob-actions", children: [
4206
+ /* @__PURE__ */ jsx11("span", { className: "mbob-status", children: savedStep["locations"] ? "Saved to MindBill." : "Where evaluations happen." }),
4207
+ /* @__PURE__ */ jsx11("button", { className: "mbob-save", type: "button", disabled: saving, onClick: saveLocations, children: saving ? "Saving\u2026" : "Save locations" })
4057
4208
  ] })
4058
4209
  ] });
4059
- const w9Section = /* @__PURE__ */ jsxs10("div", { children: [
4060
- profile?.w9 ? /* @__PURE__ */ jsxs10("div", { className: "mbob-w9-current", children: [
4061
- /* @__PURE__ */ jsxs10("div", { children: [
4062
- /* @__PURE__ */ jsx10("strong", { children: profile.w9.filename }),
4063
- /* @__PURE__ */ jsxs10("span", { children: [
4210
+ const w9Section = /* @__PURE__ */ jsxs11("div", { children: [
4211
+ profile?.w9 ? /* @__PURE__ */ jsxs11("div", { className: "mbob-w9-current", children: [
4212
+ /* @__PURE__ */ jsxs11("div", { children: [
4213
+ /* @__PURE__ */ jsx11("strong", { children: profile.w9.filename }),
4214
+ /* @__PURE__ */ jsxs11("span", { children: [
4064
4215
  " \xB7 added ",
4065
4216
  profile.w9.addDate
4066
4217
  ] })
4067
4218
  ] }),
4068
- /* @__PURE__ */ jsx10("span", { children: "Rides on every bill automatically" })
4219
+ /* @__PURE__ */ jsx11("span", { children: "Rides on every bill automatically" })
4069
4220
  ] }) : null,
4070
- /* @__PURE__ */ jsxs10("label", { className: "mbob-drop", children: [
4071
- /* @__PURE__ */ jsx10("input", { type: "file", accept: "application/pdf,.pdf", onChange: (event) => setW9File(event.target.files?.[0] ?? null) }),
4072
- /* @__PURE__ */ jsx10("strong", { children: w9File ? w9File.name : profile?.w9 ? "Replace the W-9 PDF" : "Drop the practice W-9 PDF here, or click to choose" }),
4073
- /* @__PURE__ */ jsx10("span", { children: "The W-9 is auto-attached to every submission." })
4221
+ /* @__PURE__ */ jsxs11("label", { className: "mbob-drop", children: [
4222
+ /* @__PURE__ */ jsx11("input", { type: "file", accept: "application/pdf,.pdf", onChange: (event) => setW9File(event.target.files?.[0] ?? null) }),
4223
+ /* @__PURE__ */ jsx11("strong", { children: w9File ? w9File.name : profile?.w9 ? "Replace the W-9 PDF" : "Drop the practice W-9 PDF here, or click to choose" }),
4224
+ /* @__PURE__ */ jsx11("span", { children: "The W-9 is auto-attached to every submission." })
4074
4225
  ] }),
4075
- /* @__PURE__ */ jsxs10("div", { className: "mbob-actions", children: [
4076
- /* @__PURE__ */ jsx10("span", { className: "mbob-status", children: savedStep["w9"] ? "Saved to MindBill." : "" }),
4077
- /* @__PURE__ */ jsx10("button", { className: "mbob-save", type: "button", disabled: saving || !w9File, onClick: saveW9, children: saving ? "Uploading\u2026" : "Save W-9" })
4226
+ /* @__PURE__ */ jsxs11("div", { className: "mbob-actions", children: [
4227
+ /* @__PURE__ */ jsx11("span", { className: "mbob-status", children: savedStep["w9"] ? "Saved to MindBill." : "" }),
4228
+ /* @__PURE__ */ jsx11("button", { className: "mbob-save", type: "button", disabled: saving || !w9File, onClick: saveW9, children: saving ? "Uploading\u2026" : "Save W-9" })
4078
4229
  ] })
4079
4230
  ] });
4080
- const reviewSection = /* @__PURE__ */ jsxs10("div", { className: "mbob-check", children: [
4081
- (profile?.onboarding.checklist ?? []).map((item) => /* @__PURE__ */ jsxs10("div", { className: "mbob-check-item", "data-complete": item.complete, children: [
4082
- /* @__PURE__ */ jsx10("i", { children: item.complete ? "\u2713" : "\u2022" }),
4083
- /* @__PURE__ */ jsx10("span", { children: item.label })
4231
+ const reviewSection = /* @__PURE__ */ jsxs11("div", { className: "mbob-check", children: [
4232
+ (profile?.onboarding.checklist ?? []).map((item) => /* @__PURE__ */ jsxs11("div", { className: "mbob-check-item", "data-complete": item.complete, children: [
4233
+ /* @__PURE__ */ jsx11("i", { children: item.complete ? "\u2713" : "\u2022" }),
4234
+ /* @__PURE__ */ jsx11("span", { children: item.label })
4084
4235
  ] }, item.id)),
4085
- profile?.onboarding.complete ? /* @__PURE__ */ jsx10("p", { className: "mbob-done", children: "Billing setup is complete \u2014 bills submitted from your product carry this profile automatically." }) : /* @__PURE__ */ jsx10("p", { className: "mbob-status", children: "Items above complete themselves as each section is saved." })
4236
+ profile?.onboarding.complete ? /* @__PURE__ */ jsx11("p", { className: "mbob-done", children: "Billing setup is complete \u2014 bills submitted from your product carry this profile automatically." }) : /* @__PURE__ */ jsx11("p", { className: "mbob-status", children: "Items above complete themselves as each section is saved." })
4086
4237
  ] });
4087
4238
  const sections = { practice: practiceSection, locations: locationsSection, w9: w9Section, review: reviewSection };
4088
- return /* @__PURE__ */ jsxs10("div", { className: `mbob ${className}`.trim(), style: { ...mindBillAppearanceStyle(appearance), ...style }, children: [
4089
- /* @__PURE__ */ jsx10("style", { children: css8 }),
4090
- /* @__PURE__ */ jsxs10("div", { className: "mbob-card", children: [
4091
- /* @__PURE__ */ jsx10("div", { className: "mbob-head", children: /* @__PURE__ */ jsxs10("div", { children: [
4092
- /* @__PURE__ */ jsx10("h2", { children: heading }),
4093
- /* @__PURE__ */ jsx10("p", { className: "mbob-copy", children: description })
4239
+ return /* @__PURE__ */ jsxs11("div", { className: `mbob ${className}`.trim(), style: { ...mindBillAppearanceStyle(appearance), ...style }, children: [
4240
+ /* @__PURE__ */ jsx11("style", { children: css9 }),
4241
+ /* @__PURE__ */ jsxs11("div", { className: "mbob-card", children: [
4242
+ /* @__PURE__ */ jsx11("div", { className: "mbob-head", children: /* @__PURE__ */ jsxs11("div", { children: [
4243
+ /* @__PURE__ */ jsx11("h2", { children: heading }),
4244
+ /* @__PURE__ */ jsx11("p", { className: "mbob-copy", children: description })
4094
4245
  ] }) }),
4095
- loadError ? /* @__PURE__ */ jsx10("div", { className: "mbob-error", role: "alert", children: loadError }) : null,
4096
- variant === "onboarding" ? /* @__PURE__ */ jsxs10(Fragment7, { children: [
4097
- /* @__PURE__ */ jsx10("div", { className: "mbob-steps", children: STEPS.map((item) => /* @__PURE__ */ jsxs10("button", { className: "mbob-step", type: "button", "data-active": step === item.id, "data-done": Boolean(savedStep[item.id]), onClick: () => setStep(item.id), children: [
4098
- /* @__PURE__ */ jsx10("i", { children: savedStep[item.id] ? "\u2713" : "" }),
4246
+ loadError ? /* @__PURE__ */ jsx11("div", { className: "mbob-error", role: "alert", children: loadError }) : null,
4247
+ variant === "onboarding" ? /* @__PURE__ */ jsxs11(Fragment8, { children: [
4248
+ /* @__PURE__ */ jsx11("div", { className: "mbob-steps", children: STEPS.map((item) => /* @__PURE__ */ jsxs11("button", { className: "mbob-step", type: "button", "data-active": step === item.id, "data-done": Boolean(savedStep[item.id]), onClick: () => setStep(item.id), children: [
4249
+ /* @__PURE__ */ jsx11("i", { children: savedStep[item.id] ? "\u2713" : "" }),
4099
4250
  item.label
4100
4251
  ] }, item.id)) }),
4101
4252
  sections[step]
4102
- ] }) : /* @__PURE__ */ jsxs10(Fragment7, { children: [
4253
+ ] }) : /* @__PURE__ */ jsxs11(Fragment8, { children: [
4103
4254
  practiceSection,
4104
- /* @__PURE__ */ jsx10("h3", { className: "mbob-subhead", children: "Locations" }),
4255
+ /* @__PURE__ */ jsx11("h3", { className: "mbob-subhead", children: "Locations" }),
4105
4256
  locationsSection,
4106
- /* @__PURE__ */ jsx10("h3", { className: "mbob-subhead", children: "Practice W-9" }),
4257
+ /* @__PURE__ */ jsx11("h3", { className: "mbob-subhead", children: "Practice W-9" }),
4107
4258
  w9Section,
4108
- /* @__PURE__ */ jsx10("h3", { className: "mbob-subhead", children: "Checklist" }),
4259
+ /* @__PURE__ */ jsx11("h3", { className: "mbob-subhead", children: "Checklist" }),
4109
4260
  reviewSection
4110
4261
  ] }),
4111
- error ? /* @__PURE__ */ jsx10("div", { className: "mbob-error", role: "alert", children: error }) : null
4262
+ error ? /* @__PURE__ */ jsx11("div", { className: "mbob-error", role: "alert", children: error }) : null
4112
4263
  ] })
4113
4264
  ] });
4114
4265
  }
4115
4266
  function BillingSettings(props) {
4116
- return /* @__PURE__ */ jsx10(
4267
+ return /* @__PURE__ */ jsx11(
4117
4268
  OrganizationOnboarding,
4118
4269
  {
4119
4270
  heading: "Billing settings",
@@ -4127,16 +4278,16 @@ function BillingSettings(props) {
4127
4278
  // src/connected-bill-status.tsx
4128
4279
  import {
4129
4280
  useCallback as useCallback3,
4130
- useEffect as useEffect7,
4281
+ useEffect as useEffect8,
4131
4282
  useMemo as useMemo7,
4132
4283
  useRef as useRef4,
4133
- useState as useState8
4284
+ useState as useState9
4134
4285
  } from "react";
4135
4286
  import {
4136
4287
  DEFAULT_API_BASE_URL,
4137
4288
  DEFAULT_SESSION_ENDPOINT
4138
4289
  } from "@mindbill/browser";
4139
- import { Fragment as Fragment8, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
4290
+ import { Fragment as Fragment9, jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
4140
4291
  var DEFAULT_REFRESH_INTERVAL = 6e4;
4141
4292
  async function responseError(response, fallback) {
4142
4293
  const body = await response.json().catch(() => null);
@@ -4276,16 +4427,16 @@ function useBillStatus({
4276
4427
  apiBaseUrl,
4277
4428
  ...fetchOverride ? { fetch: fetchOverride } : {}
4278
4429
  }), [apiBaseUrl, billId, fetchOverride, getSession, sessionEndpoint]);
4279
- const [data, setData] = useState8(initialData);
4280
- const [error, setError] = useState8(null);
4281
- const [isLoading, setIsLoading] = useState8(enabled && !initialData);
4282
- const [isRefreshing, setIsRefreshing] = useState8(false);
4430
+ const [data, setData] = useState9(initialData);
4431
+ const [error, setError] = useState9(null);
4432
+ const [isLoading, setIsLoading] = useState9(enabled && !initialData);
4433
+ const [isRefreshing, setIsRefreshing] = useState9(false);
4283
4434
  const dataRef = useRef4(initialData);
4284
4435
  const initialDataRef = useRef4(initialData);
4285
4436
  initialDataRef.current = initialData;
4286
4437
  const activeControllerRef = useRef4(null);
4287
4438
  const requestSequence = useRef4(0);
4288
- useEffect7(() => {
4439
+ useEffect8(() => {
4289
4440
  const seed = initialDataRef.current;
4290
4441
  dataRef.current = seed;
4291
4442
  setData(seed);
@@ -4326,10 +4477,10 @@ function useBillStatus({
4326
4477
  }
4327
4478
  }
4328
4479
  }, [billId, client, enabled]);
4329
- useEffect7(() => {
4480
+ useEffect8(() => {
4330
4481
  if (enabled) void load();
4331
4482
  }, [enabled, load]);
4332
- useEffect7(() => {
4483
+ useEffect8(() => {
4333
4484
  if (!enabled || refreshInterval <= 0) return;
4334
4485
  const timer = window.setInterval(() => void load(), refreshInterval);
4335
4486
  const onFocus = () => void load();
@@ -4357,17 +4508,17 @@ function ConnectedBillStatus({
4357
4508
  }) {
4358
4509
  const status = useBillStatus(options);
4359
4510
  if (status.isLoading && !status.data) {
4360
- return /* @__PURE__ */ jsx11(Fragment8, { children: loadingFallback ?? /* @__PURE__ */ jsx11("div", { role: "status", children: "Loading bill status\u2026" }) });
4511
+ return /* @__PURE__ */ jsx12(Fragment9, { children: loadingFallback ?? /* @__PURE__ */ jsx12("div", { role: "status", children: "Loading bill status\u2026" }) });
4361
4512
  }
4362
4513
  if (status.error && !status.data) {
4363
- return /* @__PURE__ */ jsx11(Fragment8, { children: errorFallback?.(status.error, status.refresh) ?? /* @__PURE__ */ jsxs11("div", { role: "alert", children: [
4514
+ return /* @__PURE__ */ jsx12(Fragment9, { children: errorFallback?.(status.error, status.refresh) ?? /* @__PURE__ */ jsxs12("div", { role: "alert", children: [
4364
4515
  status.error.message,
4365
4516
  " ",
4366
- /* @__PURE__ */ jsx11("button", { type: "button", onClick: () => void status.refresh(), children: "Retry" })
4517
+ /* @__PURE__ */ jsx12("button", { type: "button", onClick: () => void status.refresh(), children: "Retry" })
4367
4518
  ] }) });
4368
4519
  }
4369
4520
  if (!status.data) return null;
4370
- return /* @__PURE__ */ jsx11(
4521
+ return /* @__PURE__ */ jsx12(
4371
4522
  BillStatusSummary,
4372
4523
  {
4373
4524
  status: status.data.state,
@@ -4386,8 +4537,8 @@ function ConnectedBillStatus({
4386
4537
  }
4387
4538
 
4388
4539
  // src/bill-lifecycle-surfaces.tsx
4389
- import { useState as useState9 } from "react";
4390
- import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
4540
+ import { useState as useState10 } from "react";
4541
+ import { Fragment as Fragment10, jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
4391
4542
  function visibleBillLifecycleActions(actions, showUnavailable = false) {
4392
4543
  return actions.filter((action) => action.enabled || showUnavailable);
4393
4544
  }
@@ -4402,11 +4553,11 @@ function BillLifecycleActions({
4402
4553
  }) {
4403
4554
  const visible = visibleBillLifecycleActions(actions, showUnavailable);
4404
4555
  if (!visible.length) return null;
4405
- return /* @__PURE__ */ jsxs12("div", { className: classes("mb-lifecycle-actions", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill actions", children: [
4406
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4407
- visible.map((action) => /* @__PURE__ */ jsxs12("div", { className: "mb-lifecycle-action", children: [
4408
- /* @__PURE__ */ jsx12("button", { type: "button", className: action.primary ? "mb-action-button is-primary" : "mb-action-button", disabled: disabled || !action.enabled, onClick: () => onAction(action), children: action.label }),
4409
- !action.enabled && action.reason ? /* @__PURE__ */ jsx12("span", { className: "mb-action-reason", children: action.reason }) : null
4556
+ return /* @__PURE__ */ jsxs13("div", { className: classes("mb-lifecycle-actions", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill actions", children: [
4557
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4558
+ visible.map((action) => /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-action", children: [
4559
+ /* @__PURE__ */ jsx13("button", { type: "button", className: action.primary ? "mb-action-button is-primary" : "mb-action-button", disabled: disabled || !action.enabled, onClick: () => onAction(action), children: action.label }),
4560
+ !action.enabled && action.reason ? /* @__PURE__ */ jsx13("span", { className: "mb-action-reason", children: action.reason }) : null
4410
4561
  ] }, action.id))
4411
4562
  ] });
4412
4563
  }
@@ -4436,18 +4587,18 @@ function defaultFormatDate(createdAt) {
4436
4587
  return new Intl.DateTimeFormat(void 0, { dateStyle: "medium", timeStyle: "short" }).format(parsed);
4437
4588
  }
4438
4589
  function BillActivityTimeline({ events, emptyLabel = "No bill activity yet.", appearance, className, style, formatDate = defaultFormatDate }) {
4439
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-activity", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill activity", children: [
4440
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4441
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4442
- /* @__PURE__ */ jsx12("strong", { children: "Bill history" }),
4443
- /* @__PURE__ */ jsx12("span", { children: "Submission, payer responses, follow-up, and payments." })
4590
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-activity", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill activity", children: [
4591
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4592
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4593
+ /* @__PURE__ */ jsx13("strong", { children: "Bill history" }),
4594
+ /* @__PURE__ */ jsx13("span", { children: "Submission, payer responses, follow-up, and payments." })
4444
4595
  ] }) }),
4445
- !events.length ? /* @__PURE__ */ jsx12("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsx12("ol", { className: "mb-activity-list", children: events.map((event) => /* @__PURE__ */ jsxs12("li", { className: "mb-activity-item", children: [
4446
- /* @__PURE__ */ jsx12("span", { className: "mb-activity-marker", "aria-hidden": "true" }),
4447
- /* @__PURE__ */ jsxs12("div", { className: "mb-activity-content", children: [
4448
- /* @__PURE__ */ jsx12("strong", { children: event.title ?? billActivityEventLabel(event.type) }),
4449
- event.description ? /* @__PURE__ */ jsx12("p", { children: event.description }) : null,
4450
- /* @__PURE__ */ jsxs12("span", { children: [
4596
+ !events.length ? /* @__PURE__ */ jsx13("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsx13("ol", { className: "mb-activity-list", children: events.map((event) => /* @__PURE__ */ jsxs13("li", { className: "mb-activity-item", children: [
4597
+ /* @__PURE__ */ jsx13("span", { className: "mb-activity-marker", "aria-hidden": "true" }),
4598
+ /* @__PURE__ */ jsxs13("div", { className: "mb-activity-content", children: [
4599
+ /* @__PURE__ */ jsx13("strong", { children: event.title ?? billActivityEventLabel(event.type) }),
4600
+ event.description ? /* @__PURE__ */ jsx13("p", { children: event.description }) : null,
4601
+ /* @__PURE__ */ jsxs13("span", { children: [
4451
4602
  formatDate(event.createdAt),
4452
4603
  event.actor ? ` \xB7 ${event.actor}` : ""
4453
4604
  ] })
@@ -4460,69 +4611,69 @@ function historyDate(iso) {
4460
4611
  if (Number.isNaN(parsed.getTime())) return iso;
4461
4612
  return new Intl.DateTimeFormat("en-US", { month: "2-digit", day: "2-digit", year: "numeric" }).format(parsed);
4462
4613
  }
4463
- function BillHistoryTable({ entries, emptyLabel = "No bill history yet.", appearance, className, style, formatDate = historyDate, documentHref }) {
4464
- const [expanded, setExpanded] = useState9({});
4465
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-history", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill history", children: [
4466
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4467
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4468
- /* @__PURE__ */ jsx12("strong", { children: "Bill history" }),
4469
- /* @__PURE__ */ jsx12("span", { children: "Submissions, payer responses, follow-up, and payments." })
4614
+ function BillHistoryTable({ entries, emptyLabel = "No bill history yet.", appearance, className, style, formatDate = historyDate, documentHref, onOpenDocument }) {
4615
+ const [expanded, setExpanded] = useState10({});
4616
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-history", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill history", children: [
4617
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4618
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4619
+ /* @__PURE__ */ jsx13("strong", { children: "Bill history" }),
4620
+ /* @__PURE__ */ jsx13("span", { children: "Submissions, payer responses, follow-up, and payments." })
4470
4621
  ] }) }),
4471
- !entries.length ? /* @__PURE__ */ jsx12("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsxs12("div", { className: "mb-history-table", children: [
4472
- /* @__PURE__ */ jsxs12("div", { className: "mb-history-head", "aria-hidden": "true", children: [
4473
- /* @__PURE__ */ jsx12("span", { children: "Date" }),
4474
- /* @__PURE__ */ jsx12("span", { children: "Action" }),
4475
- /* @__PURE__ */ jsx12("span", { children: "User" }),
4476
- /* @__PURE__ */ jsx12("span", { children: "Details" })
4622
+ !entries.length ? /* @__PURE__ */ jsx13("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsxs13("div", { className: "mb-history-table", children: [
4623
+ /* @__PURE__ */ jsxs13("div", { className: "mb-history-head", "aria-hidden": "true", children: [
4624
+ /* @__PURE__ */ jsx13("span", { children: "Date" }),
4625
+ /* @__PURE__ */ jsx13("span", { children: "Action" }),
4626
+ /* @__PURE__ */ jsx13("span", { children: "User" }),
4627
+ /* @__PURE__ */ jsx13("span", { children: "Details" })
4477
4628
  ] }),
4478
- /* @__PURE__ */ jsx12("ul", { className: "mb-history-rows", children: entries.map((entry) => {
4629
+ /* @__PURE__ */ jsx13("ul", { className: "mb-history-rows", children: entries.map((entry) => {
4479
4630
  const expandable = Boolean(entry.details);
4480
4631
  const isOpen = expandable && Boolean(expanded[entry.id]);
4481
4632
  const details = entry.details;
4482
- return /* @__PURE__ */ jsxs12("li", { className: `mb-history-row is-${entry.tone}`, children: [
4483
- /* @__PURE__ */ jsxs12(
4633
+ const lineContents = /* @__PURE__ */ jsxs13(Fragment10, { children: [
4634
+ /* @__PURE__ */ jsx13("span", { className: "mb-history-date", children: formatDate(entry.date) }),
4635
+ /* @__PURE__ */ jsx13("span", { className: "mb-history-action", children: entry.action }),
4636
+ /* @__PURE__ */ jsx13("span", { className: "mb-history-actor", children: entry.actor ?? "\u2014" }),
4637
+ /* @__PURE__ */ jsxs13("span", { className: "mb-history-summary", children: [
4638
+ expandable ? /* @__PURE__ */ jsx13("i", { className: `mb-history-caret${isOpen ? " is-open" : ""}`, "aria-hidden": "true" }) : null,
4639
+ entry.summary
4640
+ ] })
4641
+ ] });
4642
+ return /* @__PURE__ */ jsxs13("li", { className: `mb-history-row is-${entry.tone}`, children: [
4643
+ expandable ? /* @__PURE__ */ jsx13(
4484
4644
  "button",
4485
4645
  {
4486
4646
  type: "button",
4487
- className: "mb-history-line",
4488
- disabled: !expandable,
4489
- "aria-expanded": expandable ? isOpen : void 0,
4490
- onClick: expandable ? () => setExpanded((current) => ({ ...current, [entry.id]: !current[entry.id] })) : void 0,
4491
- children: [
4492
- /* @__PURE__ */ jsx12("span", { className: "mb-history-date", children: formatDate(entry.date) }),
4493
- /* @__PURE__ */ jsx12("span", { className: "mb-history-action", children: entry.action }),
4494
- /* @__PURE__ */ jsx12("span", { className: "mb-history-actor", children: entry.actor ?? "\u2014" }),
4495
- /* @__PURE__ */ jsxs12("span", { className: "mb-history-summary", children: [
4496
- expandable ? /* @__PURE__ */ jsx12("i", { className: `mb-history-caret${isOpen ? " is-open" : ""}`, "aria-hidden": "true" }) : null,
4497
- entry.summary
4498
- ] })
4499
- ]
4647
+ className: "mb-history-line is-expandable",
4648
+ "aria-expanded": isOpen,
4649
+ onClick: () => setExpanded((current) => ({ ...current, [entry.id]: !current[entry.id] })),
4650
+ children: lineContents
4500
4651
  }
4501
- ),
4502
- isOpen && details ? /* @__PURE__ */ jsxs12("div", { className: "mb-history-details", children: [
4503
- details.rows?.length ? /* @__PURE__ */ jsx12("dl", { className: "mb-history-kv", children: details.rows.map((row) => /* @__PURE__ */ jsxs12("div", { children: [
4504
- /* @__PURE__ */ jsx12("dt", { children: row.label }),
4505
- /* @__PURE__ */ jsx12("dd", { children: row.value })
4652
+ ) : /* @__PURE__ */ jsx13("div", { className: "mb-history-line", children: lineContents }),
4653
+ isOpen && details ? /* @__PURE__ */ jsxs13("div", { className: "mb-history-details", children: [
4654
+ details.rows?.length ? /* @__PURE__ */ jsx13("dl", { className: "mb-history-kv", children: details.rows.map((row) => /* @__PURE__ */ jsxs13("div", { children: [
4655
+ /* @__PURE__ */ jsx13("dt", { children: row.label }),
4656
+ /* @__PURE__ */ jsx13("dd", { children: row.value })
4506
4657
  ] }, `${row.label}-${row.value}`)) }) : null,
4507
- details.documents?.length ? /* @__PURE__ */ jsx12("div", { className: "mb-history-kv", children: /* @__PURE__ */ jsxs12("div", { children: [
4508
- /* @__PURE__ */ jsx12("dt", { children: "Documents" }),
4509
- /* @__PURE__ */ jsx12("dd", { children: details.documents.map((doc) => {
4658
+ details.documents?.length ? /* @__PURE__ */ jsx13("div", { className: "mb-history-kv", children: /* @__PURE__ */ jsxs13("div", { children: [
4659
+ /* @__PURE__ */ jsx13("dt", { children: "Documents" }),
4660
+ /* @__PURE__ */ jsx13("dd", { children: details.documents.map((doc) => {
4510
4661
  const href = documentHref?.(doc) ?? null;
4511
- return href ? /* @__PURE__ */ jsx12("a", { className: "mb-history-doc", href, target: "_blank", rel: "noreferrer", children: doc.filename }, doc.id) : /* @__PURE__ */ jsx12("span", { className: "mb-history-doc", children: doc.filename }, doc.id);
4662
+ return href ? /* @__PURE__ */ jsx13("a", { className: "mb-history-doc", href, target: "_blank", rel: "noreferrer", children: doc.filename }, doc.id) : onOpenDocument ? /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-history-doc", onClick: () => void onOpenDocument(doc), children: doc.filename }, doc.id) : /* @__PURE__ */ jsx13("span", { className: "mb-history-doc", children: doc.filename }, doc.id);
4512
4663
  }) })
4513
4664
  ] }) }) : null,
4514
- details.codes?.length ? /* @__PURE__ */ jsx12("dl", { className: "mb-history-codes", children: details.codes.map((code) => /* @__PURE__ */ jsxs12("div", { children: [
4515
- /* @__PURE__ */ jsx12("dt", { children: code.code }),
4516
- /* @__PURE__ */ jsx12("dd", { children: code.text })
4665
+ details.codes?.length ? /* @__PURE__ */ jsx13("dl", { className: "mb-history-codes", children: details.codes.map((code) => /* @__PURE__ */ jsxs13("div", { children: [
4666
+ /* @__PURE__ */ jsx13("dt", { children: code.code }),
4667
+ /* @__PURE__ */ jsx13("dd", { children: code.text })
4517
4668
  ] }, code.code)) }) : null,
4518
- details.complianceDueDates?.length ? /* @__PURE__ */ jsxs12("div", { className: "mb-history-due", children: [
4519
- /* @__PURE__ */ jsx12("em", { children: "Compliance Due Dates" }),
4520
- /* @__PURE__ */ jsx12("dl", { children: details.complianceDueDates.map((due) => /* @__PURE__ */ jsxs12("div", { children: [
4521
- /* @__PURE__ */ jsx12("dt", { children: formatDate(due.date) }),
4522
- /* @__PURE__ */ jsx12("dd", { children: due.text })
4669
+ details.complianceDueDates?.length ? /* @__PURE__ */ jsxs13("div", { className: "mb-history-due", children: [
4670
+ /* @__PURE__ */ jsx13("em", { children: "Compliance Due Dates" }),
4671
+ /* @__PURE__ */ jsx13("dl", { children: details.complianceDueDates.map((due) => /* @__PURE__ */ jsxs13("div", { children: [
4672
+ /* @__PURE__ */ jsx13("dt", { children: formatDate(due.date) }),
4673
+ /* @__PURE__ */ jsx13("dd", { children: due.text })
4523
4674
  ] }, `${due.date}-${due.text}`)) })
4524
4675
  ] }) : null,
4525
- details.text ? /* @__PURE__ */ jsx12("p", { className: "mb-history-text", children: details.text }) : null
4676
+ details.text ? /* @__PURE__ */ jsx13("p", { className: "mb-history-text", children: details.text }) : null
4526
4677
  ] }) : null
4527
4678
  ] }, entry.id);
4528
4679
  }) })
@@ -4580,15 +4731,15 @@ function BillLifecycleProgress({ state, nativeStatus, submittedAt, agingDays, dr
4580
4731
  const rejected = state.toLowerCase() === "rejected";
4581
4732
  const draft = Boolean(draftStage) && isBillLifecycleDraft(state);
4582
4733
  const steps = billLifecycleProgressSteps(state, { draftStage: Boolean(draftStage) });
4583
- return /* @__PURE__ */ jsxs12("section", { className: classes(`mb-surface mb-progress${rejected ? " is-rejected" : ""}`, className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill lifecycle", children: [
4584
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4585
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4586
- /* @__PURE__ */ jsx12("strong", { children: billLifecycleDisplayLabel(state, nativeStatus) }),
4587
- /* @__PURE__ */ jsx12("span", { children: rejected ? "The payer rejected this submission." : draft ? "Not yet sent" : `${submittedAt ? `Submitted ${defaultFormatDate(submittedAt)}` : "Submitted"}${typeof agingDays === "number" ? ` \xB7 ${agingDays} days old` : ""}` })
4734
+ return /* @__PURE__ */ jsxs13("section", { className: classes(`mb-surface mb-progress${rejected ? " is-rejected" : ""}`, className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill lifecycle", children: [
4735
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4736
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4737
+ /* @__PURE__ */ jsx13("strong", { children: billLifecycleDisplayLabel(state, nativeStatus) }),
4738
+ /* @__PURE__ */ jsx13("span", { children: rejected ? "The payer rejected this submission." : draft ? "Not yet sent" : `${submittedAt ? `Submitted ${defaultFormatDate(submittedAt)}` : "Submitted"}${typeof agingDays === "number" ? ` \xB7 ${agingDays} days old` : ""}` })
4588
4739
  ] }) }),
4589
- /* @__PURE__ */ jsx12("ol", { className: "mb-progress-list", style: { gridTemplateColumns: `repeat(${steps.length}, minmax(0, 1fr))` }, children: steps.map((step, index) => /* @__PURE__ */ jsxs12("li", { className: `is-${step.status}`, "aria-current": step.status === "current" ? "step" : void 0, children: [
4590
- /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", children: step.status === "complete" ? "\u2713" : rejected && step.status === "current" ? "!" : index + 1 }),
4591
- /* @__PURE__ */ jsx12("b", { children: step.label })
4740
+ /* @__PURE__ */ jsx13("ol", { className: "mb-progress-list", style: { gridTemplateColumns: `repeat(${steps.length}, minmax(0, 1fr))` }, children: steps.map((step, index) => /* @__PURE__ */ jsxs13("li", { className: `is-${step.status}`, "aria-current": step.status === "current" ? "step" : void 0, children: [
4741
+ /* @__PURE__ */ jsx13("span", { "aria-hidden": "true", children: step.status === "complete" ? "\u2713" : rejected && step.status === "current" ? "!" : index + 1 }),
4742
+ /* @__PURE__ */ jsx13("b", { children: step.label })
4592
4743
  ] }, step.id)) })
4593
4744
  ] });
4594
4745
  }
@@ -4602,48 +4753,48 @@ function billRejectionIssueSummary(rejection, count) {
4602
4753
  function BillRejectionNotice({ rejection, title = "Rejected \u2014 action required", submittedAt, appearance, className, style, formatDate = defaultFormatDate }) {
4603
4754
  const issues = rejection.issues?.length ? rejection.issues : [{ code: rejection.code, description: rejection.reason }];
4604
4755
  const hasCodes = issues.some((issue) => Boolean(issue.code));
4605
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-rejection-notice", className), style: mindBillAppearanceStyle(appearance, style), role: "alert", "aria-label": "Bill rejection reasons", children: [
4606
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4607
- /* @__PURE__ */ jsxs12("div", { className: "mb-rejection-overview", children: [
4608
- /* @__PURE__ */ jsxs12("header", { className: "mb-rejection-heading", children: [
4609
- /* @__PURE__ */ jsx12("span", { className: "mb-rejection-icon", "aria-hidden": "true", children: "!" }),
4610
- /* @__PURE__ */ jsxs12("div", { children: [
4611
- /* @__PURE__ */ jsx12("strong", { children: title }),
4612
- /* @__PURE__ */ jsxs12("span", { children: [
4756
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-rejection-notice", className), style: mindBillAppearanceStyle(appearance, style), role: "alert", "aria-label": "Bill rejection reasons", children: [
4757
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4758
+ /* @__PURE__ */ jsxs13("div", { className: "mb-rejection-overview", children: [
4759
+ /* @__PURE__ */ jsxs13("header", { className: "mb-rejection-heading", children: [
4760
+ /* @__PURE__ */ jsx13("span", { className: "mb-rejection-icon", "aria-hidden": "true", children: "!" }),
4761
+ /* @__PURE__ */ jsxs13("div", { children: [
4762
+ /* @__PURE__ */ jsx13("strong", { children: title }),
4763
+ /* @__PURE__ */ jsxs13("span", { children: [
4613
4764
  "Fix the ",
4614
4765
  issues.length === 1 ? "issue" : "issues",
4615
4766
  " below, then resubmit."
4616
4767
  ] })
4617
4768
  ] })
4618
4769
  ] }),
4619
- /* @__PURE__ */ jsxs12("ol", { className: "mb-rejection-progress", "aria-label": "Submission status", children: [
4620
- /* @__PURE__ */ jsxs12("li", { className: "is-complete", children: [
4621
- /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", children: "\u2713" }),
4622
- /* @__PURE__ */ jsx12("b", { children: "Sent" }),
4623
- submittedAt ? /* @__PURE__ */ jsx12("small", { children: formatDate(submittedAt) }) : null
4770
+ /* @__PURE__ */ jsxs13("ol", { className: "mb-rejection-progress", "aria-label": "Submission status", children: [
4771
+ /* @__PURE__ */ jsxs13("li", { className: "is-complete", children: [
4772
+ /* @__PURE__ */ jsx13("span", { "aria-hidden": "true", children: "\u2713" }),
4773
+ /* @__PURE__ */ jsx13("b", { children: "Sent" }),
4774
+ submittedAt ? /* @__PURE__ */ jsx13("small", { children: formatDate(submittedAt) }) : null
4624
4775
  ] }),
4625
- /* @__PURE__ */ jsxs12("li", { className: "is-rejected", "aria-current": "step", children: [
4626
- /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", children: "!" }),
4627
- /* @__PURE__ */ jsx12("b", { children: "Rejected" }),
4628
- rejection.receivedAt ? /* @__PURE__ */ jsx12("small", { children: formatDate(rejection.receivedAt) }) : null
4776
+ /* @__PURE__ */ jsxs13("li", { className: "is-rejected", "aria-current": "step", children: [
4777
+ /* @__PURE__ */ jsx13("span", { "aria-hidden": "true", children: "!" }),
4778
+ /* @__PURE__ */ jsx13("b", { children: "Rejected" }),
4779
+ rejection.receivedAt ? /* @__PURE__ */ jsx13("small", { children: formatDate(rejection.receivedAt) }) : null
4629
4780
  ] })
4630
4781
  ] })
4631
4782
  ] }),
4632
- /* @__PURE__ */ jsxs12("div", { className: "mb-rejection-issues", "aria-label": "Rejection reasons", children: [
4633
- /* @__PURE__ */ jsxs12("div", { className: "mb-rejection-issues-heading", children: [
4634
- /* @__PURE__ */ jsxs12("strong", { children: [
4635
- /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", children: "\u25B3" }),
4783
+ /* @__PURE__ */ jsxs13("div", { className: "mb-rejection-issues", "aria-label": "Rejection reasons", children: [
4784
+ /* @__PURE__ */ jsxs13("div", { className: "mb-rejection-issues-heading", children: [
4785
+ /* @__PURE__ */ jsxs13("strong", { children: [
4786
+ /* @__PURE__ */ jsx13("span", { "aria-hidden": "true", children: "\u25B3" }),
4636
4787
  " Rejection reasons"
4637
4788
  ] }),
4638
- /* @__PURE__ */ jsx12("span", { children: billRejectionIssueSummary(rejection, issues.length) })
4789
+ /* @__PURE__ */ jsx13("span", { children: billRejectionIssueSummary(rejection, issues.length) })
4639
4790
  ] }),
4640
- /* @__PURE__ */ jsx12("ol", { "aria-label": `${issues.length} rejection ${issues.length === 1 ? "reason" : "reasons"}`, children: issues.map((issue, index) => /* @__PURE__ */ jsxs12("li", { children: [
4641
- /* @__PURE__ */ jsx12("span", { className: "mb-rejection-bullet", "aria-hidden": "true" }),
4642
- /* @__PURE__ */ jsx12("p", { children: issue.description }),
4643
- issue.code ? /* @__PURE__ */ jsx12("span", { className: "mb-rejection-code", children: issue.code }) : null
4791
+ /* @__PURE__ */ jsx13("ol", { "aria-label": `${issues.length} rejection ${issues.length === 1 ? "reason" : "reasons"}`, children: issues.map((issue, index) => /* @__PURE__ */ jsxs13("li", { children: [
4792
+ /* @__PURE__ */ jsx13("span", { className: "mb-rejection-bullet", "aria-hidden": "true" }),
4793
+ /* @__PURE__ */ jsx13("p", { children: issue.description }),
4794
+ issue.code ? /* @__PURE__ */ jsx13("span", { className: "mb-rejection-code", children: issue.code }) : null
4644
4795
  ] }, `${issue.code ?? "issue"}-${index}`)) }),
4645
- hasCodes ? /* @__PURE__ */ jsxs12("p", { className: "mb-rejection-code-note", children: [
4646
- /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", children: "i" }),
4796
+ hasCodes ? /* @__PURE__ */ jsxs13("p", { className: "mb-rejection-code-note", children: [
4797
+ /* @__PURE__ */ jsx13("span", { "aria-hidden": "true", children: "i" }),
4647
4798
  " Technical error codes are included for support and auditability."
4648
4799
  ] }) : null
4649
4800
  ] })
@@ -4658,18 +4809,18 @@ function BillSnapshotSummary({ bill, patient, injury, delivery, appearance, clas
4658
4809
  ["Charged", currency(bill.totalCharge)],
4659
4810
  ["Balance", currency(bill.balanceDue)]
4660
4811
  ];
4661
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-snapshot", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill snapshot", children: [
4662
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4663
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4664
- /* @__PURE__ */ jsx12("strong", { children: "Bill snapshot" }),
4665
- /* @__PURE__ */ jsxs12("span", { children: [
4812
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-snapshot", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill snapshot", children: [
4813
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4814
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4815
+ /* @__PURE__ */ jsx13("strong", { children: "Bill snapshot" }),
4816
+ /* @__PURE__ */ jsxs13("span", { children: [
4666
4817
  "Bill #",
4667
4818
  bill.billNumber
4668
4819
  ] })
4669
4820
  ] }) }),
4670
- /* @__PURE__ */ jsx12("dl", { children: values.map(([label, value]) => /* @__PURE__ */ jsxs12("div", { children: [
4671
- /* @__PURE__ */ jsx12("dt", { children: label }),
4672
- /* @__PURE__ */ jsx12("dd", { children: value })
4821
+ /* @__PURE__ */ jsx13("dl", { children: values.map(([label, value]) => /* @__PURE__ */ jsxs13("div", { children: [
4822
+ /* @__PURE__ */ jsx13("dt", { children: label }),
4823
+ /* @__PURE__ */ jsx13("dd", { children: value })
4673
4824
  ] }, label)) })
4674
4825
  ] });
4675
4826
  }
@@ -4684,145 +4835,145 @@ function BillExplanationOfReview({
4684
4835
  style
4685
4836
  }) {
4686
4837
  const rows = payments.length ? payments : [null];
4687
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-eor-review", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Explanation of Review and payments", children: [
4688
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4689
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4690
- /* @__PURE__ */ jsx12("strong", { children: "Explanation of Review" }),
4691
- /* @__PURE__ */ jsx12("span", { children: "Payer response and payment reconciliation." })
4838
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-eor-review", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Explanation of Review and payments", children: [
4839
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4840
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4841
+ /* @__PURE__ */ jsx13("strong", { children: "Explanation of Review" }),
4842
+ /* @__PURE__ */ jsx13("span", { children: "Payer response and payment reconciliation." })
4692
4843
  ] }) }),
4693
- /* @__PURE__ */ jsxs12("dl", { className: "mb-eor-metrics", children: [
4694
- /* @__PURE__ */ jsxs12("div", { children: [
4695
- /* @__PURE__ */ jsx12("dt", { children: "Amount billed" }),
4696
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.billedAmount) })
4844
+ /* @__PURE__ */ jsxs13("dl", { className: "mb-eor-metrics", children: [
4845
+ /* @__PURE__ */ jsxs13("div", { children: [
4846
+ /* @__PURE__ */ jsx13("dt", { children: "Amount billed" }),
4847
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.billedAmount) })
4697
4848
  ] }),
4698
- /* @__PURE__ */ jsxs12("div", { children: [
4699
- /* @__PURE__ */ jsx12("dt", { children: "Payer allowed" }),
4700
- /* @__PURE__ */ jsx12("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
4849
+ /* @__PURE__ */ jsxs13("div", { children: [
4850
+ /* @__PURE__ */ jsx13("dt", { children: "Payer allowed" }),
4851
+ /* @__PURE__ */ jsx13("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
4701
4852
  ] }),
4702
- /* @__PURE__ */ jsxs12("div", { children: [
4703
- /* @__PURE__ */ jsx12("dt", { children: "Payer reported paid" }),
4704
- /* @__PURE__ */ jsx12("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
4853
+ /* @__PURE__ */ jsxs13("div", { children: [
4854
+ /* @__PURE__ */ jsx13("dt", { children: "Payer reported paid" }),
4855
+ /* @__PURE__ */ jsx13("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
4705
4856
  ] }),
4706
- /* @__PURE__ */ jsxs12("div", { className: "is-balance", children: [
4707
- /* @__PURE__ */ jsx12("dt", { children: "Balance due" }),
4708
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.balanceDue) })
4857
+ /* @__PURE__ */ jsxs13("div", { className: "is-balance", children: [
4858
+ /* @__PURE__ */ jsx13("dt", { children: "Balance due" }),
4859
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.balanceDue) })
4709
4860
  ] }),
4710
- /* @__PURE__ */ jsxs12("div", { children: [
4711
- /* @__PURE__ */ jsx12("dt", { children: "Payment posted" }),
4712
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.postedPrincipal) })
4861
+ /* @__PURE__ */ jsxs13("div", { children: [
4862
+ /* @__PURE__ */ jsx13("dt", { children: "Payment posted" }),
4863
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.postedPrincipal) })
4713
4864
  ] }),
4714
- /* @__PURE__ */ jsxs12("div", { children: [
4715
- /* @__PURE__ */ jsx12("dt", { children: "Penalty & interest" }),
4716
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.postedAdditional) })
4865
+ /* @__PURE__ */ jsxs13("div", { children: [
4866
+ /* @__PURE__ */ jsx13("dt", { children: "Penalty & interest" }),
4867
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.postedAdditional) })
4717
4868
  ] }),
4718
- /* @__PURE__ */ jsxs12("div", { children: [
4719
- /* @__PURE__ */ jsx12("dt", { children: "Total received" }),
4720
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.totalPostedCash) })
4869
+ /* @__PURE__ */ jsxs13("div", { children: [
4870
+ /* @__PURE__ */ jsx13("dt", { children: "Total received" }),
4871
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.totalPostedCash) })
4721
4872
  ] }),
4722
- /* @__PURE__ */ jsxs12("div", { children: [
4723
- /* @__PURE__ */ jsx12("dt", { children: "Expected" }),
4724
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.expectedAmount) })
4873
+ /* @__PURE__ */ jsxs13("div", { children: [
4874
+ /* @__PURE__ */ jsx13("dt", { children: "Expected" }),
4875
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.expectedAmount) })
4725
4876
  ] })
4726
4877
  ] }),
4727
- remittance.denialReason ? /* @__PURE__ */ jsxs12("div", { className: "mb-denial", children: [
4728
- /* @__PURE__ */ jsx12("strong", { children: "Denial reason" }),
4729
- /* @__PURE__ */ jsx12("p", { children: remittance.denialReason })
4878
+ remittance.denialReason ? /* @__PURE__ */ jsxs13("div", { className: "mb-denial", children: [
4879
+ /* @__PURE__ */ jsx13("strong", { children: "Denial reason" }),
4880
+ /* @__PURE__ */ jsx13("p", { children: remittance.denialReason })
4730
4881
  ] }) : null,
4731
- /* @__PURE__ */ jsx12("div", { className: "mb-eor-table-wrap", children: /* @__PURE__ */ jsxs12("table", { className: "mb-eor-table", children: [
4732
- /* @__PURE__ */ jsxs12("thead", { children: [
4733
- /* @__PURE__ */ jsxs12("tr", { className: "mb-eor-groups", children: [
4734
- /* @__PURE__ */ jsx12("th", { colSpan: 2, children: "Submission" }),
4735
- /* @__PURE__ */ jsx12("th", { colSpan: 5, children: "EOR payment information" }),
4736
- /* @__PURE__ */ jsx12("th", { colSpan: 2, children: "EOR post" }),
4737
- /* @__PURE__ */ jsx12("th", { children: "EOR" })
4882
+ /* @__PURE__ */ jsx13("div", { className: "mb-eor-table-wrap", children: /* @__PURE__ */ jsxs13("table", { className: "mb-eor-table", children: [
4883
+ /* @__PURE__ */ jsxs13("thead", { children: [
4884
+ /* @__PURE__ */ jsxs13("tr", { className: "mb-eor-groups", children: [
4885
+ /* @__PURE__ */ jsx13("th", { colSpan: 2, children: "Submission" }),
4886
+ /* @__PURE__ */ jsx13("th", { colSpan: 5, children: "EOR payment information" }),
4887
+ /* @__PURE__ */ jsx13("th", { colSpan: 2, children: "EOR post" }),
4888
+ /* @__PURE__ */ jsx13("th", { children: "EOR" })
4738
4889
  ] }),
4739
- /* @__PURE__ */ jsxs12("tr", { children: [
4740
- /* @__PURE__ */ jsx12("th", { children: "Submission" }),
4741
- /* @__PURE__ */ jsx12("th", { children: "Submission payment" }),
4742
- /* @__PURE__ */ jsx12("th", { children: "Payment method" }),
4743
- /* @__PURE__ */ jsx12("th", { children: "Reference" }),
4744
- /* @__PURE__ */ jsx12("th", { children: "Effective date" }),
4745
- /* @__PURE__ */ jsx12("th", { children: "Payment total" }),
4746
- /* @__PURE__ */ jsx12("th", { children: "Deposit date" }),
4747
- /* @__PURE__ */ jsx12("th", { children: "Post date" }),
4748
- /* @__PURE__ */ jsx12("th", { children: "Source" }),
4749
- /* @__PURE__ */ jsx12("th", { children: "Document" })
4890
+ /* @__PURE__ */ jsxs13("tr", { children: [
4891
+ /* @__PURE__ */ jsx13("th", { children: "Submission" }),
4892
+ /* @__PURE__ */ jsx13("th", { children: "Submission payment" }),
4893
+ /* @__PURE__ */ jsx13("th", { children: "Payment method" }),
4894
+ /* @__PURE__ */ jsx13("th", { children: "Reference" }),
4895
+ /* @__PURE__ */ jsx13("th", { children: "Effective date" }),
4896
+ /* @__PURE__ */ jsx13("th", { children: "Payment total" }),
4897
+ /* @__PURE__ */ jsx13("th", { children: "Deposit date" }),
4898
+ /* @__PURE__ */ jsx13("th", { children: "Post date" }),
4899
+ /* @__PURE__ */ jsx13("th", { children: "Source" }),
4900
+ /* @__PURE__ */ jsx13("th", { children: "Document" })
4750
4901
  ] })
4751
4902
  ] }),
4752
- /* @__PURE__ */ jsx12("tbody", { children: rows.map((payment, index) => {
4903
+ /* @__PURE__ */ jsx13("tbody", { children: rows.map((payment, index) => {
4753
4904
  const eor = eors[index] ?? eors[0];
4754
- return /* @__PURE__ */ jsxs12("tr", { children: [
4755
- /* @__PURE__ */ jsxs12("td", { "data-label": "Submission", children: [
4756
- /* @__PURE__ */ jsx12("strong", { children: "Original bill" }),
4757
- submittedAt ? /* @__PURE__ */ jsxs12("span", { children: [
4905
+ return /* @__PURE__ */ jsxs13("tr", { children: [
4906
+ /* @__PURE__ */ jsxs13("td", { "data-label": "Submission", children: [
4907
+ /* @__PURE__ */ jsx13("strong", { children: "Original bill" }),
4908
+ submittedAt ? /* @__PURE__ */ jsxs13("span", { children: [
4758
4909
  "Sent ",
4759
4910
  defaultFormatDate(submittedAt)
4760
4911
  ] }) : null
4761
4912
  ] }),
4762
- /* @__PURE__ */ jsx12("td", { "data-label": "Submission payment", children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) }),
4763
- /* @__PURE__ */ jsx12("td", { "data-label": "Payment method", children: payment ? humanize(payment.method) : "\u2014" }),
4764
- /* @__PURE__ */ jsx12("td", { "data-label": "Reference", children: payment?.checkNumber || "\u2014" }),
4765
- /* @__PURE__ */ jsx12("td", { "data-label": "Effective date", children: payment ? payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) : "\u2014" }),
4766
- /* @__PURE__ */ jsx12("td", { "data-label": "Payment total", children: payment ? currency(payment.amount) : currency(0) }),
4767
- /* @__PURE__ */ jsx12("td", { "data-label": "Deposit date", children: payment?.depositDate || "Not recorded" }),
4768
- /* @__PURE__ */ jsx12("td", { "data-label": "Post date", children: payment ? defaultFormatDate(payment.postedAt) : eor ? defaultFormatDate(eor.addedAt) : "\u2014" }),
4769
- /* @__PURE__ */ jsx12("td", { "data-label": "Source", children: payment ? payment.source.toUpperCase() : eor ? "EOR" : "\u2014" }),
4770
- /* @__PURE__ */ jsx12("td", { "data-label": "EOR", children: eor && onOpenEor ? /* @__PURE__ */ jsx12("button", { type: "button", className: "mb-eor-link", onClick: () => void onOpenEor(eor), children: eor.filename }) : eor?.filename || "\u2014" })
4913
+ /* @__PURE__ */ jsx13("td", { "data-label": "Submission payment", children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) }),
4914
+ /* @__PURE__ */ jsx13("td", { "data-label": "Payment method", children: payment ? humanize(payment.method) : "\u2014" }),
4915
+ /* @__PURE__ */ jsx13("td", { "data-label": "Reference", children: payment?.checkNumber || "\u2014" }),
4916
+ /* @__PURE__ */ jsx13("td", { "data-label": "Effective date", children: payment ? payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) : "\u2014" }),
4917
+ /* @__PURE__ */ jsx13("td", { "data-label": "Payment total", children: payment ? currency(payment.amount) : currency(0) }),
4918
+ /* @__PURE__ */ jsx13("td", { "data-label": "Deposit date", children: payment?.depositDate || "Not recorded" }),
4919
+ /* @__PURE__ */ jsx13("td", { "data-label": "Post date", children: payment ? defaultFormatDate(payment.postedAt) : eor ? defaultFormatDate(eor.addedAt) : "\u2014" }),
4920
+ /* @__PURE__ */ jsx13("td", { "data-label": "Source", children: payment ? payment.source.toUpperCase() : eor ? "EOR" : "\u2014" }),
4921
+ /* @__PURE__ */ jsx13("td", { "data-label": "EOR", children: eor && onOpenEor ? /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-eor-link", onClick: () => void onOpenEor(eor), children: eor.filename }) : eor?.filename || "\u2014" })
4771
4922
  ] }, payment?.id ?? `empty-${index}`);
4772
4923
  }) })
4773
4924
  ] }) }),
4774
- eors.length > rows.length ? /* @__PURE__ */ jsx12("div", { className: "mb-eor-documents", children: eors.slice(rows.length).map((eor) => /* @__PURE__ */ jsx12("button", { type: "button", onClick: () => void onOpenEor?.(eor), children: eor.filename }, eor.id)) }) : null
4925
+ eors.length > rows.length ? /* @__PURE__ */ jsx13("div", { className: "mb-eor-documents", children: eors.slice(rows.length).map((eor) => /* @__PURE__ */ jsx13("button", { type: "button", onClick: () => void onOpenEor?.(eor), children: eor.filename }, eor.id)) }) : null
4775
4926
  ] });
4776
4927
  }
4777
4928
  function BillRemittanceCard({ remittance, appearance, className, style }) {
4778
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-remittance", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Remittance summary", children: [
4779
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4780
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4781
- /* @__PURE__ */ jsx12("strong", { children: "Remittance" }),
4782
- /* @__PURE__ */ jsx12("span", { children: "Amounts reported by the payer and posted to the bill." })
4929
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-remittance", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Remittance summary", children: [
4930
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4931
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4932
+ /* @__PURE__ */ jsx13("strong", { children: "Remittance" }),
4933
+ /* @__PURE__ */ jsx13("span", { children: "Amounts reported by the payer and posted to the bill." })
4783
4934
  ] }) }),
4784
- /* @__PURE__ */ jsxs12("dl", { children: [
4785
- /* @__PURE__ */ jsxs12("div", { children: [
4786
- /* @__PURE__ */ jsx12("dt", { children: "Amount billed" }),
4787
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.billedAmount) })
4935
+ /* @__PURE__ */ jsxs13("dl", { children: [
4936
+ /* @__PURE__ */ jsxs13("div", { children: [
4937
+ /* @__PURE__ */ jsx13("dt", { children: "Amount billed" }),
4938
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.billedAmount) })
4788
4939
  ] }),
4789
- /* @__PURE__ */ jsxs12("div", { children: [
4790
- /* @__PURE__ */ jsx12("dt", { children: "Expected" }),
4791
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.expectedAmount) })
4940
+ /* @__PURE__ */ jsxs13("div", { children: [
4941
+ /* @__PURE__ */ jsx13("dt", { children: "Expected" }),
4942
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.expectedAmount) })
4792
4943
  ] }),
4793
- /* @__PURE__ */ jsxs12("div", { children: [
4794
- /* @__PURE__ */ jsx12("dt", { children: "Payer allowed" }),
4795
- /* @__PURE__ */ jsx12("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
4944
+ /* @__PURE__ */ jsxs13("div", { children: [
4945
+ /* @__PURE__ */ jsx13("dt", { children: "Payer allowed" }),
4946
+ /* @__PURE__ */ jsx13("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
4796
4947
  ] }),
4797
- /* @__PURE__ */ jsxs12("div", { children: [
4798
- /* @__PURE__ */ jsx12("dt", { children: "Payer reported paid" }),
4799
- /* @__PURE__ */ jsx12("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
4948
+ /* @__PURE__ */ jsxs13("div", { children: [
4949
+ /* @__PURE__ */ jsx13("dt", { children: "Payer reported paid" }),
4950
+ /* @__PURE__ */ jsx13("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
4800
4951
  ] }),
4801
- /* @__PURE__ */ jsxs12("div", { children: [
4802
- /* @__PURE__ */ jsx12("dt", { children: "Payment posted" }),
4803
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.postedPrincipal) })
4952
+ /* @__PURE__ */ jsxs13("div", { children: [
4953
+ /* @__PURE__ */ jsx13("dt", { children: "Payment posted" }),
4954
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.postedPrincipal) })
4804
4955
  ] }),
4805
- /* @__PURE__ */ jsxs12("div", { children: [
4806
- /* @__PURE__ */ jsx12("dt", { children: "Penalty & interest" }),
4807
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.postedAdditional) })
4956
+ /* @__PURE__ */ jsxs13("div", { children: [
4957
+ /* @__PURE__ */ jsx13("dt", { children: "Penalty & interest" }),
4958
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.postedAdditional) })
4808
4959
  ] }),
4809
- /* @__PURE__ */ jsxs12("div", { children: [
4810
- /* @__PURE__ */ jsx12("dt", { children: "Total received" }),
4811
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.totalPostedCash) })
4960
+ /* @__PURE__ */ jsxs13("div", { children: [
4961
+ /* @__PURE__ */ jsx13("dt", { children: "Total received" }),
4962
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.totalPostedCash) })
4812
4963
  ] }),
4813
- /* @__PURE__ */ jsxs12("div", { children: [
4814
- /* @__PURE__ */ jsx12("dt", { children: "Balance due" }),
4815
- /* @__PURE__ */ jsx12("dd", { children: currency(remittance.balanceDue) })
4964
+ /* @__PURE__ */ jsxs13("div", { children: [
4965
+ /* @__PURE__ */ jsx13("dt", { children: "Balance due" }),
4966
+ /* @__PURE__ */ jsx13("dd", { children: currency(remittance.balanceDue) })
4816
4967
  ] })
4817
4968
  ] }),
4818
- remittance.denialReason ? /* @__PURE__ */ jsxs12("div", { className: "mb-denial", children: [
4819
- /* @__PURE__ */ jsx12("strong", { children: "Denial reason" }),
4820
- /* @__PURE__ */ jsx12("p", { children: remittance.denialReason })
4969
+ remittance.denialReason ? /* @__PURE__ */ jsxs13("div", { className: "mb-denial", children: [
4970
+ /* @__PURE__ */ jsx13("strong", { children: "Denial reason" }),
4971
+ /* @__PURE__ */ jsx13("p", { children: remittance.denialReason })
4821
4972
  ] }) : null
4822
4973
  ] });
4823
4974
  }
4824
4975
  function BillPayerContactCard({ delivery, appearance, className, style }) {
4825
- const contacts = [
4976
+ const contacts2 = [
4826
4977
  delivery.contacts.adjusterName ? ["Adjuster", delivery.contacts.adjusterName, null] : null,
4827
4978
  delivery.contacts.adjusterPhone ? ["Adjuster phone", delivery.contacts.adjusterPhone, `tel:${delivery.contacts.adjusterPhone}`] : null,
4828
4979
  delivery.contacts.adjusterEmail ? ["Adjuster email", delivery.contacts.adjusterEmail, `mailto:${delivery.contacts.adjusterEmail}`] : null,
@@ -4831,73 +4982,73 @@ function BillPayerContactCard({ delivery, appearance, className, style }) {
4831
4982
  delivery.contacts.mailingAddress ? ["Mail", delivery.contacts.mailingAddress, null] : null,
4832
4983
  delivery.contacts.portalUrl ? ["Portal", "Open payer portal", delivery.contacts.portalUrl] : null
4833
4984
  ].filter(Boolean);
4834
- if (!delivery.payerName && !contacts.length) return null;
4835
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-contacts", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payer contact information", children: [
4836
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4837
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4838
- /* @__PURE__ */ jsx12("strong", { children: delivery.payerName || "Claims administrator" }),
4839
- /* @__PURE__ */ jsx12("span", { children: "Billing and follow-up contacts." })
4985
+ if (!delivery.payerName && !contacts2.length) return null;
4986
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-contacts", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payer contact information", children: [
4987
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
4988
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
4989
+ /* @__PURE__ */ jsx13("strong", { children: delivery.payerName || "Claims administrator" }),
4990
+ /* @__PURE__ */ jsx13("span", { children: "Billing and follow-up contacts." })
4840
4991
  ] }) }),
4841
- !contacts.length ? /* @__PURE__ */ jsx12("p", { className: "mb-empty", children: "No payer contact details are available." }) : /* @__PURE__ */ jsx12("dl", { children: contacts.map(([label, value, href]) => /* @__PURE__ */ jsxs12("div", { children: [
4842
- /* @__PURE__ */ jsx12("dt", { children: label }),
4843
- /* @__PURE__ */ jsx12("dd", { children: href ? /* @__PURE__ */ jsx12("a", { href, target: label === "Portal" ? "_blank" : void 0, rel: label === "Portal" ? "noreferrer noopener" : void 0, children: value }) : value })
4992
+ !contacts2.length ? /* @__PURE__ */ jsx13("p", { className: "mb-empty", children: "No payer contact details are available." }) : /* @__PURE__ */ jsx13("dl", { children: contacts2.map(([label, value, href]) => /* @__PURE__ */ jsxs13("div", { children: [
4993
+ /* @__PURE__ */ jsx13("dt", { children: label }),
4994
+ /* @__PURE__ */ jsx13("dd", { children: href ? /* @__PURE__ */ jsx13("a", { href, target: label === "Portal" ? "_blank" : void 0, rel: label === "Portal" ? "noreferrer noopener" : void 0, children: value }) : value })
4844
4995
  ] }, label)) })
4845
4996
  ] });
4846
4997
  }
4847
4998
  function BillPaymentLedger({ payments, appearance, className, style }) {
4848
- return /* @__PURE__ */ jsxs12("section", { className: classes("mb-surface mb-payments", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payment ledger", children: [
4849
- /* @__PURE__ */ jsx12("style", { children: lifecycleSurfaceStyles }),
4850
- /* @__PURE__ */ jsx12("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs12("div", { children: [
4851
- /* @__PURE__ */ jsx12("strong", { children: "Payments" }),
4852
- /* @__PURE__ */ jsx12("span", { children: "Funds recorded against this bill." })
4999
+ return /* @__PURE__ */ jsxs13("section", { className: classes("mb-surface mb-payments", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payment ledger", children: [
5000
+ /* @__PURE__ */ jsx13("style", { children: lifecycleSurfaceStyles }),
5001
+ /* @__PURE__ */ jsx13("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs13("div", { children: [
5002
+ /* @__PURE__ */ jsx13("strong", { children: "Payments" }),
5003
+ /* @__PURE__ */ jsx13("span", { children: "Funds recorded against this bill." })
4853
5004
  ] }) }),
4854
- !payments.length ? /* @__PURE__ */ jsx12("p", { className: "mb-empty", children: "No payments posted." }) : /* @__PURE__ */ jsx12("div", { className: "mb-payment-list", children: payments.map((payment) => {
5005
+ !payments.length ? /* @__PURE__ */ jsx13("p", { className: "mb-empty", children: "No payments posted." }) : /* @__PURE__ */ jsx13("div", { className: "mb-payment-list", children: payments.map((payment) => {
4855
5006
  const additional = payment.feeAmount ?? 0;
4856
- return /* @__PURE__ */ jsxs12("article", { children: [
4857
- /* @__PURE__ */ jsxs12("div", { className: "mb-payment-amount", children: [
4858
- /* @__PURE__ */ jsx12("strong", { children: currency(payment.amount) }),
4859
- /* @__PURE__ */ jsx12("span", { children: "Total received" })
5007
+ return /* @__PURE__ */ jsxs13("article", { children: [
5008
+ /* @__PURE__ */ jsxs13("div", { className: "mb-payment-amount", children: [
5009
+ /* @__PURE__ */ jsx13("strong", { children: currency(payment.amount) }),
5010
+ /* @__PURE__ */ jsx13("span", { children: "Total received" })
4860
5011
  ] }),
4861
- /* @__PURE__ */ jsxs12("dl", { children: [
4862
- /* @__PURE__ */ jsxs12("div", { children: [
4863
- /* @__PURE__ */ jsx12("dt", { children: "Applied to bill" }),
4864
- /* @__PURE__ */ jsx12("dd", { children: currency(payment.principalAmount) })
5012
+ /* @__PURE__ */ jsxs13("dl", { children: [
5013
+ /* @__PURE__ */ jsxs13("div", { children: [
5014
+ /* @__PURE__ */ jsx13("dt", { children: "Applied to bill" }),
5015
+ /* @__PURE__ */ jsx13("dd", { children: currency(payment.principalAmount) })
4865
5016
  ] }),
4866
- additional > 0 ? /* @__PURE__ */ jsxs12("div", { children: [
4867
- /* @__PURE__ */ jsx12("dt", { children: "Penalty & interest" }),
4868
- /* @__PURE__ */ jsx12("dd", { children: currency(additional) })
5017
+ additional > 0 ? /* @__PURE__ */ jsxs13("div", { children: [
5018
+ /* @__PURE__ */ jsx13("dt", { children: "Penalty & interest" }),
5019
+ /* @__PURE__ */ jsx13("dd", { children: currency(additional) })
4869
5020
  ] }) : null,
4870
- /* @__PURE__ */ jsxs12("div", { children: [
4871
- /* @__PURE__ */ jsx12("dt", { children: "Method" }),
4872
- /* @__PURE__ */ jsx12("dd", { children: payment.method.toUpperCase() })
5021
+ /* @__PURE__ */ jsxs13("div", { children: [
5022
+ /* @__PURE__ */ jsx13("dt", { children: "Method" }),
5023
+ /* @__PURE__ */ jsx13("dd", { children: payment.method.toUpperCase() })
4873
5024
  ] }),
4874
- /* @__PURE__ */ jsxs12("div", { children: [
4875
- /* @__PURE__ */ jsx12("dt", { children: "Reference" }),
4876
- /* @__PURE__ */ jsx12("dd", { children: payment.checkNumber || "\u2014" })
5025
+ /* @__PURE__ */ jsxs13("div", { children: [
5026
+ /* @__PURE__ */ jsx13("dt", { children: "Reference" }),
5027
+ /* @__PURE__ */ jsx13("dd", { children: payment.checkNumber || "\u2014" })
4877
5028
  ] }),
4878
- /* @__PURE__ */ jsxs12("div", { children: [
4879
- /* @__PURE__ */ jsx12("dt", { children: "Effective date" }),
4880
- /* @__PURE__ */ jsx12("dd", { children: payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) })
5029
+ /* @__PURE__ */ jsxs13("div", { children: [
5030
+ /* @__PURE__ */ jsx13("dt", { children: "Effective date" }),
5031
+ /* @__PURE__ */ jsx13("dd", { children: payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) })
4881
5032
  ] }),
4882
- /* @__PURE__ */ jsxs12("div", { children: [
4883
- /* @__PURE__ */ jsx12("dt", { children: "Deposit date" }),
4884
- /* @__PURE__ */ jsx12("dd", { children: payment.depositDate || "Not recorded" })
5033
+ /* @__PURE__ */ jsxs13("div", { children: [
5034
+ /* @__PURE__ */ jsx13("dt", { children: "Deposit date" }),
5035
+ /* @__PURE__ */ jsx13("dd", { children: payment.depositDate || "Not recorded" })
4885
5036
  ] }),
4886
- /* @__PURE__ */ jsxs12("div", { children: [
4887
- /* @__PURE__ */ jsx12("dt", { children: "Posted" }),
4888
- /* @__PURE__ */ jsxs12("dd", { children: [
5037
+ /* @__PURE__ */ jsxs13("div", { children: [
5038
+ /* @__PURE__ */ jsx13("dt", { children: "Posted" }),
5039
+ /* @__PURE__ */ jsxs13("dd", { children: [
4889
5040
  defaultFormatDate(payment.postedAt),
4890
5041
  " \xB7 ",
4891
5042
  payment.source.toUpperCase()
4892
5043
  ] })
4893
5044
  ] }),
4894
- /* @__PURE__ */ jsxs12("div", { children: [
4895
- /* @__PURE__ */ jsx12("dt", { children: "Status" }),
4896
- /* @__PURE__ */ jsx12("dd", { children: humanize(payment.status || "posted") })
5045
+ /* @__PURE__ */ jsxs13("div", { children: [
5046
+ /* @__PURE__ */ jsx13("dt", { children: "Status" }),
5047
+ /* @__PURE__ */ jsx13("dd", { children: humanize(payment.status || "posted") })
4897
5048
  ] })
4898
5049
  ] }),
4899
- payment.feeReason ? /* @__PURE__ */ jsx12("p", { children: payment.feeReason }) : null,
4900
- payment.note ? /* @__PURE__ */ jsx12("p", { children: payment.note }) : null
5050
+ payment.feeReason ? /* @__PURE__ */ jsx13("p", { children: payment.feeReason }) : null,
5051
+ payment.note ? /* @__PURE__ */ jsx13("p", { children: payment.note }) : null
4901
5052
  ] }, payment.id);
4902
5053
  }) })
4903
5054
  ] });
@@ -4928,8 +5079,8 @@ var lifecycleSurfaceStyles = `
4928
5079
  .mb-history-rows{list-style:none;margin:0;padding:0}.mb-history-row{border-top:1px solid var(--mb-border)}
4929
5080
  .mb-history-row.is-submission{background:color-mix(in srgb,var(--mb-accent) 9%,var(--mb-surface))}
4930
5081
  .mb-history-row.is-note{background:color-mix(in srgb,#f2c344 13%,var(--mb-surface))}
4931
- .mb-history-line{display:grid;grid-template-columns:96px 160px 140px minmax(0,1fr);gap:12px;width:100%;padding:10px 14px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:default}
4932
- .mb-history-line:not(:disabled){cursor:pointer}.mb-history-line:not(:disabled):hover .mb-history-summary{text-decoration:underline}
5082
+ .mb-history-line{display:grid;grid-template-columns:96px 160px 140px minmax(0,1fr);gap:12px;width:100%;padding:10px 14px;border:0;background:transparent;color:inherit;font:inherit;text-align:left}
5083
+ .mb-history-line.is-expandable{cursor:pointer}.mb-history-line.is-expandable:hover .mb-history-summary{text-decoration:underline}
4933
5084
  .mb-history-date{color:var(--mb-muted);font-size:13px}.mb-history-action{font-size:13.5px;font-weight:750}
4934
5085
  .mb-history-row.is-problem .mb-history-action{color:var(--mb-danger)}
4935
5086
  .mb-history-actor{color:var(--mb-muted);font-size:13px;overflow-wrap:anywhere}
@@ -4939,7 +5090,7 @@ var lifecycleSurfaceStyles = `
4939
5090
  .mb-history-details{padding:4px 14px 14px 122px;font-size:13.5px;line-height:1.5}
4940
5091
  .mb-history-kv,.mb-history-codes,.mb-history-due dl{display:grid;gap:4px;margin:0}
4941
5092
  .mb-history-kv>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;border-top:1px solid color-mix(in srgb,var(--mb-border) 60%,transparent);padding-top:4px}
4942
- .mb-history-kv dt{font-weight:750}.mb-history-kv dd{margin:0;overflow-wrap:anywhere}.mb-history-kv dd a{color:var(--mb-accent)}.mb-history-doc{display:block}
5093
+ .mb-history-kv dt{font-weight:750}.mb-history-kv dd{margin:0;overflow-wrap:anywhere}.mb-history-kv dd a{color:var(--mb-accent)}.mb-history-doc{display:block}.mb-history-kv button.mb-history-doc{border:0;background:transparent;color:var(--mb-accent);font:inherit;padding:0;text-align:left;text-decoration:underline;cursor:pointer}
4943
5094
  .mb-history-codes>div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px}.mb-history-codes dt{font-weight:800}.mb-history-codes dd{margin:0}
4944
5095
  .mb-history-due{margin-top:8px}.mb-history-due em{display:block;color:var(--mb-muted);font-size:12.5px;margin-bottom:4px}
4945
5096
  .mb-history-due dl>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;border-top:1px solid color-mix(in srgb,var(--mb-border) 60%,transparent);padding-top:4px}
@@ -4952,10 +5103,10 @@ var lifecycleSurfaceStyles = `
4952
5103
  // src/connected-bill-lifecycle.tsx
4953
5104
  import {
4954
5105
  useCallback as useCallback4,
4955
- useEffect as useEffect8,
5106
+ useEffect as useEffect9,
4956
5107
  useMemo as useMemo8,
4957
5108
  useRef as useRef5,
4958
- useState as useState10
5109
+ useState as useState11
4959
5110
  } from "react";
4960
5111
  import {
4961
5112
  DEFAULT_API_BASE_URL as DEFAULT_API_BASE_URL2,
@@ -4972,7 +5123,7 @@ import {
4972
5123
  reportBillStatusContacts as reportBillStatusContacts2,
4973
5124
  secondReviewDeadline as secondReviewDeadline2
4974
5125
  } from "@mindbill/browser";
4975
- import { Fragment as Fragment9, jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
5126
+ import { Fragment as Fragment11, jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
4976
5127
  var DEFAULT_REFRESH_INTERVAL2 = 6e4;
4977
5128
  function reservePreviewWindow() {
4978
5129
  const preview = window.open("about:blank", "_blank");
@@ -5014,11 +5165,11 @@ function useBillLifecycle({
5014
5165
  enabled = true,
5015
5166
  fetch: fetchOverride
5016
5167
  }) {
5017
- const [data, setData] = useState10(null);
5018
- const [error, setError] = useState10(null);
5019
- const [isLoading, setIsLoading] = useState10(enabled);
5020
- const [isRefreshing, setIsRefreshing] = useState10(false);
5021
- const [isMutating, setIsMutating] = useState10(false);
5168
+ const [data, setData] = useState11(null);
5169
+ const [error, setError] = useState11(null);
5170
+ const [isLoading, setIsLoading] = useState11(enabled);
5171
+ const [isRefreshing, setIsRefreshing] = useState11(false);
5172
+ const [isMutating, setIsMutating] = useState11(false);
5022
5173
  const mounted = useRef5(true);
5023
5174
  const client = useMemo8(() => createBillLifecycleClient({
5024
5175
  billId: providedBillId,
@@ -5027,12 +5178,12 @@ function useBillLifecycle({
5027
5178
  apiBaseUrl,
5028
5179
  fetch: fetchOverride
5029
5180
  }), [apiBaseUrl, fetchOverride, getSession, providedBillId, sessionEndpoint]);
5030
- useEffect8(() => {
5181
+ useEffect9(() => {
5031
5182
  setData(null);
5032
5183
  setError(null);
5033
5184
  setIsLoading(enabled);
5034
5185
  }, [enabled, providedBillId]);
5035
- useEffect8(() => {
5186
+ useEffect9(() => {
5036
5187
  mounted.current = true;
5037
5188
  return () => {
5038
5189
  mounted.current = false;
@@ -5056,7 +5207,7 @@ function useBillLifecycle({
5056
5207
  }
5057
5208
  }
5058
5209
  }, [client, enabled]);
5059
- useEffect8(() => {
5210
+ useEffect9(() => {
5060
5211
  if (!enabled) return;
5061
5212
  void refresh();
5062
5213
  const interval = refreshInterval > 0 ? window.setInterval(() => void refresh(), refreshInterval) : null;
@@ -5107,6 +5258,7 @@ function useBillLifecycle({
5107
5258
  isMutating,
5108
5259
  refresh,
5109
5260
  searchClaimsAdministrators: (query, claimNumber) => client.searchClaimsAdministrators(query, claimNumber),
5261
+ getClaimsAdministratorDirectory: (id, injuryState) => client.getClaimsAdministratorDirectory(id, injuryState),
5110
5262
  getDeliveryOptions: () => client.getDeliveryOptions(),
5111
5263
  getAttachment: (attachmentId) => client.getAttachment(attachmentId),
5112
5264
  openAttachment,
@@ -5125,7 +5277,7 @@ function useBillLifecycle({
5125
5277
  }
5126
5278
  function LifecycleDialog({ children, title, wide = false, onClose }) {
5127
5279
  const dialog = useRef5(null);
5128
- useEffect8(() => {
5280
+ useEffect9(() => {
5129
5281
  const previous = document.activeElement;
5130
5282
  dialog.current?.focus();
5131
5283
  const onKeyDown = (event) => event.key === "Escape" && onClose();
@@ -5135,8 +5287,8 @@ function LifecycleDialog({ children, title, wide = false, onClose }) {
5135
5287
  previous?.focus();
5136
5288
  };
5137
5289
  }, [onClose]);
5138
- return /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-dialog-backdrop", onMouseDown: (event) => event.currentTarget === event.target && onClose(), children: /* @__PURE__ */ jsxs13("div", { ref: dialog, className: ["mb-lifecycle-dialog", wide ? "wide" : ""].filter(Boolean).join(" "), role: "dialog", "aria-modal": "true", "aria-label": title, tabIndex: -1, children: [
5139
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-dialog-close", "aria-label": "Close", onClick: onClose, children: "\xD7" }),
5290
+ return /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-dialog-backdrop", onMouseDown: (event) => event.currentTarget === event.target && onClose(), children: /* @__PURE__ */ jsxs14("div", { ref: dialog, className: ["mb-lifecycle-dialog", wide ? "wide" : ""].filter(Boolean).join(" "), role: "dialog", "aria-modal": "true", "aria-label": title, tabIndex: -1, children: [
5291
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-dialog-close", "aria-label": "Close", onClick: onClose, children: "\xD7" }),
5140
5292
  children
5141
5293
  ] }) });
5142
5294
  }
@@ -5207,7 +5359,7 @@ function correctionBill(data) {
5207
5359
  address: { line1: location.street, city: location.city, state: location.state, postalCode: location.zip },
5208
5360
  ...location.posCode ? { placeOfServiceCode: location.posCode } : {}
5209
5361
  } } : {},
5210
- diagnoses: [...data.injury.diagnosisCodes || []],
5362
+ diagnoses: data.injury.diagnoses?.map((diagnosis) => diagnosis.code) ?? [...data.injury.diagnosisCodes || []],
5211
5363
  serviceLines: data.bill.lineItems.map((line) => ({
5212
5364
  code: line.code,
5213
5365
  modifiers: [...line.modifiers],
@@ -5252,19 +5404,20 @@ function sandboxScenarios(state) {
5252
5404
  function shouldShowSandboxControls(environment, enabled = false) {
5253
5405
  return enabled && environment === "sandbox";
5254
5406
  }
5255
- function ConnectedBillLifecycle({ appearance, sandboxControls = false, className, style, loadingFallback, errorFallback, onChanged, ...options }) {
5407
+ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint, sandboxControls = false, className, style, loadingFallback, errorFallback, onChanged, ...options }) {
5256
5408
  const lifecycle = useBillLifecycle(options);
5257
5409
  const { data } = lifecycle;
5258
- const [tab, setTab] = useState10("details");
5259
- const [panel, setPanel] = useState10("");
5260
- const [notice, setNotice] = useState10("");
5261
- const [reason, setReason] = useState10("");
5262
- const [correctionError, setCorrectionError] = useState10("");
5263
- const [newBillError, setNewBillError] = useState10("");
5264
- const [payment, setPayment] = useState10({ amount: 0, penaltyAmount: 0, interestAmount: 0, method: "check", checkNumber: "", depositDate: today(), note: "" });
5265
- const [review, setReview] = useState10({ reason: "", payerClaimControlNumber: "", disputedAmount: void 0, attachmentIds: [], route: "ebill" });
5266
- const [duplicateDelivery, setDuplicateDelivery] = useState10(null);
5267
- const [duplicateDeliveryError, setDuplicateDeliveryError] = useState10("");
5410
+ const [tab, setTab] = useState11("details");
5411
+ const [panel, setPanel] = useState11("");
5412
+ const [notice, setNotice] = useState11("");
5413
+ const [reason, setReason] = useState11("");
5414
+ const [correctionError, setCorrectionError] = useState11("");
5415
+ const [newBillError, setNewBillError] = useState11("");
5416
+ const [payment, setPayment] = useState11({ amount: 0, penaltyAmount: 0, interestAmount: 0, method: "check", checkNumber: "", depositDate: today(), note: "" });
5417
+ const [review, setReview] = useState11({ reason: "", payerClaimControlNumber: "", disputedAmount: void 0, attachmentIds: [], route: "ebill" });
5418
+ const [duplicateDelivery, setDuplicateDelivery] = useState11(null);
5419
+ const [duplicateDeliveryError, setDuplicateDeliveryError] = useState11("");
5420
+ const actor = actorName?.trim() ? { actorName: actorName.trim() } : {};
5268
5421
  const lastData = useRef5(null);
5269
5422
  const correctionInitialBill = useMemo8(() => data ? correctionBill(data) : null, [data]);
5270
5423
  const correctionAttachments = useMemo8(() => data ? data.bill.attachments.map((attachment) => {
@@ -5281,7 +5434,7 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5281
5434
  };
5282
5435
  }) : [], [data, lifecycle]);
5283
5436
  const correctionAttentionFields = useMemo8(() => data?.rejection?.issues?.flatMap((issue) => issue.fieldPaths || []).filter((path, index, fields) => fields.indexOf(path) === index) || [], [data]);
5284
- useEffect8(() => {
5437
+ useEffect9(() => {
5285
5438
  if (!data || data === lastData.current) return;
5286
5439
  lastData.current = data;
5287
5440
  onChanged?.(data);
@@ -5298,13 +5451,13 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5298
5451
  attachmentIds: current.attachmentIds.length ? current.attachmentIds.filter((id) => data.bill.attachments.some((document2) => document2.id === id)) : data.bill.attachments.map((document2) => document2.id)
5299
5452
  }));
5300
5453
  }, [data, onChanged]);
5301
- if (lifecycle.isLoading && !data) return /* @__PURE__ */ jsx13(Fragment9, { children: loadingFallback ?? /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-loading", children: "Loading bill\u2026" }) });
5454
+ if (lifecycle.isLoading && !data) return /* @__PURE__ */ jsx14(Fragment11, { children: loadingFallback ?? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-loading", children: "Loading bill\u2026" }) });
5302
5455
  if (!data) {
5303
5456
  const error = lifecycle.error ?? new Error("Bill could not be loaded.");
5304
- return /* @__PURE__ */ jsx13(Fragment9, { children: errorFallback?.(error, lifecycle.refresh) ?? /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-error", role: "alert", children: [
5305
- /* @__PURE__ */ jsx13("strong", { children: "Billing is unavailable." }),
5306
- /* @__PURE__ */ jsx13("span", { children: error.message }),
5307
- /* @__PURE__ */ jsx13("button", { type: "button", onClick: () => void lifecycle.refresh(), children: "Try again" })
5457
+ return /* @__PURE__ */ jsx14(Fragment11, { children: errorFallback?.(error, lifecycle.refresh) ?? /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-error", role: "alert", children: [
5458
+ /* @__PURE__ */ jsx14("strong", { children: "Billing is unavailable." }),
5459
+ /* @__PURE__ */ jsx14("span", { children: error.message }),
5460
+ /* @__PURE__ */ jsx14("button", { type: "button", onClick: () => void lifecycle.refresh(), children: "Try again" })
5308
5461
  ] }) });
5309
5462
  }
5310
5463
  const complete = async (message, task) => {
@@ -5331,7 +5484,8 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5331
5484
  await lifecycle.resubmitBill({
5332
5485
  bill: value.bill,
5333
5486
  ...documents.length ? { documents } : {},
5334
- ...reason.trim() ? { reason: reason.trim() } : {}
5487
+ ...reason.trim() ? { reason: reason.trim() } : {},
5488
+ ...actor
5335
5489
  });
5336
5490
  } catch (cause) {
5337
5491
  setCorrectionError(
@@ -5357,7 +5511,8 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5357
5511
  await lifecycle.submitNewBill({
5358
5512
  bill: value.bill,
5359
5513
  ...documents.length ? { documents } : {},
5360
- ...reason.trim() ? { reason: reason.trim() } : {}
5514
+ ...reason.trim() ? { reason: reason.trim() } : {},
5515
+ ...actor
5361
5516
  });
5362
5517
  } catch (cause) {
5363
5518
  setNewBillError(
@@ -5383,46 +5538,46 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5383
5538
  const statusContacts = reportBillStatusContacts(data.delivery);
5384
5539
  const receiptEntries = (data.history ?? []).filter((entry) => entry.kind === "submission" || entry.kind === "ack");
5385
5540
  const reviewDeadline = secondReviewDeadline(data.eors);
5386
- return /* @__PURE__ */ jsxs13("section", { className: ["mb-connected-lifecycle", className].filter(Boolean).join(" "), style: mindBillAppearanceStyle(appearance, style), children: [
5387
- /* @__PURE__ */ jsx13("style", { children: CONNECTED_LIFECYCLE_STYLES }),
5388
- ribbonItems.length >= 2 ? /* @__PURE__ */ jsx13(BillSubmissionsRibbon, { items: ribbonItems, onSelect: () => setTab("history"), ...appearance ? { appearance } : {} }) : null,
5389
- data.lifecycle.state.toLowerCase() === "rejected" && data.rejection ? /* @__PURE__ */ jsx13(BillRejectionNotice, { rejection: data.rejection, submittedAt: data.lifecycle.submittedAt ?? null, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx13(BillLifecycleProgress, { state: data.lifecycle.state, nativeStatus: data.lifecycle.nativeStatus, submittedAt: data.lifecycle.submittedAt ?? null, agingDays: data.lifecycle.agingDays ?? null, ...appearance ? { appearance } : {} }),
5390
- /* @__PURE__ */ jsxs13("header", { className: "mb-lifecycle-head", children: [
5391
- /* @__PURE__ */ jsxs13("div", { children: [
5392
- /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-title", children: /* @__PURE__ */ jsxs13("h2", { children: [
5541
+ return /* @__PURE__ */ jsxs14("section", { className: ["mb-connected-lifecycle", className].filter(Boolean).join(" "), style: mindBillAppearanceStyle(appearance, style), children: [
5542
+ /* @__PURE__ */ jsx14("style", { children: CONNECTED_LIFECYCLE_STYLES }),
5543
+ ribbonItems.length >= 2 ? /* @__PURE__ */ jsx14(BillSubmissionsRibbon, { items: ribbonItems, onSelect: () => setTab("history"), ...appearance ? { appearance } : {} }) : null,
5544
+ data.lifecycle.state.toLowerCase() === "rejected" && data.rejection ? /* @__PURE__ */ jsx14(BillRejectionNotice, { rejection: data.rejection, submittedAt: data.lifecycle.submittedAt ?? null, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx14(BillLifecycleProgress, { state: data.lifecycle.state, nativeStatus: data.lifecycle.nativeStatus, submittedAt: data.lifecycle.submittedAt ?? null, agingDays: data.lifecycle.agingDays ?? null, ...appearance ? { appearance } : {} }),
5545
+ /* @__PURE__ */ jsxs14("header", { className: "mb-lifecycle-head", children: [
5546
+ /* @__PURE__ */ jsxs14("div", { children: [
5547
+ /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-title", children: /* @__PURE__ */ jsxs14("h2", { children: [
5393
5548
  "Bill #",
5394
5549
  data.bill.billNumber
5395
5550
  ] }) }),
5396
- /* @__PURE__ */ jsxs13("p", { children: [
5551
+ /* @__PURE__ */ jsxs14("p", { children: [
5397
5552
  "Claim ",
5398
5553
  data.injury.claimNumber || "\u2014",
5399
5554
  lifecycle.isRefreshing ? " \xB7 Refreshing\u2026" : ""
5400
5555
  ] })
5401
5556
  ] }),
5402
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating, onClick: () => void lifecycle.downloadPacket().catch(() => void 0), children: "Download packet" })
5557
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating, onClick: () => void lifecycle.downloadPacket().catch(() => void 0), children: "Download packet" })
5403
5558
  ] }),
5404
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-tabs", role: "tablist", "aria-label": "Bill view", children: [
5405
- /* @__PURE__ */ jsx13("button", { type: "button", role: "tab", "aria-selected": tab === "details", onClick: () => setTab("details"), children: "Bill details" }),
5406
- /* @__PURE__ */ jsx13("button", { type: "button", role: "tab", "aria-selected": tab === "history", onClick: () => setTab("history"), children: "Bill history" })
5559
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-tabs", role: "tablist", "aria-label": "Bill view", children: [
5560
+ /* @__PURE__ */ jsx14("button", { type: "button", role: "tab", "aria-selected": tab === "details", onClick: () => setTab("details"), children: "Bill details" }),
5561
+ /* @__PURE__ */ jsx14("button", { type: "button", role: "tab", "aria-selected": tab === "history", onClick: () => setTab("history"), children: "Bill history" })
5407
5562
  ] }),
5408
- tab === "details" ? /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: [
5409
- data.eors.length || data.payments.length || ["processed", "denied", "partially_paid"].includes(data.lifecycle.state) ? /* @__PURE__ */ jsx13(BillExplanationOfReview, { remittance: data.remittance, eors: data.eors, payments: data.payments, submittedAt: data.lifecycle.submittedAt ?? null, onOpenEor: lifecycle.openEor, ...appearance ? { appearance } : {} }) : null,
5410
- showSandboxControls ? /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-simulator", "aria-label": "Sandbox lifecycle simulator", children: [
5411
- /* @__PURE__ */ jsxs13("div", { children: [
5412
- /* @__PURE__ */ jsx13("span", { children: "Sandbox demo controls" }),
5413
- /* @__PURE__ */ jsx13("h3", { children: "Simulate the next payer response" }),
5414
- /* @__PURE__ */ jsx13("p", { children: "This changes sandbox data only. The host receives the result through the same lifecycle API and components partners use." })
5563
+ tab === "details" ? /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: [
5564
+ data.eors.length || data.payments.length || ["processed", "denied", "partially_paid"].includes(data.lifecycle.state) ? /* @__PURE__ */ jsx14(BillExplanationOfReview, { remittance: data.remittance, eors: data.eors, payments: data.payments, submittedAt: data.lifecycle.submittedAt ?? null, onOpenEor: lifecycle.openEor, ...appearance ? { appearance } : {} }) : null,
5565
+ showSandboxControls ? /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-simulator", "aria-label": "Sandbox lifecycle simulator", children: [
5566
+ /* @__PURE__ */ jsxs14("div", { children: [
5567
+ /* @__PURE__ */ jsx14("span", { children: "Sandbox demo controls" }),
5568
+ /* @__PURE__ */ jsx14("h3", { children: "Simulate the next payer response" }),
5569
+ /* @__PURE__ */ jsx14("p", { children: "This changes sandbox data only. The host receives the result through the same lifecycle API and components partners use." })
5415
5570
  ] }),
5416
- simulations.length ? /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-simulator-actions", children: simulations.map((scenario) => /* @__PURE__ */ jsxs13("button", { type: "button", disabled: lifecycle.isMutating, onClick: () => void complete(`${scenario.label} simulated.`, () => lifecycle.simulateSandbox({ scenario: scenario.id })), children: [
5417
- /* @__PURE__ */ jsx13("strong", { children: scenario.label }),
5418
- /* @__PURE__ */ jsx13("span", { children: scenario.detail })
5419
- ] }, scenario.id)) }) : /* @__PURE__ */ jsx13("p", { className: "mb-lifecycle-simulator-idle", children: "No simulated payer transition is needed at this stage. Use the bill action below to continue." })
5571
+ simulations.length ? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-simulator-actions", children: simulations.map((scenario) => /* @__PURE__ */ jsxs14("button", { type: "button", disabled: lifecycle.isMutating, onClick: () => void complete(`${scenario.label} simulated.`, () => lifecycle.simulateSandbox({ scenario: scenario.id })), children: [
5572
+ /* @__PURE__ */ jsx14("strong", { children: scenario.label }),
5573
+ /* @__PURE__ */ jsx14("span", { children: scenario.detail })
5574
+ ] }, scenario.id)) }) : /* @__PURE__ */ jsx14("p", { className: "mb-lifecycle-simulator-idle", children: "No simulated payer transition is needed at this stage. Use the bill action below to continue." })
5420
5575
  ] }) : null,
5421
- /* @__PURE__ */ jsx13(BillReadOnlyForm, { data, onOpenAttachment: lifecycle.openAttachment, ...appearance ? { appearance } : {} })
5422
- ] }) : /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: data.history?.length ? /* @__PURE__ */ jsx13(BillHistoryTable, { entries: data.history, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx13(BillActivityTimeline, { events: data.activity, ...appearance ? { appearance } : {} }) }),
5423
- viewEor || actions.length ? /* @__PURE__ */ jsxs13("aside", { className: "mb-lifecycle-actions-sheet", "aria-label": "Bill actions", children: [
5424
- viewEor && data.eors[0] ? /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => void lifecycle.openEor(data.eors[0]).catch(() => void 0), children: viewEor.label }) : null,
5425
- actions.map((action) => /* @__PURE__ */ jsx13("button", { type: "button", className: action.primary ? "mb-lifecycle-button primary" : "mb-lifecycle-button secondary", onClick: () => {
5576
+ /* @__PURE__ */ jsx14(BillReadOnlyForm, { data, onOpenAttachment: lifecycle.openAttachment, ...appearance ? { appearance } : {} })
5577
+ ] }) : /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: data.history?.length ? /* @__PURE__ */ jsx14(BillHistoryTable, { entries: data.history, onOpenDocument: lifecycle.openAttachment, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx14(BillActivityTimeline, { events: data.activity, ...appearance ? { appearance } : {} }) }),
5578
+ viewEor || actions.length ? /* @__PURE__ */ jsxs14("aside", { className: "mb-lifecycle-actions-sheet", "aria-label": "Bill actions", children: [
5579
+ viewEor && data.eors[0] ? /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => void lifecycle.openEor(data.eors[0]).catch(() => void 0), children: viewEor.label }) : null,
5580
+ actions.map((action) => /* @__PURE__ */ jsx14("button", { type: "button", className: action.primary ? "mb-lifecycle-button primary" : "mb-lifecycle-button secondary", onClick: () => {
5426
5581
  const next = actionPanel(action);
5427
5582
  if (!next) return;
5428
5583
  if (next === "resubmit") setCorrectionError("");
@@ -5432,24 +5587,24 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5432
5587
  setPanel(next);
5433
5588
  }, children: action.label }, action.id))
5434
5589
  ] }) : null,
5435
- panel === "resubmit" && correctionInitialBill ? /* @__PURE__ */ jsx13(LifecycleDialog, { title: "Correct and resubmit", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-correction", children: [
5436
- /* @__PURE__ */ jsxs13("header", { children: [
5437
- /* @__PURE__ */ jsxs13("div", { children: [
5438
- /* @__PURE__ */ jsx13("h3", { children: "Correct and resubmit" }),
5439
- /* @__PURE__ */ jsx13("p", { children: "Review the rejected snapshot, correct the highlighted information, and submit a new immutable attempt under this bill." })
5590
+ panel === "resubmit" && correctionInitialBill ? /* @__PURE__ */ jsx14(LifecycleDialog, { title: "Correct and resubmit", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-correction", children: [
5591
+ /* @__PURE__ */ jsxs14("header", { children: [
5592
+ /* @__PURE__ */ jsxs14("div", { children: [
5593
+ /* @__PURE__ */ jsx14("h3", { children: "Correct and resubmit" }),
5594
+ /* @__PURE__ */ jsx14("p", { children: "Review the rejected snapshot, correct the highlighted information, and submit a new immutable attempt under this bill." })
5440
5595
  ] }),
5441
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" })
5596
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" })
5442
5597
  ] }),
5443
- data.rejection ? /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-correction-reason", children: [
5444
- /* @__PURE__ */ jsx13("strong", { children: data.rejection.reason }),
5445
- data.rejection.issues?.map((issue, index) => /* @__PURE__ */ jsxs13("span", { children: [
5598
+ data.rejection ? /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-correction-reason", children: [
5599
+ /* @__PURE__ */ jsx14("strong", { children: data.rejection.reason }),
5600
+ data.rejection.issues?.map((issue, index) => /* @__PURE__ */ jsxs14("span", { children: [
5446
5601
  issue.code ? `${issue.code}: ` : "",
5447
5602
  issue.description
5448
5603
  ] }, `${issue.code || "issue"}-${index}`))
5449
5604
  ] }) : null,
5450
- data.delivery.contacts.adjusterPhone || data.delivery.contacts.claimsEmail ? /* @__PURE__ */ jsxs13("aside", { className: "mb-lifecycle-correction-contact", children: [
5451
- /* @__PURE__ */ jsx13("strong", { children: "Need to verify the rejected information?" }),
5452
- /* @__PURE__ */ jsxs13("span", { children: [
5605
+ data.delivery.contacts.adjusterPhone || data.delivery.contacts.claimsEmail ? /* @__PURE__ */ jsxs14("aside", { className: "mb-lifecycle-correction-contact", children: [
5606
+ /* @__PURE__ */ jsx14("strong", { children: "Need to verify the rejected information?" }),
5607
+ /* @__PURE__ */ jsxs14("span", { children: [
5453
5608
  "Contact ",
5454
5609
  data.delivery.payerName,
5455
5610
  data.delivery.contacts.adjusterPhone ? ` at ${data.delivery.contacts.adjusterPhone}` : "",
@@ -5457,17 +5612,19 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5457
5612
  "."
5458
5613
  ] })
5459
5614
  ] }) : null,
5460
- /* @__PURE__ */ jsxs13("label", { className: "mb-lifecycle-correction-note", children: [
5461
- /* @__PURE__ */ jsx13("span", { children: "Correction note (optional)" }),
5462
- /* @__PURE__ */ jsx13("textarea", { value: reason, placeholder: "What changed before resubmission?", onChange: (event) => setReason(event.target.value) })
5615
+ /* @__PURE__ */ jsxs14("label", { className: "mb-lifecycle-correction-note", children: [
5616
+ /* @__PURE__ */ jsx14("span", { children: "Correction note (optional)" }),
5617
+ /* @__PURE__ */ jsx14("textarea", { value: reason, placeholder: "What changed before resubmission?", onChange: (event) => setReason(event.target.value) })
5463
5618
  ] }),
5464
- /* @__PURE__ */ jsx13(
5619
+ /* @__PURE__ */ jsx14(
5465
5620
  BillSubmissionForm,
5466
5621
  {
5467
5622
  initialBill: correctionInitialBill,
5468
5623
  attachments: correctionAttachments,
5469
5624
  onSubmit: submitCorrection,
5470
5625
  onSearchClaimsAdministrators: lifecycle.searchClaimsAdministrators,
5626
+ onGetClaimsAdministratorDirectory: lifecycle.getClaimsAdministratorDirectory,
5627
+ claimsAdministratorHint,
5471
5628
  attentionFields: correctionAttentionFields,
5472
5629
  attentionMessage: correctionAttentionFields.length ? "The rejected response points to the highlighted fields. Confirm every required value before resubmitting." : "Confirm the bill information below before resubmitting.",
5473
5630
  submitLabel: lifecycle.isMutating ? "Resubmitting\u2026" : "Resubmit bill",
@@ -5481,27 +5638,29 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5481
5638
  ...appearance ? { appearance } : {}
5482
5639
  }
5483
5640
  ),
5484
- correctionError ? /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-message error", role: "alert", children: correctionError }) : null
5641
+ correctionError ? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-message error", role: "alert", children: correctionError }) : null
5485
5642
  ] }) }) : null,
5486
- panel === "submit_new_bill" && correctionInitialBill ? /* @__PURE__ */ jsx13(LifecycleDialog, { title: "Submit New Bill", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-correction", children: [
5487
- /* @__PURE__ */ jsxs13("header", { children: [
5488
- /* @__PURE__ */ jsxs13("div", { children: [
5489
- /* @__PURE__ */ jsx13("h3", { children: "Submit New Bill" }),
5490
- /* @__PURE__ */ jsx13("p", { children: "This closed bill stays closed and keeps its record. Review the carried-over snapshot below and submit a fresh bill \u2014 both bills stay linked in the submissions timeline." })
5643
+ panel === "submit_new_bill" && correctionInitialBill ? /* @__PURE__ */ jsx14(LifecycleDialog, { title: "Submit New Bill", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-correction", children: [
5644
+ /* @__PURE__ */ jsxs14("header", { children: [
5645
+ /* @__PURE__ */ jsxs14("div", { children: [
5646
+ /* @__PURE__ */ jsx14("h3", { children: "Submit New Bill" }),
5647
+ /* @__PURE__ */ jsx14("p", { children: "This closed bill stays closed and keeps its record. Review the carried-over snapshot below and submit a fresh bill \u2014 both bills stay linked in the submissions timeline." })
5491
5648
  ] }),
5492
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" })
5649
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" })
5493
5650
  ] }),
5494
- /* @__PURE__ */ jsxs13("label", { className: "mb-lifecycle-correction-note", children: [
5495
- /* @__PURE__ */ jsx13("span", { children: "Submission note (optional)" }),
5496
- /* @__PURE__ */ jsx13("textarea", { value: reason, placeholder: "Why is a new bill being submitted?", onChange: (event) => setReason(event.target.value) })
5651
+ /* @__PURE__ */ jsxs14("label", { className: "mb-lifecycle-correction-note", children: [
5652
+ /* @__PURE__ */ jsx14("span", { children: "Submission note (optional)" }),
5653
+ /* @__PURE__ */ jsx14("textarea", { value: reason, placeholder: "Why is a new bill being submitted?", onChange: (event) => setReason(event.target.value) })
5497
5654
  ] }),
5498
- /* @__PURE__ */ jsx13(
5655
+ /* @__PURE__ */ jsx14(
5499
5656
  BillSubmissionForm,
5500
5657
  {
5501
5658
  initialBill: correctionInitialBill,
5502
5659
  attachments: correctionAttachments,
5503
5660
  onSubmit: submitNewBillFromForm,
5504
5661
  onSearchClaimsAdministrators: lifecycle.searchClaimsAdministrators,
5662
+ onGetClaimsAdministratorDirectory: lifecycle.getClaimsAdministratorDirectory,
5663
+ claimsAdministratorHint,
5505
5664
  attentionMessage: "Confirm every value carried over from the closed bill before submitting the new bill.",
5506
5665
  submitLabel: lifecycle.isMutating ? "Submitting\u2026" : "Submit New Bill",
5507
5666
  heading: "New bill information",
@@ -5514,121 +5673,121 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5514
5673
  ...appearance ? { appearance } : {}
5515
5674
  }
5516
5675
  ),
5517
- newBillError ? /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-message error", role: "alert", children: newBillError }) : null
5676
+ newBillError ? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-message error", role: "alert", children: newBillError }) : null
5518
5677
  ] }) }) : null,
5519
- panel === "second_review" ? /* @__PURE__ */ jsx13(LifecycleDialog, { title: "Submit Second Review", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-panel", children: [
5520
- /* @__PURE__ */ jsxs13("div", { children: [
5521
- /* @__PURE__ */ jsx13("h3", { children: "Submit Second Review" }),
5522
- /* @__PURE__ */ jsx13("p", { children: "Explain the dispute and include the payer control number and supporting documents." })
5678
+ panel === "second_review" ? /* @__PURE__ */ jsx14(LifecycleDialog, { title: "Submit Second Review", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-panel", children: [
5679
+ /* @__PURE__ */ jsxs14("div", { children: [
5680
+ /* @__PURE__ */ jsx14("h3", { children: "Submit Second Review" }),
5681
+ /* @__PURE__ */ jsx14("p", { children: "Explain the dispute and include the payer control number and supporting documents." })
5523
5682
  ] }),
5524
- reviewDeadline ? /* @__PURE__ */ jsxs13("p", { className: "mb-lifecycle-deadline-hint", children: [
5683
+ reviewDeadline ? /* @__PURE__ */ jsxs14("p", { className: "mb-lifecycle-deadline-hint", children: [
5525
5684
  "Second Review must be requested within 90 days of the denial EOR (dated ",
5526
5685
  usDate(reviewDeadline.eorDate),
5527
5686
  ") \u2014 file by ",
5528
- /* @__PURE__ */ jsx13("strong", { children: usDate(reviewDeadline.deadline) }),
5687
+ /* @__PURE__ */ jsx14("strong", { children: usDate(reviewDeadline.deadline) }),
5529
5688
  "."
5530
5689
  ] }) : null,
5531
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-fields two", children: [
5532
- /* @__PURE__ */ jsxs13("label", { className: "full", children: [
5533
- /* @__PURE__ */ jsx13("span", { children: "Reason" }),
5534
- /* @__PURE__ */ jsx13("textarea", { required: true, value: review.reason, onChange: (event) => setReview((current) => ({ ...current, reason: event.target.value })) })
5690
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-fields two", children: [
5691
+ /* @__PURE__ */ jsxs14("label", { className: "full", children: [
5692
+ /* @__PURE__ */ jsx14("span", { children: "Reason" }),
5693
+ /* @__PURE__ */ jsx14("textarea", { required: true, value: review.reason, onChange: (event) => setReview((current) => ({ ...current, reason: event.target.value })) })
5535
5694
  ] }),
5536
- /* @__PURE__ */ jsxs13("label", { children: [
5537
- /* @__PURE__ */ jsx13("span", { children: "Payer claim control number" }),
5538
- /* @__PURE__ */ jsx13("input", { required: true, value: review.payerClaimControlNumber, onChange: (event) => setReview((current) => ({ ...current, payerClaimControlNumber: event.target.value })) })
5695
+ /* @__PURE__ */ jsxs14("label", { children: [
5696
+ /* @__PURE__ */ jsx14("span", { children: "Payer claim control number" }),
5697
+ /* @__PURE__ */ jsx14("input", { required: true, value: review.payerClaimControlNumber, onChange: (event) => setReview((current) => ({ ...current, payerClaimControlNumber: event.target.value })) })
5539
5698
  ] }),
5540
- /* @__PURE__ */ jsxs13("label", { children: [
5541
- /* @__PURE__ */ jsx13("span", { children: "Disputed amount" }),
5542
- /* @__PURE__ */ jsx13("input", { type: "number", min: "0.01", step: "0.01", value: review.disputedAmount ?? "", onChange: (event) => setReview((current) => ({ ...current, disputedAmount: event.target.value ? Number(event.target.value) : void 0 })) })
5699
+ /* @__PURE__ */ jsxs14("label", { children: [
5700
+ /* @__PURE__ */ jsx14("span", { children: "Disputed amount" }),
5701
+ /* @__PURE__ */ jsx14("input", { type: "number", min: "0.01", step: "0.01", value: review.disputedAmount ?? "", onChange: (event) => setReview((current) => ({ ...current, disputedAmount: event.target.value ? Number(event.target.value) : void 0 })) })
5543
5702
  ] }),
5544
- /* @__PURE__ */ jsxs13("label", { children: [
5545
- /* @__PURE__ */ jsx13("span", { children: "Send via" }),
5546
- /* @__PURE__ */ jsxs13("select", { value: review.route, onChange: (event) => setReview((current) => ({ ...current, route: event.target.value })), children: [
5547
- /* @__PURE__ */ jsx13("option", { value: "ebill", children: "E-bill" }),
5548
- /* @__PURE__ */ jsx13("option", { value: "fax", children: "Fax" }),
5549
- /* @__PURE__ */ jsx13("option", { value: "mail", children: "Mail" }),
5550
- /* @__PURE__ */ jsx13("option", { value: "email", children: "Email" })
5703
+ /* @__PURE__ */ jsxs14("label", { children: [
5704
+ /* @__PURE__ */ jsx14("span", { children: "Send via" }),
5705
+ /* @__PURE__ */ jsxs14("select", { value: review.route, onChange: (event) => setReview((current) => ({ ...current, route: event.target.value })), children: [
5706
+ /* @__PURE__ */ jsx14("option", { value: "ebill", children: "E-bill" }),
5707
+ /* @__PURE__ */ jsx14("option", { value: "fax", children: "Fax" }),
5708
+ /* @__PURE__ */ jsx14("option", { value: "mail", children: "Mail" }),
5709
+ /* @__PURE__ */ jsx14("option", { value: "email", children: "Email" })
5551
5710
  ] })
5552
5711
  ] })
5553
5712
  ] }),
5554
- /* @__PURE__ */ jsxs13("fieldset", { className: "mb-lifecycle-packet", children: [
5555
- /* @__PURE__ */ jsx13("legend", { children: "Supporting packet" }),
5556
- data.bill.attachments.map((attachment) => /* @__PURE__ */ jsxs13("label", { children: [
5557
- /* @__PURE__ */ jsx13("input", { type: "checkbox", checked: review.attachmentIds.includes(attachment.id), onChange: (event) => setReview((current) => ({ ...current, attachmentIds: event.target.checked ? [...current.attachmentIds, attachment.id] : current.attachmentIds.filter((id) => id !== attachment.id) })) }),
5558
- /* @__PURE__ */ jsxs13("span", { children: [
5559
- /* @__PURE__ */ jsx13("strong", { children: attachment.filename }),
5560
- /* @__PURE__ */ jsx13("small", { children: attachment.description || attachment.documentType })
5713
+ /* @__PURE__ */ jsxs14("fieldset", { className: "mb-lifecycle-packet", children: [
5714
+ /* @__PURE__ */ jsx14("legend", { children: "Supporting packet" }),
5715
+ data.bill.attachments.map((attachment) => /* @__PURE__ */ jsxs14("label", { children: [
5716
+ /* @__PURE__ */ jsx14("input", { type: "checkbox", checked: review.attachmentIds.includes(attachment.id), onChange: (event) => setReview((current) => ({ ...current, attachmentIds: event.target.checked ? [...current.attachmentIds, attachment.id] : current.attachmentIds.filter((id) => id !== attachment.id) })) }),
5717
+ /* @__PURE__ */ jsxs14("span", { children: [
5718
+ /* @__PURE__ */ jsx14("strong", { children: attachment.filename }),
5719
+ /* @__PURE__ */ jsx14("small", { children: attachment.description || attachment.documentType })
5561
5720
  ] }),
5562
- /* @__PURE__ */ jsx13("button", { type: "button", onClick: () => void lifecycle.openAttachment(attachment).catch(() => void 0), children: "View" })
5721
+ /* @__PURE__ */ jsx14("button", { type: "button", onClick: () => void lifecycle.openAttachment(attachment).catch(() => void 0), children: "View" })
5563
5722
  ] }, attachment.id))
5564
5723
  ] }),
5565
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-panel-actions", children: [
5566
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5567
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !review.reason.trim() || !review.payerClaimControlNumber.trim(), onClick: () => void complete("Second Review submitted.", () => lifecycle.submitSecondReview(review)), children: lifecycle.isMutating ? "Submitting\u2026" : "Submit Second Review" })
5724
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-panel-actions", children: [
5725
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5726
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !review.reason.trim() || !review.payerClaimControlNumber.trim(), onClick: () => void complete("Second Review submitted.", () => lifecycle.submitSecondReview({ ...review, ...actor })), children: lifecycle.isMutating ? "Submitting\u2026" : "Submit Second Review" })
5568
5727
  ] })
5569
5728
  ] }) }) : null,
5570
- panel === "payment" ? /* @__PURE__ */ jsx13(LifecycleDialog, { title: "Post payment", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-panel", children: [
5571
- /* @__PURE__ */ jsxs13("div", { children: [
5572
- /* @__PURE__ */ jsx13("h3", { children: "Post payment" }),
5573
- /* @__PURE__ */ jsx13("p", { children: "Record a full or partial payment, plus any penalty and interest received." })
5729
+ panel === "payment" ? /* @__PURE__ */ jsx14(LifecycleDialog, { title: "Post payment", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-panel", children: [
5730
+ /* @__PURE__ */ jsxs14("div", { children: [
5731
+ /* @__PURE__ */ jsx14("h3", { children: "Post payment" }),
5732
+ /* @__PURE__ */ jsx14("p", { children: "Record a full or partial payment, plus any penalty and interest received." })
5574
5733
  ] }),
5575
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-fields two", children: [
5576
- /* @__PURE__ */ jsxs13("label", { children: [
5577
- /* @__PURE__ */ jsx13("span", { children: "Amount applied to bill" }),
5578
- /* @__PURE__ */ jsx13("input", { type: "number", min: "0.01", max: data.bill.balanceDue, step: "0.01", value: payment.amount || "", onChange: (event) => setPayment((current) => ({ ...current, amount: Number(event.target.value) })) })
5734
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-fields two", children: [
5735
+ /* @__PURE__ */ jsxs14("label", { children: [
5736
+ /* @__PURE__ */ jsx14("span", { children: "Amount applied to bill" }),
5737
+ /* @__PURE__ */ jsx14("input", { type: "number", min: "0.01", max: data.bill.balanceDue, step: "0.01", value: payment.amount || "", onChange: (event) => setPayment((current) => ({ ...current, amount: Number(event.target.value) })) })
5579
5738
  ] }),
5580
- /* @__PURE__ */ jsxs13("label", { children: [
5581
- /* @__PURE__ */ jsx13("span", { children: "Penalty" }),
5582
- /* @__PURE__ */ jsx13("input", { type: "number", min: "0", step: "0.01", value: payment.penaltyAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, penaltyAmount: Number(event.target.value) })) })
5739
+ /* @__PURE__ */ jsxs14("label", { children: [
5740
+ /* @__PURE__ */ jsx14("span", { children: "Penalty" }),
5741
+ /* @__PURE__ */ jsx14("input", { type: "number", min: "0", step: "0.01", value: payment.penaltyAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, penaltyAmount: Number(event.target.value) })) })
5583
5742
  ] }),
5584
- /* @__PURE__ */ jsxs13("label", { children: [
5585
- /* @__PURE__ */ jsx13("span", { children: "Interest" }),
5586
- /* @__PURE__ */ jsx13("input", { type: "number", min: "0", step: "0.01", value: payment.interestAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, interestAmount: Number(event.target.value) })) })
5743
+ /* @__PURE__ */ jsxs14("label", { children: [
5744
+ /* @__PURE__ */ jsx14("span", { children: "Interest" }),
5745
+ /* @__PURE__ */ jsx14("input", { type: "number", min: "0", step: "0.01", value: payment.interestAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, interestAmount: Number(event.target.value) })) })
5587
5746
  ] }),
5588
- /* @__PURE__ */ jsxs13("label", { children: [
5589
- /* @__PURE__ */ jsx13("span", { children: "Method" }),
5590
- /* @__PURE__ */ jsxs13("select", { value: payment.method, onChange: (event) => setPayment((current) => ({ ...current, method: event.target.value })), children: [
5591
- /* @__PURE__ */ jsx13("option", { value: "check", children: "Check" }),
5592
- /* @__PURE__ */ jsx13("option", { value: "eft", children: "EFT" })
5747
+ /* @__PURE__ */ jsxs14("label", { children: [
5748
+ /* @__PURE__ */ jsx14("span", { children: "Method" }),
5749
+ /* @__PURE__ */ jsxs14("select", { value: payment.method, onChange: (event) => setPayment((current) => ({ ...current, method: event.target.value })), children: [
5750
+ /* @__PURE__ */ jsx14("option", { value: "check", children: "Check" }),
5751
+ /* @__PURE__ */ jsx14("option", { value: "eft", children: "EFT" })
5593
5752
  ] })
5594
5753
  ] }),
5595
- /* @__PURE__ */ jsxs13("label", { children: [
5596
- /* @__PURE__ */ jsx13("span", { children: payment.method === "check" ? "Check number" : "EFT reference" }),
5597
- /* @__PURE__ */ jsx13("input", { value: payment.checkNumber, onChange: (event) => setPayment((current) => ({ ...current, checkNumber: event.target.value })) })
5754
+ /* @__PURE__ */ jsxs14("label", { children: [
5755
+ /* @__PURE__ */ jsx14("span", { children: payment.method === "check" ? "Check number" : "EFT reference" }),
5756
+ /* @__PURE__ */ jsx14("input", { value: payment.checkNumber, onChange: (event) => setPayment((current) => ({ ...current, checkNumber: event.target.value })) })
5598
5757
  ] }),
5599
- /* @__PURE__ */ jsxs13("label", { children: [
5600
- /* @__PURE__ */ jsx13("span", { children: "Deposit date" }),
5601
- /* @__PURE__ */ jsx13("input", { required: true, value: payment.depositDate, placeholder: "MM/DD/YYYY", onChange: (event) => setPayment((current) => ({ ...current, depositDate: event.target.value })) })
5758
+ /* @__PURE__ */ jsxs14("label", { children: [
5759
+ /* @__PURE__ */ jsx14("span", { children: "Deposit date" }),
5760
+ /* @__PURE__ */ jsx14("input", { required: true, value: payment.depositDate, placeholder: "MM/DD/YYYY", onChange: (event) => setPayment((current) => ({ ...current, depositDate: event.target.value })) })
5602
5761
  ] }),
5603
- /* @__PURE__ */ jsxs13("label", { className: "full", children: [
5604
- /* @__PURE__ */ jsx13("span", { children: "Note (optional)" }),
5605
- /* @__PURE__ */ jsx13("input", { value: payment.note, onChange: (event) => setPayment((current) => ({ ...current, note: event.target.value })) })
5762
+ /* @__PURE__ */ jsxs14("label", { className: "full", children: [
5763
+ /* @__PURE__ */ jsx14("span", { children: "Note (optional)" }),
5764
+ /* @__PURE__ */ jsx14("input", { value: payment.note, onChange: (event) => setPayment((current) => ({ ...current, note: event.target.value })) })
5606
5765
  ] })
5607
5766
  ] }),
5608
- /* @__PURE__ */ jsxs13("div", { className: "mb-payment-total", children: [
5609
- /* @__PURE__ */ jsx13("span", { children: "Total received" }),
5610
- /* @__PURE__ */ jsx13("strong", { children: new Intl.NumberFormat(void 0, { style: "currency", currency: "USD" }).format(payment.amount + (payment.penaltyAmount ?? 0) + (payment.interestAmount ?? 0)) })
5767
+ /* @__PURE__ */ jsxs14("div", { className: "mb-payment-total", children: [
5768
+ /* @__PURE__ */ jsx14("span", { children: "Total received" }),
5769
+ /* @__PURE__ */ jsx14("strong", { children: new Intl.NumberFormat(void 0, { style: "currency", currency: "USD" }).format(payment.amount + (payment.penaltyAmount ?? 0) + (payment.interestAmount ?? 0)) })
5611
5770
  ] }),
5612
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-panel-actions", children: [
5613
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5614
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || payment.amount <= 0 || payment.amount > data.bill.balanceDue || (payment.penaltyAmount ?? 0) < 0 || (payment.interestAmount ?? 0) < 0 || !payment.depositDate, onClick: () => void complete("Payment posted.", () => lifecycle.postPayment(payment)), children: lifecycle.isMutating ? "Posting\u2026" : "Post payment" })
5771
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-panel-actions", children: [
5772
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5773
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || payment.amount <= 0 || payment.amount > data.bill.balanceDue || (payment.penaltyAmount ?? 0) < 0 || (payment.interestAmount ?? 0) < 0 || !payment.depositDate, onClick: () => void complete("Payment posted.", () => lifecycle.postPayment({ ...payment, ...actor })), children: lifecycle.isMutating ? "Posting\u2026" : "Post payment" })
5615
5774
  ] })
5616
5775
  ] }) }) : null,
5617
- panel === "close" || panel === "reopen" ? /* @__PURE__ */ jsx13(LifecycleDialog, { title: panel === "close" ? "Close bill" : "Reopen bill", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-panel", children: [
5618
- /* @__PURE__ */ jsxs13("div", { children: [
5619
- /* @__PURE__ */ jsx13("h3", { children: panel === "close" ? "Close bill" : "Reopen bill" }),
5620
- /* @__PURE__ */ jsx13("p", { children: panel === "close" ? "The immutable submission and history remain available." : "Return this bill to active follow-up without changing the submitted snapshot." })
5776
+ panel === "close" || panel === "reopen" ? /* @__PURE__ */ jsx14(LifecycleDialog, { title: panel === "close" ? "Close bill" : "Reopen bill", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-panel", children: [
5777
+ /* @__PURE__ */ jsxs14("div", { children: [
5778
+ /* @__PURE__ */ jsx14("h3", { children: panel === "close" ? "Close bill" : "Reopen bill" }),
5779
+ /* @__PURE__ */ jsx14("p", { children: panel === "close" ? "The immutable submission and history remain available." : "Return this bill to active follow-up without changing the submitted snapshot." })
5621
5780
  ] }),
5622
- /* @__PURE__ */ jsxs13("label", { children: [
5623
- /* @__PURE__ */ jsx13("span", { children: "Reason" }),
5624
- /* @__PURE__ */ jsx13("textarea", { required: true, value: reason, onChange: (event) => setReason(event.target.value) })
5781
+ /* @__PURE__ */ jsxs14("label", { children: [
5782
+ /* @__PURE__ */ jsx14("span", { children: "Reason" }),
5783
+ /* @__PURE__ */ jsx14("textarea", { required: true, value: reason, onChange: (event) => setReason(event.target.value) })
5625
5784
  ] }),
5626
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-panel-actions", children: [
5627
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5628
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !reason.trim(), onClick: () => void complete(panel === "close" ? "Bill closed." : "Bill reopened.", () => panel === "close" ? lifecycle.closeBill({ reason }) : lifecycle.reopenBill({ reason })), children: lifecycle.isMutating ? "Saving\u2026" : panel === "close" ? "Close bill" : "Reopen bill" })
5785
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-panel-actions", children: [
5786
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5787
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !reason.trim(), onClick: () => void complete(panel === "close" ? "Bill closed." : "Bill reopened.", () => panel === "close" ? lifecycle.closeBill({ reason, ...actor }) : lifecycle.reopenBill({ reason, ...actor })), children: lifecycle.isMutating ? "Saving\u2026" : panel === "close" ? "Close bill" : "Reopen bill" })
5629
5788
  ] })
5630
5789
  ] }) }) : null,
5631
- panel === "send_duplicate" ? duplicateDelivery ? /* @__PURE__ */ jsx13(
5790
+ panel === "send_duplicate" ? duplicateDelivery ? /* @__PURE__ */ jsx14(
5632
5791
  SendRouteDialog,
5633
5792
  {
5634
5793
  title: "Send duplicate bill",
@@ -5636,33 +5795,33 @@ function ConnectedBillLifecycle({ appearance, sandboxControls = false, className
5636
5795
  submitting: lifecycle.isMutating,
5637
5796
  error: lifecycle.error?.message ?? null,
5638
5797
  onCancel: () => setPanel(""),
5639
- onConfirm: (submission) => void complete("Duplicate bill sent.", () => lifecycle.sendDuplicateBill(submission))
5798
+ onConfirm: (submission) => void complete("Duplicate bill sent.", () => lifecycle.sendDuplicateBill({ ...submission, ...actor }))
5640
5799
  }
5641
- ) : /* @__PURE__ */ jsx13(LifecycleDialog, { title: "Send duplicate bill", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs13("section", { className: "mb-lifecycle-panel", children: [
5642
- /* @__PURE__ */ jsxs13("div", { children: [
5643
- /* @__PURE__ */ jsx13("h3", { children: "Send duplicate bill" }),
5644
- /* @__PURE__ */ jsx13("p", { children: duplicateDeliveryError || "Loading delivery options\u2026" })
5800
+ ) : /* @__PURE__ */ jsx14(LifecycleDialog, { title: "Send duplicate bill", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-panel", children: [
5801
+ /* @__PURE__ */ jsxs14("div", { children: [
5802
+ /* @__PURE__ */ jsx14("h3", { children: "Send duplicate bill" }),
5803
+ /* @__PURE__ */ jsx14("p", { children: duplicateDeliveryError || "Loading delivery options\u2026" })
5645
5804
  ] }),
5646
- /* @__PURE__ */ jsxs13("div", { className: "mb-lifecycle-panel-actions", children: [
5647
- /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5648
- duplicateDeliveryError ? /* @__PURE__ */ jsx13("button", { type: "button", className: "mb-lifecycle-button primary", onClick: loadDuplicateDelivery, children: "Try again" }) : null
5805
+ /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-panel-actions", children: [
5806
+ /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
5807
+ duplicateDeliveryError ? /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button primary", onClick: loadDuplicateDelivery, children: "Try again" }) : null
5649
5808
  ] })
5650
5809
  ] }) }) : null,
5651
- panel === "report_status" ? /* @__PURE__ */ jsx13(
5810
+ panel === "report_status" ? /* @__PURE__ */ jsx14(
5652
5811
  ReportBillStatusDialog,
5653
5812
  {
5654
5813
  ...statusContacts.claimsAdmin ? { claimsAdmin: statusContacts.claimsAdmin } : {},
5655
5814
  ...statusContacts.billReview ? { billReview: statusContacts.billReview } : {},
5656
- ...receiptEntries.length ? { receipt: /* @__PURE__ */ jsx13(BillHistoryTable, { entries: receiptEntries, ...appearance ? { appearance } : {} }) } : {},
5815
+ ...receiptEntries.length ? { receipt: /* @__PURE__ */ jsx14(BillHistoryTable, { entries: receiptEntries, onOpenDocument: lifecycle.openAttachment, ...appearance ? { appearance } : {} }) } : {},
5657
5816
  submitting: lifecycle.isMutating,
5658
5817
  error: lifecycle.error?.message ?? null,
5659
5818
  onCancel: () => setPanel(""),
5660
- onSave: (input) => void complete("Bill status reported.", () => lifecycle.reportBillStatus(input)),
5819
+ onSave: (input) => void complete("Bill status reported.", () => lifecycle.reportBillStatus({ ...input, ...actor })),
5661
5820
  ...appearance ? { appearance } : {}
5662
5821
  }
5663
5822
  ) : null,
5664
- notice ? /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-message success", role: "status", children: notice }) : null,
5665
- lifecycle.error ? /* @__PURE__ */ jsx13("div", { className: "mb-lifecycle-message error", role: "alert", children: lifecycle.error.message }) : null
5823
+ notice ? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-message success", role: "status", children: notice }) : null,
5824
+ lifecycle.error ? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-message error", role: "alert", children: lifecycle.error.message }) : null
5666
5825
  ] });
5667
5826
  }
5668
5827
  var CONNECTED_LIFECYCLE_STYLES = `
@@ -5678,7 +5837,7 @@ var CONNECTED_LIFECYCLE_STYLES = `
5678
5837
  function widget(tagName, props) {
5679
5838
  const ref = useRef6(null);
5680
5839
  const { onMindBill, onMindBillError } = props;
5681
- useEffect9(() => {
5840
+ useEffect10(() => {
5682
5841
  const element = ref.current;
5683
5842
  if (!element) return;
5684
5843
  const handleEvent = (event) => onMindBill?.(event);
@@ -5750,6 +5909,7 @@ export {
5750
5909
  BillingDashboard,
5751
5910
  BillingReport,
5752
5911
  BillingSettings,
5912
+ ClaimsAdministratorDirectoryDialog,
5753
5913
  ConnectedBillLifecycle,
5754
5914
  ConnectedBillStatus,
5755
5915
  DEFAULT_BILL_SUBMISSION_MODIFIERS,