@mindbill/react 0.41.3 → 0.42.1

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
@@ -1272,6 +1272,10 @@ function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment
1272
1272
  ] }),
1273
1273
  /* @__PURE__ */ jsx2("button", { type: "button", "aria-label": "Close claims administrator details", onClick: () => setPayerOpen(false), children: "\xD7" })
1274
1274
  ] }),
1275
+ /* @__PURE__ */ jsxs2("label", { className: "mb-read-dialog-mobile-nav", children: [
1276
+ /* @__PURE__ */ jsx2("span", { children: "Information section" }),
1277
+ /* @__PURE__ */ jsx2("select", { "aria-label": "Claims administrator information section", value: payerTab, onChange: (event) => setPayerTab(event.target.value), children: PAYER_TABS.map(([id, label]) => /* @__PURE__ */ jsx2("option", { value: id, children: label }, id)) })
1278
+ ] }),
1275
1279
  /* @__PURE__ */ jsx2("div", { className: "mb-read-dialog-tabs", role: "tablist", "aria-label": "Claims administrator information", children: PAYER_TABS.map(([id, label]) => /* @__PURE__ */ jsx2("button", { type: "button", role: "tab", "aria-selected": payerTab === id, onClick: () => setPayerTab(id), children: label }, id)) }),
1276
1280
  /* @__PURE__ */ jsxs2("div", { className: "mb-read-dialog-panel", role: "tabpanel", children: [
1277
1281
  payerTab === "main" ? /* @__PURE__ */ jsxs2("dl", { className: "mb-read-directory-main", children: [
@@ -1293,16 +1297,15 @@ function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment
1293
1297
  }
1294
1298
  var READ_ONLY_STYLES = `
1295
1299
  .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)}
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}
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}}
1300
+ .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(100dvh - 40px));max-height:calc(100dvh - 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{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:inherit;font:inherit;font-size:1.7rem;line-height:1;cursor:pointer}.mb-read-dialog-mobile-nav{display:none}.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}
1301
+ @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:calc(100dvh - 12px);border-radius:18px 18px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom))}.mb-read-dialog header{margin-bottom:14px}.mb-read-dialog-mobile-nav{display:grid;gap:6px;color:var(--mb-muted);font-size:.75rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.mb-read-dialog-mobile-nav select{width:100%;min-height:48px;border:1px solid var(--mb-border);border-radius:10px;background:var(--mb-surface);color:var(--mb-text);font:inherit;font-size:1rem;font-weight:700;padding:10px 12px;text-transform:none}.mb-read-dialog-tabs{display:none}.mb-read-dialog-panel{padding-top:16px}.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}}
1298
1302
  `;
1299
1303
 
1300
1304
  // src/bill-submission-form.tsx
1301
1305
  import { createContext, useCallback, useContext, useEffect as useEffect5, useMemo as useMemo3, useRef as useRef2, useState as useState5 } from "react";
1302
1306
  import {
1303
1307
  createBillReferenceClient,
1304
- createBillSubmissionClient,
1305
- defaultBillReviewPayerOption
1308
+ createBillSubmissionClient
1306
1309
  } from "@mindbill/browser";
1307
1310
 
1308
1311
  // src/send-route-dialog.tsx
@@ -1702,7 +1705,7 @@ var css2 = `
1702
1705
  .mbcad-dialog{--mbcad-accent:var(--mb-accent,#176c70);--mbcad-border:var(--mb-border,#d7e0df);--mbcad-surface:var(--mb-surface,#fff);--mbcad-text:var(--mb-text,#17282d);--mbcad-muted:var(--mb-muted,#607176);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(--mbcad-border);border-radius:14px;background:var(--mbcad-surface);color:var(--mbcad-text);box-shadow:0 28px 80px rgba(14,31,43,.28);font-family:var(--mb-font,Inter,ui-sans-serif,system-ui,sans-serif)}
1703
1706
  .mbcad-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--mbcad-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(--mbcad-muted) 9%,var(--mbcad-surface));color:var(--mbcad-accent);font:inherit;font-size:28px;line-height:1;cursor:pointer}
1704
1707
  .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(--mbcad-muted) 8%,var(--mbcad-surface));overflow:hidden}.mbcad-tab{min-height:64px;padding:10px;border:0;border-right:1px solid var(--mbcad-border);border-top:4px solid transparent;background:transparent;color:var(--mbcad-muted);font:inherit;font-weight:750;cursor:pointer}.mbcad-tab:last-child{border-right:0}.mbcad-tab[aria-selected=true]{border-top-color:var(--mbcad-accent);background:var(--mbcad-surface);color:var(--mbcad-text)}
1705
- .mbcad-body{overflow:auto;padding:24px 22px 28px}.mbcad-grid{display:grid;gap:0;border:1px solid var(--mbcad-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(--mbcad-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(--mbcad-accent);overflow-wrap:anywhere}.mbcad-table{width:100%;border-collapse:collapse;border:1px solid var(--mbcad-border);border-radius:10px;overflow:hidden}.mbcad-table th,.mbcad-table td{padding:13px 14px;border-bottom:1px solid var(--mbcad-border);text-align:left;vertical-align:top}.mbcad-table th{background:color-mix(in srgb,var(--mbcad-muted) 7%,var(--mbcad-surface));font-size:13px}.mbcad-empty{padding:36px;text-align:center;color:var(--mbcad-muted)}.mbcad-notice{padding:14px 16px;border:1px solid color-mix(in srgb,var(--mbcad-accent) 70%,var(--mbcad-border));border-radius:9px;background:color-mix(in srgb,var(--mbcad-accent) 5%,var(--mbcad-surface));font-weight:650}
1708
+ .mbcad-body{overflow:auto;padding:24px 22px 28px}.mbcad-grid{display:grid;gap:0;border:1px solid var(--mbcad-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(--mbcad-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(--mbcad-accent);overflow-wrap:anywhere}.mbcad-payers{display:grid;gap:9px;margin:0;padding:0;list-style:none}.mbcad-payer{display:grid;gap:7px;padding:12px;border:1px solid var(--mbcad-border);border-radius:9px;background:color-mix(in srgb,var(--mbcad-muted) 3%,var(--mbcad-surface))}.mbcad-payer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mbcad-payer-route{color:var(--mbcad-accent);font-size:13px;font-weight:750;white-space:nowrap}.mbcad-payer-meta{display:flex;flex-wrap:wrap;gap:6px}.mbcad-payer-meta span{padding:3px 7px;border:1px solid var(--mbcad-border);border-radius:999px;color:var(--mbcad-muted);font-size:12px}.mbcad-payer-note{margin:0;color:var(--mbcad-muted);font-size:13px}.mbcad-table{width:100%;border-collapse:collapse;border:1px solid var(--mbcad-border);border-radius:10px;overflow:hidden}.mbcad-table th,.mbcad-table td{padding:13px 14px;border-bottom:1px solid var(--mbcad-border);text-align:left;vertical-align:top}.mbcad-table th{background:color-mix(in srgb,var(--mbcad-muted) 7%,var(--mbcad-surface));font-size:13px}.mbcad-empty{padding:36px;text-align:center;color:var(--mbcad-muted)}.mbcad-notice{padding:14px 16px;border:1px solid color-mix(in srgb,var(--mbcad-accent) 70%,var(--mbcad-border));border-radius:9px;background:color-mix(in srgb,var(--mbcad-accent) 5%,var(--mbcad-surface));font-weight:650}
1706
1709
  @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
1710
  `;
1708
1711
  function outbound(value, kind) {
@@ -1712,6 +1715,33 @@ function outbound(value, kind) {
1712
1715
  function list(values, kind) {
1713
1716
  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
1717
  }
1718
+ function payerDetails(payer, index) {
1719
+ const identifiers = Object.entries(payer.clearinghousePayerIds ?? {}).map(([name, id]) => `${name.replace(/_/g, " ")}: ${id}`);
1720
+ const metadata = [
1721
+ payer.optionType ? `Type: ${payer.optionType}` : null,
1722
+ payer.deliveryType ? `Delivery: ${payer.deliveryType}` : null,
1723
+ payer.clearinghouse && payer.payerId ? `${payer.clearinghouse}: ${payer.payerId}` : null,
1724
+ payer.sourceClearinghouse && payer.sourcePayerId ? `Catalog route: ${payer.sourceClearinghouse} ${payer.sourcePayerId}` : null,
1725
+ ...identifiers,
1726
+ payer.preferredClearinghouse ? `Preferred: ${payer.preferredClearinghouse}` : null
1727
+ ].filter((value) => Boolean(value));
1728
+ return /* @__PURE__ */ jsxs4("li", { className: "mbcad-payer", children: [
1729
+ /* @__PURE__ */ jsxs4("div", { className: "mbcad-payer-head", children: [
1730
+ /* @__PURE__ */ jsx4("strong", { children: payer.name }),
1731
+ payer.route ? /* @__PURE__ */ jsx4("span", { className: "mbcad-payer-route", children: payer.route }) : null
1732
+ ] }),
1733
+ payer.aliases?.length ? /* @__PURE__ */ jsxs4("p", { className: "mbcad-payer-note", children: [
1734
+ "Also known as ",
1735
+ payer.aliases.join(", ")
1736
+ ] }) : null,
1737
+ payer.hint ? /* @__PURE__ */ jsx4("p", { className: "mbcad-payer-note", children: payer.hint }) : null,
1738
+ payer.affiliatedEntities?.length ? /* @__PURE__ */ jsxs4("p", { className: "mbcad-payer-note", children: [
1739
+ "Affiliated with ",
1740
+ payer.affiliatedEntities.join(", ")
1741
+ ] }) : null,
1742
+ metadata.length ? /* @__PURE__ */ jsx4("div", { className: "mbcad-payer-meta", children: metadata.map((item) => /* @__PURE__ */ jsx4("span", { children: item }, item)) }) : null
1743
+ ] }, `${payer.name}-${index}`);
1744
+ }
1715
1745
  function Main({ directory }) {
1716
1746
  return /* @__PURE__ */ jsx4("div", { className: "mbcad-grid", children: [
1717
1747
  ["Name", directory.name ?? "\u2014"],
@@ -1724,11 +1754,7 @@ function Main({ directory }) {
1724
1754
  ["Telephone numbers", list(directory.telephoneNumbers, "phone")],
1725
1755
  ["Email addresses", list(directory.emailAddresses, "email")],
1726
1756
  ["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.route ? ` \xB7 ${payer.route}` : "",
1730
- payer.hint ? /* @__PURE__ */ jsx4("small", { children: payer.hint }) : null
1731
- ] }, `${payer.name}-${index}`)) }) : "\u2014"],
1757
+ ["Payers", directory.payers?.length ? /* @__PURE__ */ jsx4("ul", { className: "mbcad-payers", children: directory.payers.map(payerDetails) }) : "\u2014"],
1732
1758
  ["Bill processing workflow", directory.billProcessingWorkflow ?? "\u2014"],
1733
1759
  ["Bill processing workflow notes", directory.billProcessingWorkflowNotes ?? "\u2014"],
1734
1760
  ["Claim number hint", directory.claimNumberHint ?? "\u2014"]
@@ -2117,6 +2143,7 @@ var MAX_PDF_BYTES = 25 * 1024 * 1024;
2117
2143
  var MAX_UPLOAD_BYTES = 100 * 1024 * 1024;
2118
2144
  var MAX_DOCUMENTS = 25;
2119
2145
  var DIAGNOSIS_PAGE_SIZE = 100;
2146
+ var PAYER_PAGE_SIZE = 50;
2120
2147
  var EMPTY_ATTACHMENTS = [];
2121
2148
  function bytesToBase64(bytes) {
2122
2149
  let binary = "";
@@ -2316,13 +2343,14 @@ var css3 = `
2316
2343
  .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)}
2317
2344
  .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)}
2318
2345
  .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)}
2319
- .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}
2346
+ .mbsf-combo{position:relative}.mbsf-menu{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:min(420px,52vh);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:11px 12px;border:0;border-radius:8px;background:transparent;color:var(--mb-text);font:inherit;text-align:left;cursor:pointer}.mbsf-option+.mbsf-option{border-top:1px solid color-mix(in srgb,var(--mb-border) 65%,transparent)}.mbsf-option:hover,.mbsf-option:focus{background:color-mix(in srgb,var(--mb-accent) 9%,var(--mb-surface));outline:0}.mbsf-option-main{display:grid;gap:5px;min-width:0}.mbsf-option small{color:var(--mb-muted);overflow-wrap:anywhere;line-height:1.35}.mbsf-option-route{align-self:start;margin-top:2px;color:var(--mb-accent);font-size:13px;font-weight:750;white-space:nowrap}.mbsf-option-badges{display:flex;flex-wrap:wrap;gap:5px}.mbsf-option-badge{padding:2px 7px;border:1px solid var(--mb-border);border-radius:999px;color:var(--mb-muted);font-size:11px;line-height:1.35}.mbsf-option-affiliates{display:block}.mbsf-option-affiliates strong{color:var(--mb-text);font-size:12px}.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}
2320
2347
  .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}
2348
+ .mbsf-source-evidence{display:grid;gap:4px;color:var(--mb-muted);font-size:13px}.mbsf-source-evidence a{color:var(--mb-accent);font-weight:700}.mbsf-source-evidence q{color:var(--mb-text)}.mbsf-suggestions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:var(--mb-muted);font-size:13px}.mbsf-suggestion{padding:5px 10px;border:1px solid color-mix(in srgb,var(--mb-accent) 55%,var(--mb-border));border-radius:999px;background:color-mix(in srgb,var(--mb-accent) 7%,var(--mb-surface));color:var(--mb-accent);font:inherit;font-weight:700;cursor:pointer}.mbsf-suggestion:hover,.mbsf-suggestion:focus{outline:2px solid color-mix(in srgb,var(--mb-accent) 25%,transparent)}.mbsf-claim-patterns{display:grid;gap:4px;margin-top:2px;font-size:13px}.mbsf-claim-patterns[data-state=match]{color:#087f5b}.mbsf-claim-patterns[data-state=warning]{color:#9a5200}.mbsf-claim-pattern-list{color:var(--mb-muted)}
2321
2349
  .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)}
2322
2350
  .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)}
2323
2351
  .mbsf-lines{margin-top:18px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);overflow:visible}.mbsf-lines[data-invalid=true]{border-color:var(--mb-danger)}.mbsf-line-head,.mbsf-line{display:grid;grid-template-columns:minmax(190px,1.05fr) minmax(190px,1.3fr) minmax(112px,.7fr) 100px 120px 42px;gap:12px;align-items:start;padding:12px}.mbsf-line-head{color:var(--mb-muted);font-size:13px;font-weight:700;border-bottom:1px solid var(--mb-border)}.mbsf-line{border-bottom:1px solid var(--mb-border)}.mbsf-line:last-child{border-bottom:0}.mbsf-line [data-invalid=true] .mbsf-input{border-color:var(--mb-danger);background:color-mix(in srgb,var(--mb-danger) 4%,var(--mb-input))}.mbsf-money{padding-top:12px;text-align:right;font-variant-numeric:tabular-nums}.mbsf-dx{display:flex;flex-wrap:wrap;gap:5px;padding-top:6px}.mbsf-dx-chip{width:30px;height:30px;border:1px solid var(--mb-border);border-radius:8px;background:var(--mb-surface);color:var(--mb-muted);font:inherit;font-size:13px;font-weight:750;cursor:pointer}.mbsf-dx-chip[data-active=true]{border-color:var(--mb-accent);background:color-mix(in srgb,var(--mb-accent) 10%,var(--mb-surface));color:var(--mb-accent)}.mbsf-total{display:flex;justify-content:flex-end;gap:45px;padding:16px 56px 16px 16px;font-size:17px;font-weight:760}
2324
2352
  .mbsf-icon-btn{width:40px;height:42px;border:0;background:transparent;color:var(--mb-text);font-size:22px;cursor:pointer}.mbsf-secondary{min-height:40px;padding:8px 14px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-surface);color:var(--mb-text);font:inherit;font-weight:680;cursor:pointer}.mbsf-attach-list{display:grid;gap:10px;margin-bottom:18px}.mbsf-attach-row{padding:14px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius)}.mbsf-attach-row[data-auto=true]{border-color:color-mix(in srgb,#159447 45%,var(--mb-border));background:color-mix(in srgb,#159447 5%,var(--mb-surface))}.mbsf-attach-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.mbsf-attach-type{width:min(360px,32vw);flex:0 1 360px}.mbsf-attach-type .mbsf-label{display:block;margin-bottom:6px;font-size:12px}.mbsf-attach-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.mbsf-file{min-width:0}.mbsf-file strong{overflow-wrap:anywhere}.mbsf-badge{display:inline-block;margin-left:8px;padding:2px 7px;border:1px solid var(--mb-border);border-radius:7px;color:var(--mb-muted);font-size:12px;font-weight:600}.mbsf-drop{display:grid;width:100%;place-items:center;min-height:210px;padding:30px;border:2px dashed color-mix(in srgb,var(--mb-muted) 55%,transparent);border-radius:var(--mb-control-radius);background:color-mix(in srgb,var(--mb-accent) 3%,var(--mb-surface));color:var(--mb-text);font:inherit;text-align:center;cursor:pointer}.mbsf-drop[data-active=true]{border-color:var(--mb-accent);background:color-mix(in srgb,var(--mb-accent) 10%,var(--mb-surface))}.mbsf-alert{padding:12px 14px;border-radius:var(--mb-control-radius);background:color-mix(in srgb,var(--mb-danger) 10%,transparent);color:var(--mb-danger)}.mbsf-actions{justify-content:flex-end}.mbsf-submit{min-width:180px;min-height:48px;padding:11px 24px;border:0;border-radius:var(--mb-control-radius);background:var(--mb-accent);color:var(--mb-accent-contrast);font:inherit;font-weight:780;cursor:pointer}
2325
- @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%}}
2353
+ @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.mbsf-lifecycle-correction .mbsf-actions{position:static;bottom:auto}.mbsf-submit{width:100%}}
2326
2354
  `;
2327
2355
  function RequiredMark() {
2328
2356
  return /* @__PURE__ */ jsx5("span", { className: "mbsf-star", children: " *" });
@@ -2356,16 +2384,16 @@ function TextDateInput({ value, onChange, disabled, required, ariaLabel }) {
2356
2384
  invalid ? /* @__PURE__ */ jsx5("small", { className: "mbsf-error", children: "Use MM/DD/YYYY" }) : null
2357
2385
  ] });
2358
2386
  }
2359
- function ComboBox({ value, placeholder, options, disabled, loading, loadingMore, invalid, preserveValueOnOpen = false, onOpen, onQuery, onEndReached, onSelect, createOption, ariaLabel }) {
2387
+ function ComboBox({ value, placeholder, options, disabled, loading, loadingMore, invalid, preserveValueOnOpen = false, filterOptions = true, onOpen, onQuery, onEndReached, onSelect, createOption, ariaLabel }) {
2360
2388
  const [open, setOpen] = useState5(false);
2361
2389
  const [query, setQuery] = useState5("");
2362
2390
  const visible = useMemo3(() => {
2363
2391
  const q = query.trim().toLowerCase();
2364
- const matches = q ? options.filter((option) => `${option.id} ${option.label} ${option.detail ?? ""} ${option.trailing ?? ""}`.toLowerCase().includes(q)) : options;
2392
+ const matches = q && filterOptions ? options.filter((option) => `${option.id} ${option.label} ${option.detail ?? ""} ${(option.badges ?? []).join(" ")} ${(option.affiliatedEntities ?? []).join(" ")} ${option.trailing ?? ""}`.toLowerCase().includes(q)) : options;
2365
2393
  const custom = createOption?.(query) ?? null;
2366
2394
  return custom && !matches.some((option) => option.id.toUpperCase() === custom.id.toUpperCase()) ? [...matches, custom] : matches;
2367
- }, [createOption, options, query]);
2368
- const showMenu = open && (loading || visible.length > 0 || query.trim().length >= 2);
2395
+ }, [createOption, filterOptions, options, query]);
2396
+ const showMenu = open;
2369
2397
  return /* @__PURE__ */ jsxs5("div", { className: "mbsf-combo", children: [
2370
2398
  /* @__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: () => {
2371
2399
  const next = preserveValueOnOpen ? value : "";
@@ -2389,7 +2417,13 @@ function ComboBox({ value, placeholder, options, disabled, loading, loadingMore,
2389
2417
  }, children: [
2390
2418
  /* @__PURE__ */ jsxs5("span", { className: "mbsf-option-main", children: [
2391
2419
  /* @__PURE__ */ jsx5("strong", { children: option.label }),
2392
- option.detail ? /* @__PURE__ */ jsx5("small", { children: option.detail }) : null
2420
+ option.detail ? /* @__PURE__ */ jsx5("small", { children: option.detail }) : null,
2421
+ option.badges?.length ? /* @__PURE__ */ jsx5("span", { className: "mbsf-option-badges", children: option.badges.map((badge) => /* @__PURE__ */ jsx5("span", { className: "mbsf-option-badge", children: badge }, badge)) }) : null,
2422
+ option.affiliatedEntities?.length ? /* @__PURE__ */ jsxs5("small", { className: "mbsf-option-affiliates", children: [
2423
+ /* @__PURE__ */ jsx5("strong", { children: "Affiliated entities:" }),
2424
+ " ",
2425
+ option.affiliatedEntities.join(", ")
2426
+ ] }) : null
2393
2427
  ] }),
2394
2428
  option.trailing ? /* @__PURE__ */ jsx5("span", { className: "mbsf-option-route", children: option.trailing }) : null
2395
2429
  ] }, option.id)) : /* @__PURE__ */ jsx5("div", { className: "mbsf-option", children: "No matches" }),
@@ -2439,16 +2473,24 @@ function exactClaimsAdministratorMatch(results, suppliedName) {
2439
2473
  function claimsAdministratorRecommendations(results, limit = 5) {
2440
2474
  return [...results].sort((left, right) => Number(Boolean(right.recommended)) - Number(Boolean(left.recommended))).slice(0, Math.max(0, limit));
2441
2475
  }
2442
- function chooseClaimsAdministrator(payer) {
2476
+ function claimNumberPatternMatches(pattern, claimNumber) {
2477
+ const example = pattern.example?.trim();
2478
+ if (example && /9{2,}/.test(example)) {
2479
+ const expression = [...example].map((character) => character === "9" ? "\\d" : character.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("");
2480
+ return new RegExp(`^${expression}$`, "i").test(claimNumber.trim());
2481
+ }
2482
+ return pattern.matches ?? null;
2483
+ }
2484
+ function chooseClaimsAdministrator(payer, selectedPayerId) {
2443
2485
  if (!payer.payerSelectionRequired) return { id: payer.id, name: payer.name };
2444
2486
  const payers = (payer.payers ?? []).map((option) => ({ ...option }));
2445
- const preselected = defaultBillReviewPayerOption(payer);
2487
+ const resolvedPayerId = selectedPayerId && payers.some((option) => option.id === selectedPayerId) ? selectedPayerId : void 0;
2446
2488
  return {
2447
2489
  id: payer.id,
2448
2490
  name: payer.name,
2449
2491
  payerSelectionRequired: true,
2450
2492
  ...payers.length ? { payers } : {},
2451
- ...preselected ? { payerId: preselected.id } : {}
2493
+ ...resolvedPayerId ? { payerId: resolvedPayerId } : {}
2452
2494
  };
2453
2495
  }
2454
2496
  function submittedClaimsAdministrator(administrator) {
@@ -2494,8 +2536,10 @@ function BillSubmissionForm({
2494
2536
  sessionEndpoint,
2495
2537
  apiBaseUrl,
2496
2538
  fetch: fetchOverride,
2539
+ onListClaimsAdministrators,
2497
2540
  onSearchClaimsAdministrators,
2498
2541
  onGetClaimsAdministratorDirectory,
2542
+ claimsAdministratorSources,
2499
2543
  claimsAdministratorHint,
2500
2544
  diagnosisOptions = [],
2501
2545
  onSearchDiagnoses,
@@ -2531,6 +2575,11 @@ function BillSubmissionForm({
2531
2575
  const [routeError, setRouteError] = useState5(null);
2532
2576
  const [payerResults, setPayerResults] = useState5([]);
2533
2577
  const [payerLoading, setPayerLoading] = useState5(false);
2578
+ const [payerSuggestions, setPayerSuggestions] = useState5([]);
2579
+ const [selectedPayerMetadata, setSelectedPayerMetadata] = useState5(null);
2580
+ const [payerLoadingMore, setPayerLoadingMore] = useState5(false);
2581
+ const [payerQuery, setPayerQuery] = useState5(null);
2582
+ const [payerHasMore, setPayerHasMore] = useState5(true);
2534
2583
  const [directoryOpen, setDirectoryOpen] = useState5(false);
2535
2584
  const [directory, setDirectory] = useState5(null);
2536
2585
  const [directoryLoading, setDirectoryLoading] = useState5(false);
@@ -2547,7 +2596,10 @@ function BillSubmissionForm({
2547
2596
  const diagnosisRequest = useRef2(0);
2548
2597
  const diagnosisAppendPending = useRef2(false);
2549
2598
  const payerRequest = useRef2(0);
2599
+ const payerAppendPending = useRef2(false);
2550
2600
  const procedures = useMemo3(() => mergeOptions(DEFAULT_BILL_SUBMISSION_PROCEDURES, procedureOptions), [procedureOptions]);
2601
+ const orderedClaimsAdministratorSources = useMemo3(() => [...claimsAdministratorSources ?? []].filter((source) => source.name.trim()).sort((left, right) => Number(right.source.toLowerCase() === "eams") - Number(left.source.toLowerCase() === "eams")), [claimsAdministratorSources]);
2602
+ const sourceClaimsAdministratorName = orderedClaimsAdministratorSources[0]?.name.trim() ?? "";
2551
2603
  const modifiers = useMemo3(() => mergeOptions(DEFAULT_BILL_SUBMISSION_MODIFIERS, modifierOptions), [modifierOptions]);
2552
2604
  const taxonomies = useMemo3(() => mergeOptions(DEFAULT_BILL_SUBMISSION_TAXONOMIES, taxonomyOptions), [taxonomyOptions]);
2553
2605
  const [evaluationType, setEvaluationType] = useState5(() => initialEvaluationType(initialBill));
@@ -2574,7 +2626,14 @@ function BillSubmissionForm({
2574
2626
  setDiagnosisHasMore(true);
2575
2627
  diagnosisRequest.current += 1;
2576
2628
  diagnosisAppendPending.current = false;
2577
- }, [initialBill, attachments]);
2629
+ setPayerResults([]);
2630
+ setPayerSuggestions([]);
2631
+ setSelectedPayerMetadata(null);
2632
+ setPayerQuery(null);
2633
+ setPayerHasMore(true);
2634
+ payerRequest.current += 1;
2635
+ payerAppendPending.current = false;
2636
+ }, [initialBill, attachments, sourceClaimsAdministratorName]);
2578
2637
  useEffect5(() => {
2579
2638
  if (!validationActive) return;
2580
2639
  const next = validateBillSubmission(bill).fieldErrors;
@@ -2648,33 +2707,50 @@ function BillSubmissionForm({
2648
2707
  return next;
2649
2708
  })) }));
2650
2709
  const text = (value, onChange, options = {}) => /* @__PURE__ */ jsx5("input", { className: "mbsf-input", disabled: locked, value: value ?? "", onChange: (event) => onChange(event.target.value), ...options });
2651
- const runPayerSearch = useCallback(async (query) => {
2710
+ const loadPayers = useCallback((query, append = false) => {
2652
2711
  const trimmed = query.trim();
2653
- if (trimmed.length < 2) {
2654
- setPayerResults([]);
2655
- return;
2656
- }
2657
- const search = onSearchClaimsAdministrators ?? referenceClient?.searchClaimsAdministrators;
2658
- if (!search) return;
2712
+ const list2 = onListClaimsAdministrators ?? referenceClient?.listClaimsAdministrators;
2713
+ const legacySearch = onSearchClaimsAdministrators ?? referenceClient?.searchClaimsAdministrators;
2714
+ if (!list2 && !legacySearch) return;
2715
+ const continuing = append && payerQuery === trimmed;
2716
+ if (continuing && (!payerHasMore || payerAppendPending.current)) return;
2717
+ const offset = continuing ? payerResults.length : 0;
2659
2718
  const request = ++payerRequest.current;
2660
- setPayerLoading(true);
2661
- try {
2662
- const results = await search(trimmed, bill.claim.claimNumber);
2719
+ if (continuing) {
2720
+ payerAppendPending.current = true;
2721
+ setPayerLoadingMore(true);
2722
+ } else {
2723
+ setPayerLoading(true);
2724
+ setPayerLoadingMore(false);
2725
+ setPayerQuery(trimmed);
2726
+ setPayerHasMore(true);
2727
+ }
2728
+ const page = list2 ? list2({ query: trimmed, claimNumber: bill.claim.claimNumber, ...sourceClaimsAdministratorName ? { sourceClaimsAdministratorName } : {}, ...bill.claim.employer ? { employerName: bill.claim.employer } : {}, limit: PAYER_PAGE_SIZE, offset }) : legacySearch(trimmed, bill.claim.claimNumber).then((results) => ({ results, total: results.length }));
2729
+ void page.then((result) => {
2663
2730
  if (request !== payerRequest.current) return;
2664
- setPayerResults(results);
2665
- } catch (caught) {
2731
+ setPayerResults((current) => {
2732
+ const combined = continuing ? [...current, ...result.results] : result.results;
2733
+ return [...new Map(combined.map((payer) => [payer.id, payer])).values()];
2734
+ });
2735
+ if (!continuing) setPayerSuggestions(result.suggestions ?? []);
2736
+ setPayerHasMore(result.nextOffset != null ? result.nextOffset > offset : offset + result.results.length < result.total);
2737
+ }).catch((caught) => {
2666
2738
  if (request === payerRequest.current) setFormError(caught instanceof Error ? caught.message : "Claims administrator search is unavailable.");
2667
- } finally {
2668
- if (request === payerRequest.current) setPayerLoading(false);
2669
- }
2670
- }, [bill.claim.claimNumber, onSearchClaimsAdministrators, referenceClient]);
2739
+ }).finally(() => {
2740
+ if (request !== payerRequest.current) return;
2741
+ payerAppendPending.current = false;
2742
+ setPayerLoading(false);
2743
+ setPayerLoadingMore(false);
2744
+ });
2745
+ }, [bill.claim.claimNumber, bill.claim.employer, onListClaimsAdministrators, onSearchClaimsAdministrators, payerHasMore, payerQuery, payerResults.length, referenceClient, sourceClaimsAdministratorName]);
2671
2746
  const searchPayers = (query) => {
2747
+ setSelectedPayerMetadata(null);
2672
2748
  setBill((current) => {
2673
2749
  const selected = current.claim.claimsAdministrator;
2674
2750
  if (selected?.id && selected.name === query) return current;
2675
2751
  return { ...current, claim: { ...current.claim, claimsAdministrator: { name: query } } };
2676
2752
  });
2677
- void runPayerSearch(query);
2753
+ loadPayers(query);
2678
2754
  };
2679
2755
  const loadDiagnoses = (query, append = false) => {
2680
2756
  const trimmed = query.trim();
@@ -2816,8 +2892,19 @@ function BillSubmissionForm({
2816
2892
  }
2817
2893
  }
2818
2894
  const claimsAdministratorError = errors["claim.claimsAdministrator"];
2819
- const choosePayer = (payer) => setBill((current) => ({ ...current, claim: { ...current.claim, claimsAdministrator: chooseClaimsAdministrator(payer) } }));
2895
+ const choosePayer = (payer, selectedPayerId) => {
2896
+ setSelectedPayerMetadata(payer);
2897
+ setBill((current) => ({ ...current, claim: { ...current.claim, claimsAdministrator: chooseClaimsAdministrator(payer, selectedPayerId) } }));
2898
+ };
2820
2899
  const administrator = bill.claim.claimsAdministrator;
2900
+ const displayedPayerMetadata = selectedPayerMetadata?.id === administrator?.id ? selectedPayerMetadata : null;
2901
+ const displayedClaimPatterns = (displayedPayerMetadata?.claimNumberPatterns ?? []).map((pattern) => ({
2902
+ ...pattern,
2903
+ matches: claimNumberPatternMatches(pattern, bill.claim.claimNumber)
2904
+ }));
2905
+ const evaluatedClaimPatterns = displayedClaimPatterns.filter((pattern) => pattern.matches != null);
2906
+ const claimNumberMatches = evaluatedClaimPatterns.some((pattern) => pattern.matches);
2907
+ const claimNumberPatternState = evaluatedClaimPatterns.length ? claimNumberMatches ? "match" : "warning" : null;
2821
2908
  const subpayorOptions = administrator?.payerSelectionRequired ? administrator.payers ?? [] : [];
2822
2909
  const subpayorError = errors["claim.claimsAdministrator.payerId"];
2823
2910
  const selectedSubpayor = subpayorOptions.find((option) => option.id === administrator?.payerId);
@@ -2875,14 +2962,40 @@ function BillSubmissionForm({
2875
2962
  ] }),
2876
2963
  /* @__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 } })) }) }),
2877
2964
  /* @__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 } }))) }),
2878
- /* @__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 } }))) }),
2965
+ /* @__PURE__ */ jsxs5(Field2, { path: "claim.claimNumber", label: "Claim number", required: true, error: errors["claim.claimNumber"], children: [
2966
+ text(bill.claim.claimNumber, (claimNumber) => setBill((c) => ({ ...c, claim: { ...c.claim, claimNumber } }))),
2967
+ displayedClaimPatterns.length ? /* @__PURE__ */ jsxs5("div", { className: "mbsf-claim-patterns", "data-state": claimNumberPatternState ?? void 0, role: "status", children: [
2968
+ claimNumberPatternState === "match" ? /* @__PURE__ */ jsx5("strong", { children: "\u2713 Matches a known claim number pattern" }) : claimNumberPatternState === "warning" ? /* @__PURE__ */ jsx5("strong", { children: "\u26A0 Does not match the known claim number patterns" }) : /* @__PURE__ */ jsx5("strong", { children: "Known claim number patterns" }),
2969
+ /* @__PURE__ */ jsx5("span", { className: "mbsf-claim-pattern-list", children: displayedClaimPatterns.map((pattern) => `${pattern.pattern}${pattern.example ? ` (example: ${pattern.example})` : ""}`).join(" \xB7 ") })
2970
+ ] }) : null
2971
+ ] }),
2879
2972
  /* @__PURE__ */ jsx5(Field2, { label: "WCAB / ADJ number (optional)", children: text(bill.claim.adjNumber, (adjNumber) => setBill((c) => ({ ...c, claim: { ...c.claim, adjNumber } }))) }),
2880
2973
  /* @__PURE__ */ jsxs5(Field2, { path: "claim.claimsAdministrator", label: "Claims administrator", required: true, span: true, error: claimsAdministratorError, invalid: !administrator?.id, children: [
2881
- /* @__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 }) }),
2974
+ /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: "Claims administrator", invalid: Boolean(claimsAdministratorError) || !administrator?.id, disabled: locked, loading: payerLoading, loadingMore: payerLoadingMore, filterOptions: false, value: administrator?.name ?? "", placeholder: "Browse or search claims administrators\u2026", options: payerResults.map((payer) => {
2975
+ const patternDetail = payer.claimNumberPatterns?.map((pattern) => `${pattern.pattern}${pattern.example ? ` (example: ${pattern.example})` : ""}`).join(" \xB7 ") ?? payer.claimNumberHint ?? "";
2976
+ return { id: payer.id, label: payer.name, detail: [payer.aliases?.length ? `Also known as ${payer.aliases.join(", ")}` : "", patternDetail].filter(Boolean).join(" \xB7 ") || "Claims administrator", ...payer.affiliatedEntities?.length ? { affiliatedEntities: payer.affiliatedEntities } : {}, ...payer.route ? { trailing: payer.route } : {} };
2977
+ }), onOpen: () => {
2978
+ if (payerQuery !== "") loadPayers("");
2979
+ }, onQuery: searchPayers, onEndReached: () => loadPayers(payerQuery ?? "", true), onSelect: (option) => choosePayer(payerResults.find((payer) => payer.id === option.id) ?? { id: option.id, name: option.label }) }),
2980
+ orderedClaimsAdministratorSources.length ? /* @__PURE__ */ jsx5("div", { className: "mbsf-source-evidence", children: orderedClaimsAdministratorSources.map((source, index) => /* @__PURE__ */ jsxs5("span", { children: [
2981
+ source.url ? /* @__PURE__ */ jsx5("a", { href: source.url, target: "_blank", rel: "noopener noreferrer", children: source.label }) : /* @__PURE__ */ jsx5("strong", { children: source.label }),
2982
+ ": ",
2983
+ /* @__PURE__ */ jsx5("q", { children: source.name })
2984
+ ] }, `${source.source}-${source.name}-${index}`)) }) : null,
2882
2985
  claimsAdministratorHint ? /* @__PURE__ */ jsxs5("small", { className: "mbsf-help", children: [
2883
2986
  "Claims administrator in your system: ",
2884
2987
  claimsAdministratorHint
2885
2988
  ] }) : null,
2989
+ payerSuggestions.length ? /* @__PURE__ */ jsxs5("div", { className: "mbsf-suggestions", children: [
2990
+ /* @__PURE__ */ jsx5("strong", { children: "Suggested:" }),
2991
+ payerSuggestions.slice(0, 5).map((suggestion) => {
2992
+ const suggestedSubpayor = suggestion.payers?.find((option) => option.id === suggestion.selectedPayerId);
2993
+ return /* @__PURE__ */ jsxs5("button", { className: "mbsf-suggestion", type: "button", title: suggestion.reason, onClick: () => choosePayer(suggestion, suggestion.selectedPayerId), children: [
2994
+ suggestion.name,
2995
+ suggestedSubpayor ? ` \xB7 ${suggestedSubpayor.label}` : ""
2996
+ ] }, `${suggestion.id}-${suggestion.selectedPayerId ?? "admin"}`);
2997
+ })
2998
+ ] }) : null,
2886
2999
  administrator?.id ? /* @__PURE__ */ jsxs5("button", { className: "mbsf-directory-link", type: "button", onClick: () => {
2887
3000
  void openAdministratorDirectory();
2888
3001
  }, children: [
@@ -2890,16 +3003,27 @@ function BillSubmissionForm({
2890
3003
  administrator.name
2891
3004
  ] }) : /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "Search the directory and choose a claims administrator." })
2892
3005
  ] }),
2893
- administrator?.payerSelectionRequired && subpayorOptions.length ? /* @__PURE__ */ jsxs5(Field2, { path: "claim.claimsAdministrator.payerId", label: "Payer", required: true, span: true, error: subpayorError, children: [
2894
- /* @__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) => {
2895
- 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 ");
2896
- return { id: option.id, label: option.label, ...detail ? { detail } : {}, ...option.route ? { trailing: option.route } : {} };
2897
- }), onSelect: (option) => chooseSubpayor(option.id) }),
3006
+ administrator?.payerSelectionRequired ? /* @__PURE__ */ jsxs5(Field2, { path: "claim.claimsAdministrator.payerId", label: "Payer", required: true, span: true, error: subpayorError, children: [
3007
+ subpayorOptions.length ? /* @__PURE__ */ jsx5(ComboBox, { ariaLabel: "Payer", invalid: Boolean(subpayorError), disabled: locked, value: selectedSubpayor?.label ?? "", placeholder: "Select the payer named on the claim or report\u2026", options: subpayorOptions.map((option) => {
3008
+ const identifiers = Object.entries(option.clearinghousePayerIds ?? {}).map(([name, id]) => `${name.replace(/_/g, " ")} ${id}`);
3009
+ const sourceRoute = option.sourceClearinghouse && option.sourcePayerId ? `Catalog: ${option.sourceClearinghouse} ${option.sourcePayerId}` : "";
3010
+ const detail = [option.aliases?.length ? `Also known as ${option.aliases.join(", ")}` : "", option.hint ?? "", sourceRoute].filter(Boolean).join(" \xB7 ");
3011
+ const badges = [option.optionType ? `Type: ${option.optionType}` : "", option.deliveryType ? `Delivery: ${option.deliveryType}` : "", option.clearinghouse && option.payerId ? `Delivered via ${option.clearinghouse} ${option.payerId}` : "", ...identifiers, option.preferredClearinghouse ? `Preferred: ${option.preferredClearinghouse}` : "", option.default ? "Directory default" : ""].filter(Boolean);
3012
+ return { id: option.id, label: option.label, ...detail ? { detail } : {}, ...badges.length ? { badges } : {}, ...option.affiliatedEntities?.length ? { affiliatedEntities: option.affiliatedEntities } : {}, ...option.route ? { trailing: option.route } : {} };
3013
+ }), onSelect: (option) => chooseSubpayor(option.id) }) : /* @__PURE__ */ jsxs5("div", { className: "mbsf-error", role: "alert", children: [
3014
+ "No routing payers are available for ",
3015
+ administrator.name,
3016
+ ". Electronic submission remains blocked; contact support to correct the payer directory."
3017
+ ] }),
2898
3018
  selectedSubpayor ? /* @__PURE__ */ jsxs5("div", { className: "mbsf-payer-status", role: "status", children: [
2899
3019
  /* @__PURE__ */ jsx5("strong", { children: "\u2713 Payer set:" }),
2900
3020
  " ",
2901
- selectedSubpayor.label
2902
- ] }) : /* @__PURE__ */ jsx5("small", { className: "mbsf-help", children: "This claims administrator routes bills per payer. Choose the payer that should receive this bill." })
3021
+ selectedSubpayor.label,
3022
+ selectedSubpayor.route ? ` \xB7 ${selectedSubpayor.route}` : ""
3023
+ ] }) : /* @__PURE__ */ jsxs5("small", { className: "mbsf-help", children: [
3024
+ administrator.name,
3025
+ " administers multiple payers. Choose the payer named on the claim or report so MindBill can route the bill correctly."
3026
+ ] })
2903
3027
  ] }) : null,
2904
3028
  /* @__PURE__ */ jsx5(Field2, { label: "Injury description (optional)", span: true, children: text(bill.claim.description, (description2) => setBill((c) => ({ ...c, claim: { ...c.claim, description: description2 } }))) }),
2905
3029
  /* @__PURE__ */ jsxs5(Field2, { path: "diagnoses", label: "Diagnosis codes (ICD-10)", required: true, span: true, error: errors.diagnoses, children: [
@@ -5294,6 +5418,70 @@ function LifecycleDialog({ children, title, wide = false, onClose }) {
5294
5418
  function correctionDocumentType(value) {
5295
5419
  return BILL_SUBMISSION_DOCUMENT_TYPES.includes(value) ? value : "other";
5296
5420
  }
5421
+ function uniqueContactValues(values) {
5422
+ const seen = /* @__PURE__ */ new Set();
5423
+ return values.flatMap((value) => {
5424
+ const trimmed = value?.trim();
5425
+ if (!trimmed) return [];
5426
+ const key = trimmed.toLocaleLowerCase();
5427
+ if (seen.has(key)) return [];
5428
+ seen.add(key);
5429
+ return [trimmed];
5430
+ });
5431
+ }
5432
+ function CorrectionVerificationContact({ delivery }) {
5433
+ const directory = delivery.directory;
5434
+ const billReview = directory?.billReview ?? [];
5435
+ const phones = uniqueContactValues([
5436
+ delivery.contacts.adjusterPhone,
5437
+ ...directory?.telephoneNumbers ?? [],
5438
+ ...billReview.map((contact) => contact.phone)
5439
+ ]);
5440
+ const emails = uniqueContactValues([
5441
+ delivery.contacts.claimsEmail,
5442
+ delivery.contacts.adjusterEmail,
5443
+ ...directory?.emailAddresses ?? [],
5444
+ ...billReview.map((contact) => contact.email)
5445
+ ]);
5446
+ const faxes = uniqueContactValues([
5447
+ delivery.contacts.faxNumber,
5448
+ ...billReview.map((contact) => contact.fax)
5449
+ ]);
5450
+ const portals = uniqueContactValues([
5451
+ delivery.contacts.portalUrl,
5452
+ ...directory?.webPortals ?? [],
5453
+ ...billReview.map((contact) => contact.portalUrl),
5454
+ directory?.website
5455
+ ]);
5456
+ const mailingAddresses = uniqueContactValues([
5457
+ delivery.contacts.mailingAddress,
5458
+ ...(directory?.mailingAddresses ?? []).map((entry) => entry.address),
5459
+ ...billReview.map((contact) => contact.address)
5460
+ ]);
5461
+ const methods = [
5462
+ { label: "Phone", values: phones, href: (value) => `tel:${value.replace(/[^+\d]/g, "")}` },
5463
+ { label: "Email", values: emails, href: (value) => `mailto:${value}` },
5464
+ { label: "Fax", values: faxes },
5465
+ { label: "Portal", values: portals, href: (value) => value },
5466
+ { label: "Mail", values: mailingAddresses }
5467
+ ].filter((method) => method.values.length);
5468
+ if (!methods.length) return null;
5469
+ return /* @__PURE__ */ jsxs14("aside", { className: "mb-lifecycle-correction-contact", children: [
5470
+ /* @__PURE__ */ jsx14("strong", { children: "Need to verify the rejected information?" }),
5471
+ /* @__PURE__ */ jsxs14("span", { children: [
5472
+ "Contact ",
5473
+ delivery.payerName,
5474
+ " using any available method:"
5475
+ ] }),
5476
+ /* @__PURE__ */ jsx14("dl", { children: methods.map((method) => /* @__PURE__ */ jsxs14("div", { children: [
5477
+ /* @__PURE__ */ jsx14("dt", { children: method.label }),
5478
+ /* @__PURE__ */ jsx14("dd", { children: method.values.map((value, index) => /* @__PURE__ */ jsxs14("span", { children: [
5479
+ index ? " \xB7 " : "",
5480
+ method.href ? /* @__PURE__ */ jsx14("a", { href: method.href(value), ...method.label === "Portal" ? { target: "_blank", rel: "noreferrer" } : {}, children: value }) : value
5481
+ ] }, value)) })
5482
+ ] }, method.label)) })
5483
+ ] });
5484
+ }
5297
5485
  function correctionBill(data) {
5298
5486
  const billing = data.bill.billingSnapshot?.billingProvider;
5299
5487
  const rendering = data.bill.billingSnapshot?.renderingProvider;
@@ -5403,7 +5591,7 @@ function sandboxScenarios(state) {
5403
5591
  function shouldShowSandboxControls(environment, enabled = false) {
5404
5592
  return enabled && environment === "sandbox";
5405
5593
  }
5406
- function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint, sandboxControls = false, className, style, loadingFallback, errorFallback, onChanged, ...options }) {
5594
+ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint, claimsAdministratorSources, sandboxControls = false, className, style, loadingFallback, errorFallback, onChanged, ...options }) {
5407
5595
  const lifecycle = useBillLifecycle(options);
5408
5596
  const { data } = lifecycle;
5409
5597
  const [tab, setTab] = useState11("details");
@@ -5587,13 +5775,14 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
5587
5775
  }, children: action.label }, action.id))
5588
5776
  ] }) : null,
5589
5777
  panel === "resubmit" && correctionInitialBill ? /* @__PURE__ */ jsx14(LifecycleDialog, { title: "Correct and resubmit", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs14("section", { className: "mb-lifecycle-correction", children: [
5590
- /* @__PURE__ */ jsxs14("header", { children: [
5591
- /* @__PURE__ */ jsxs14("div", { children: [
5592
- /* @__PURE__ */ jsx14("h3", { children: "Correct and resubmit" }),
5593
- /* @__PURE__ */ jsx14("p", { children: "Review the rejected snapshot, correct the highlighted information, and submit a new immutable attempt under this bill." })
5594
- ] }),
5595
- /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" })
5596
- ] }),
5778
+ /* @__PURE__ */ jsx14("header", { children: /* @__PURE__ */ jsxs14("div", { children: [
5779
+ /* @__PURE__ */ jsx14("h3", { children: "Correct and resubmit" }),
5780
+ /* @__PURE__ */ jsx14("p", { children: "Review the rejected snapshot, correct the highlighted information, and submit a new immutable attempt under this bill." })
5781
+ ] }) }),
5782
+ data.environment === "live" ? /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-live-warning", children: [
5783
+ /* @__PURE__ */ jsx14("strong", { children: "Live clearinghouse submission" }),
5784
+ /* @__PURE__ */ jsx14("span", { children: "Resubmitting sends a real bill. Confirm the corrected information before continuing." })
5785
+ ] }) : null,
5597
5786
  data.rejection ? /* @__PURE__ */ jsxs14("div", { className: "mb-lifecycle-correction-reason", children: [
5598
5787
  /* @__PURE__ */ jsx14("strong", { children: data.rejection.reason }),
5599
5788
  data.rejection.issues?.map((issue, index) => /* @__PURE__ */ jsxs14("span", { children: [
@@ -5601,16 +5790,7 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
5601
5790
  issue.description
5602
5791
  ] }, `${issue.code || "issue"}-${index}`))
5603
5792
  ] }) : null,
5604
- data.delivery.contacts.adjusterPhone || data.delivery.contacts.claimsEmail ? /* @__PURE__ */ jsxs14("aside", { className: "mb-lifecycle-correction-contact", children: [
5605
- /* @__PURE__ */ jsx14("strong", { children: "Need to verify the rejected information?" }),
5606
- /* @__PURE__ */ jsxs14("span", { children: [
5607
- "Contact ",
5608
- data.delivery.payerName,
5609
- data.delivery.contacts.adjusterPhone ? ` at ${data.delivery.contacts.adjusterPhone}` : "",
5610
- data.delivery.contacts.claimsEmail ? ` \xB7 ${data.delivery.contacts.claimsEmail}` : "",
5611
- "."
5612
- ] })
5613
- ] }) : null,
5793
+ /* @__PURE__ */ jsx14(CorrectionVerificationContact, { delivery: data.delivery }),
5614
5794
  /* @__PURE__ */ jsxs14("label", { className: "mb-lifecycle-correction-note", children: [
5615
5795
  /* @__PURE__ */ jsx14("span", { children: "Correction note (optional)" }),
5616
5796
  /* @__PURE__ */ jsx14("textarea", { value: reason, placeholder: "What changed before resubmission?", onChange: (event) => setReason(event.target.value) })
@@ -5618,12 +5798,14 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
5618
5798
  /* @__PURE__ */ jsx14(
5619
5799
  BillSubmissionForm,
5620
5800
  {
5801
+ className: "mbsf-lifecycle-correction",
5621
5802
  initialBill: correctionInitialBill,
5622
5803
  attachments: correctionAttachments,
5623
5804
  onSubmit: submitCorrection,
5624
5805
  onSearchClaimsAdministrators: lifecycle.searchClaimsAdministrators,
5625
5806
  onGetClaimsAdministratorDirectory: lifecycle.getClaimsAdministratorDirectory,
5626
5807
  claimsAdministratorHint,
5808
+ ...claimsAdministratorSources ? { claimsAdministratorSources } : {},
5627
5809
  attentionFields: correctionAttentionFields,
5628
5810
  attentionMessage: correctionAttentionFields.length ? "The rejected response points to the highlighted fields. Confirm every required value before resubmitting." : "Confirm the bill information below before resubmitting.",
5629
5811
  submitLabel: lifecycle.isMutating ? "Resubmitting\u2026" : "Resubmit bill",
@@ -5640,13 +5822,10 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
5640
5822
  correctionError ? /* @__PURE__ */ jsx14("div", { className: "mb-lifecycle-message error", role: "alert", children: correctionError }) : null
5641
5823
  ] }) }) : null,
5642
5824
  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: [
5643
- /* @__PURE__ */ jsxs14("header", { children: [
5644
- /* @__PURE__ */ jsxs14("div", { children: [
5645
- /* @__PURE__ */ jsx14("h3", { children: "Submit New Bill" }),
5646
- /* @__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." })
5647
- ] }),
5648
- /* @__PURE__ */ jsx14("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" })
5649
- ] }),
5825
+ /* @__PURE__ */ jsx14("header", { children: /* @__PURE__ */ jsxs14("div", { children: [
5826
+ /* @__PURE__ */ jsx14("h3", { children: "Submit New Bill" }),
5827
+ /* @__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." })
5828
+ ] }) }),
5650
5829
  /* @__PURE__ */ jsxs14("label", { className: "mb-lifecycle-correction-note", children: [
5651
5830
  /* @__PURE__ */ jsx14("span", { children: "Submission note (optional)" }),
5652
5831
  /* @__PURE__ */ jsx14("textarea", { value: reason, placeholder: "Why is a new bill being submitted?", onChange: (event) => setReason(event.target.value) })
@@ -5654,12 +5833,14 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
5654
5833
  /* @__PURE__ */ jsx14(
5655
5834
  BillSubmissionForm,
5656
5835
  {
5836
+ className: "mbsf-lifecycle-correction",
5657
5837
  initialBill: correctionInitialBill,
5658
5838
  attachments: correctionAttachments,
5659
5839
  onSubmit: submitNewBillFromForm,
5660
5840
  onSearchClaimsAdministrators: lifecycle.searchClaimsAdministrators,
5661
5841
  onGetClaimsAdministratorDirectory: lifecycle.getClaimsAdministratorDirectory,
5662
5842
  claimsAdministratorHint,
5843
+ ...claimsAdministratorSources ? { claimsAdministratorSources } : {},
5663
5844
  attentionMessage: "Confirm every value carried over from the closed bill before submitting the new bill.",
5664
5845
  submitLabel: lifecycle.isMutating ? "Submitting\u2026" : "Submit New Bill",
5665
5846
  heading: "New bill information",
@@ -5825,11 +6006,11 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
5825
6006
  }
5826
6007
  var CONNECTED_LIFECYCLE_STYLES = `
5827
6008
  .mb-lifecycle-simulator{display:grid;gap:14px;padding:18px;border:1px solid #b8dadd;border-radius:var(--mb-radius,14px);background:#f2fbfb}.mb-lifecycle-simulator>div:first-child>span{color:var(--mb-accent);font-size:.72rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.mb-lifecycle-simulator h3{margin:3px 0 0;font-size:1.05rem}.mb-lifecycle-simulator p{margin:4px 0 0;color:var(--mb-muted)}.mb-lifecycle-simulator-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.mb-lifecycle-simulator-actions button{min-height:76px;border:1px solid #a9cccf;border-radius:10px;background:var(--mb-surface);color:var(--mb-text);cursor:pointer;padding:12px 14px;text-align:left;font:inherit}.mb-lifecycle-simulator-actions button:hover{border-color:var(--mb-accent);box-shadow:0 3px 14px rgba(23,108,112,.1)}.mb-lifecycle-simulator-actions button:disabled{cursor:not-allowed;opacity:.55}.mb-lifecycle-simulator-actions button strong,.mb-lifecycle-simulator-actions button span{display:block}.mb-lifecycle-simulator-actions button span{margin-top:3px;color:var(--mb-muted);font-size:.83rem}.mb-lifecycle-simulator-idle{padding:10px 12px;border-radius:8px;background:rgba(255,255,255,.72)}
5828
- .mb-connected-lifecycle{--mb-accent:#176c70;--mb-text:#17282d;--mb-muted:#607176;--mb-border:#d7e0df;--mb-soft:#f4f7f6;--mb-surface:#fff;display:grid;gap:18px;color:var(--mb-text);font:14px/1.45 var(--mb-font,Inter,ui-sans-serif,system-ui,sans-serif)}.mb-connected-lifecycle *{box-sizing:border-box}.mb-lifecycle-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.mb-lifecycle-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.mb-lifecycle-title h2{margin:0;font-size:1.7rem}.mb-lifecycle-head p{margin:3px 0 0;color:var(--mb-muted)}.mb-lifecycle-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--mb-border);border-radius:12px;background:var(--mb-surface);padding:6px}.mb-lifecycle-tabs button{min-height:46px;border:0;border-radius:8px;background:transparent;color:var(--mb-muted);font:inherit;font-size:1rem;font-weight:750;cursor:pointer}.mb-lifecycle-tabs button[aria-selected=true]{background:var(--mb-accent);color:white}.mb-lifecycle-tabpanel{display:grid;gap:18px}.mb-lifecycle-button{min-height:40px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius,8px);background:var(--mb-input,#fff);color:var(--mb-text);cursor:pointer;font:inherit;font-weight:750;padding:9px 14px}.mb-lifecycle-button.primary{border-color:var(--mb-accent);background:var(--mb-accent);color:var(--mb-accent-contrast,#fff)}.mb-lifecycle-button:disabled{cursor:not-allowed;opacity:.5}.mb-lifecycle-actions-sheet{position:sticky;bottom:12px;z-index:24;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px;padding:10px;border:1px solid var(--mb-border);border-radius:12px;background:color-mix(in srgb,var(--mb-surface) 94%,transparent);box-shadow:0 10px 34px rgba(18,35,43,.16);backdrop-filter:blur(12px)}.mb-lifecycle-card,.mb-lifecycle-panel{padding:20px;border:1px solid var(--mb-border);border-radius:var(--mb-radius,14px);background:var(--mb-surface)}.mb-lifecycle-card header{display:flex;align-items:center;justify-content:space-between;gap:20px}.mb-lifecycle-card h3,.mb-lifecycle-panel h3{margin:0;font-size:1.08rem}.mb-lifecycle-card p,.mb-lifecycle-panel p{margin:3px 0 0;color:var(--mb-muted)}.mb-lifecycle-card header>span{display:grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:var(--mb-soft);font-weight:750}.mb-lifecycle-documents{list-style:none;margin:14px 0 0;padding:0}.mb-lifecycle-documents li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--mb-border)}.mb-lifecycle-documents li>div{display:grid;gap:3px;min-width:0}.mb-lifecycle-documents li span{color:var(--mb-muted);font-size:.85rem}.mb-lifecycle-dialog-backdrop{position:fixed;z-index:2147483000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(18,35,43,.56);backdrop-filter:blur(3px)}.mb-lifecycle-dialog{position:relative;width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;outline:0}.mb-lifecycle-dialog-close{position:absolute;z-index:1;top:12px;right:12px;width:34px;height:34px;border:1px solid var(--mb-border);border-radius:8px;background:var(--mb-surface);color:var(--mb-text);cursor:pointer;font:22px/1 inherit}.mb-lifecycle-panel{display:grid;gap:17px;padding-top:24px;box-shadow:0 24px 70px rgba(18,35,43,.22)}.mb-lifecycle-panel label{display:grid;gap:6px;font-size:.85rem;font-weight:750}.mb-lifecycle-panel label small{color:var(--mb-muted);font-weight:500}.mb-lifecycle-panel input,.mb-lifecycle-panel select,.mb-lifecycle-panel textarea{width:100%;min-height:44px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius,8px);background:var(--mb-input,#fff);color:var(--mb-text);font:inherit;padding:10px 12px}.mb-lifecycle-panel textarea{min-height:100px;resize:vertical}.mb-lifecycle-fields{display:grid;gap:13px}.mb-lifecycle-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.mb-lifecycle-fields .full{grid-column:1/-1}.mb-lifecycle-panel-actions{display:flex;justify-content:flex-end;gap:8px}.mb-lifecycle-packet{display:grid;gap:0;margin:0;padding:0;border:0}.mb-lifecycle-packet legend{margin-bottom:7px;font-size:.85rem;font-weight:800}.mb-lifecycle-packet>label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 2px;border-top:1px solid var(--mb-border)}.mb-lifecycle-packet>label>input{width:16px;min-height:16px}.mb-lifecycle-packet>label>span{display:grid}.mb-lifecycle-packet button{border:0;background:transparent;color:var(--mb-accent);cursor:pointer;font:inherit}.mb-lifecycle-message,.mb-lifecycle-error,.mb-lifecycle-loading{padding:12px 14px;border-radius:9px}.mb-lifecycle-message.success{background:#edf9f2;color:#217449}.mb-lifecycle-message.error,.mb-lifecycle-error{background:#fff0ef;color:#9d3029}.mb-lifecycle-error{display:flex;align-items:center;gap:12px}.mb-lifecycle-error span{flex:1}.mb-lifecycle-error button{border:1px solid currentColor;border-radius:7px;background:transparent;color:inherit;padding:7px 10px}
5829
- .mb-lifecycle-dialog.wide{width:min(1280px,100%)}.mb-lifecycle-correction{display:grid;gap:16px;padding:22px;border-radius:var(--mb-radius,14px);background:var(--mb-surface);box-shadow:0 24px 70px rgba(18,35,43,.22)}.mb-lifecycle-correction>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-right:42px}.mb-lifecycle-correction h3{margin:0;font-size:1.2rem}.mb-lifecycle-correction header p{margin:4px 0 0;color:var(--mb-muted)}.mb-lifecycle-correction-reason,.mb-lifecycle-correction-contact{display:grid;gap:4px;padding:13px 15px;border-radius:10px}.mb-lifecycle-correction-reason{border-left:4px solid #c5443f;background:#fff2f1;color:#812d29}.mb-lifecycle-correction-contact{border:1px solid color-mix(in srgb,var(--mb-accent) 35%,var(--mb-border));background:color-mix(in srgb,var(--mb-accent) 7%,var(--mb-surface))}.mb-lifecycle-correction-note{display:grid;gap:6px;font-size:.85rem;font-weight:750}.mb-lifecycle-correction-note textarea{min-height:76px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius,8px);background:var(--mb-input,#fff);color:var(--mb-text);font:inherit;padding:10px 12px;resize:vertical}
6009
+ .mb-connected-lifecycle{--mb-accent:#176c70;--mb-text:#17282d;--mb-muted:#607176;--mb-border:#d7e0df;--mb-soft:#f4f7f6;--mb-surface:#fff;display:grid;gap:18px;color:var(--mb-text);font:14px/1.45 var(--mb-font,Inter,ui-sans-serif,system-ui,sans-serif)}.mb-connected-lifecycle *{box-sizing:border-box}.mb-lifecycle-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.mb-lifecycle-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.mb-lifecycle-title h2{margin:0;font-size:1.7rem}.mb-lifecycle-head p{margin:3px 0 0;color:var(--mb-muted)}.mb-lifecycle-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--mb-border);border-radius:12px;background:var(--mb-surface);padding:6px}.mb-lifecycle-tabs button{min-height:46px;border:0;border-radius:8px;background:transparent;color:var(--mb-muted);font:inherit;font-size:1rem;font-weight:750;cursor:pointer}.mb-lifecycle-tabs button[aria-selected=true]{background:var(--mb-accent);color:white}.mb-lifecycle-tabpanel{display:grid;gap:18px}.mb-lifecycle-button{min-height:40px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius,8px);background:var(--mb-input,#fff);color:var(--mb-text);cursor:pointer;font:inherit;font-weight:750;padding:9px 14px}.mb-lifecycle-button.primary{border-color:var(--mb-accent);background:var(--mb-accent);color:var(--mb-accent-contrast,#fff)}.mb-lifecycle-button:disabled{cursor:not-allowed;opacity:.5}.mb-lifecycle-actions-sheet{position:sticky;bottom:12px;z-index:24;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px;padding:10px;border:1px solid var(--mb-border);border-radius:12px;background:color-mix(in srgb,var(--mb-surface) 94%,transparent);box-shadow:0 10px 34px rgba(18,35,43,.16);backdrop-filter:blur(12px)}.mb-lifecycle-card,.mb-lifecycle-panel{padding:20px;border:1px solid var(--mb-border);border-radius:var(--mb-radius,14px);background:var(--mb-surface)}.mb-lifecycle-card header{display:flex;align-items:center;justify-content:space-between;gap:20px}.mb-lifecycle-card h3,.mb-lifecycle-panel h3{margin:0;font-size:1.08rem}.mb-lifecycle-card p,.mb-lifecycle-panel p{margin:3px 0 0;color:var(--mb-muted)}.mb-lifecycle-card header>span{display:grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:var(--mb-soft);font-weight:750}.mb-lifecycle-documents{list-style:none;margin:14px 0 0;padding:0}.mb-lifecycle-documents li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--mb-border)}.mb-lifecycle-documents li>div{display:grid;gap:3px;min-width:0}.mb-lifecycle-documents li span{color:var(--mb-muted);font-size:.85rem}.mb-lifecycle-dialog-backdrop{position:fixed;z-index:2147483000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(18,35,43,.56);backdrop-filter:blur(3px)}.mb-lifecycle-dialog{position:relative;width:min(760px,100%);max-height:calc(100dvh - 40px);overflow:auto;outline:0}.mb-lifecycle-dialog-close{position:absolute;z-index:1;top:12px;right:12px;width:44px;height:44px;border:1px solid var(--mb-border);border-radius:10px;background:var(--mb-surface);color:var(--mb-text);cursor:pointer;font:24px/1 inherit}.mb-lifecycle-panel{display:grid;gap:17px;padding-top:24px;box-shadow:0 24px 70px rgba(18,35,43,.22)}.mb-lifecycle-panel label{display:grid;gap:6px;font-size:.85rem;font-weight:750}.mb-lifecycle-panel label small{color:var(--mb-muted);font-weight:500}.mb-lifecycle-panel input,.mb-lifecycle-panel select,.mb-lifecycle-panel textarea{width:100%;min-height:44px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius,8px);background:var(--mb-input,#fff);color:var(--mb-text);font:inherit;padding:10px 12px}.mb-lifecycle-panel textarea{min-height:100px;resize:vertical}.mb-lifecycle-fields{display:grid;gap:13px}.mb-lifecycle-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.mb-lifecycle-fields .full{grid-column:1/-1}.mb-lifecycle-panel-actions{display:flex;justify-content:flex-end;gap:8px}.mb-lifecycle-packet{display:grid;gap:0;margin:0;padding:0;border:0}.mb-lifecycle-packet legend{margin-bottom:7px;font-size:.85rem;font-weight:800}.mb-lifecycle-packet>label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 2px;border-top:1px solid var(--mb-border)}.mb-lifecycle-packet>label>input{width:16px;min-height:16px}.mb-lifecycle-packet>label>span{display:grid}.mb-lifecycle-packet button{border:0;background:transparent;color:var(--mb-accent);cursor:pointer;font:inherit}.mb-lifecycle-message,.mb-lifecycle-error,.mb-lifecycle-loading{padding:12px 14px;border-radius:9px}.mb-lifecycle-message.success{background:#edf9f2;color:#217449}.mb-lifecycle-message.error,.mb-lifecycle-error{background:#fff0ef;color:#9d3029}.mb-lifecycle-error{display:flex;align-items:center;gap:12px}.mb-lifecycle-error span{flex:1}.mb-lifecycle-error button{border:1px solid currentColor;border-radius:7px;background:transparent;color:inherit;padding:7px 10px}
6010
+ .mb-lifecycle-dialog.wide{width:min(1280px,100%)}.mb-lifecycle-correction{display:grid;gap:16px;padding:22px;border-radius:var(--mb-radius,14px);background:var(--mb-surface);box-shadow:0 24px 70px rgba(18,35,43,.22)}.mb-lifecycle-correction>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-right:56px}.mb-lifecycle-correction h3{margin:0;font-size:1.2rem}.mb-lifecycle-correction header p{margin:4px 0 0;color:var(--mb-muted)}.mb-lifecycle-live-warning,.mb-lifecycle-correction-reason,.mb-lifecycle-correction-contact{display:grid;gap:4px;padding:13px 15px;border-radius:10px}.mb-lifecycle-live-warning{border-left:4px solid #b97716;background:#fff8e8;color:#6f470e}.mb-lifecycle-correction-reason{border-left:4px solid #c5443f;background:#fff2f1;color:#812d29}.mb-lifecycle-correction-contact{border:1px solid color-mix(in srgb,var(--mb-accent) 35%,var(--mb-border));background:color-mix(in srgb,var(--mb-accent) 7%,var(--mb-surface))}.mb-lifecycle-correction-contact dl{display:grid;gap:7px;margin:8px 0 0}.mb-lifecycle-correction-contact dl>div{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px}.mb-lifecycle-correction-contact dt{color:var(--mb-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.mb-lifecycle-correction-contact dd{min-width:0;margin:0;overflow-wrap:anywhere}.mb-lifecycle-correction-contact a{color:var(--mb-accent);text-underline-offset:2px}.mb-lifecycle-correction-note{display:grid;gap:6px;font-size:.85rem;font-weight:750}.mb-lifecycle-correction-note textarea{min-height:76px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius,8px);background:var(--mb-input,#fff);color:var(--mb-text);font:inherit;padding:10px 12px;resize:vertical}
5830
6011
  .mb-payment-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:9px;background:var(--mb-soft)}.mb-payment-total strong{font-size:1.12rem}
5831
6012
  .mb-lifecycle-deadline-hint{margin:0;padding:10px 12px;border-radius:9px;background:color-mix(in srgb,var(--mb-warning,#8a5c17) 10%,var(--mb-surface));color:var(--mb-warning,#8a5c17);font-size:.85rem}
5832
- @media(max-width:700px){.mb-lifecycle-head,.mb-lifecycle-card header{align-items:stretch;flex-direction:column}.mb-lifecycle-head>.mb-lifecycle-button{width:100%}.mb-lifecycle-actions-sheet{bottom:calc(var(--mb-host-bottom-offset,72px) + env(safe-area-inset-bottom) + 8px);grid-template-columns:repeat(2,minmax(0,1fr))}.mb-lifecycle-actions-sheet .mb-lifecycle-button:last-child:nth-child(odd){grid-column:1/-1}.mb-lifecycle-fields.two{grid-template-columns:1fr}.mb-lifecycle-fields .full{grid-column:auto}.mb-lifecycle-dialog-backdrop{align-items:end;padding:0}.mb-lifecycle-dialog{max-height:96vh}.mb-lifecycle-dialog .mb-lifecycle-panel,.mb-lifecycle-correction{border-radius:18px 18px 0 0}.mb-lifecycle-correction{padding:18px 12px}.mb-lifecycle-correction>header{align-items:stretch;flex-direction:column;padding-right:42px}.mb-lifecycle-tabs button{font-size:.9rem}.mb-lifecycle-title h2{font-size:1.4rem}}
6013
+ @media(max-width:700px){.mb-lifecycle-head,.mb-lifecycle-card header{align-items:stretch;flex-direction:column}.mb-lifecycle-head>.mb-lifecycle-button{width:100%}.mb-lifecycle-actions-sheet{bottom:calc(var(--mb-host-bottom-offset,72px) + env(safe-area-inset-bottom) + 8px);grid-template-columns:repeat(2,minmax(0,1fr))}.mb-lifecycle-actions-sheet .mb-lifecycle-button:last-child:nth-child(odd){grid-column:1/-1}.mb-lifecycle-fields.two{grid-template-columns:1fr}.mb-lifecycle-fields .full{grid-column:auto}.mb-lifecycle-dialog-backdrop{align-items:end;padding:0}.mb-lifecycle-dialog{max-height:calc(100dvh - 12px)}.mb-lifecycle-dialog .mb-lifecycle-panel,.mb-lifecycle-correction{border-radius:18px 18px 0 0}.mb-lifecycle-correction{padding:18px 12px calc(18px + env(safe-area-inset-bottom))}.mb-lifecycle-correction>header{align-items:stretch;flex-direction:column;padding-right:56px}.mb-lifecycle-correction-contact dl>div{grid-template-columns:1fr;gap:2px}.mb-lifecycle-tabs button{font-size:.9rem}.mb-lifecycle-title h2{font-size:1.4rem}}
5833
6014
  `;
5834
6015
 
5835
6016
  // src/index.tsx