@mindbill/react 0.50.0 → 0.52.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
@@ -348,7 +348,7 @@ function organizationProfileOptions(profile) {
348
348
 
349
349
  // src/index.tsx
350
350
  import "@mindbill/embed";
351
- import { createElement, useEffect as useEffect15, useRef as useRef10 } from "react";
351
+ import { createElement, useEffect as useEffect16, useRef as useRef11 } from "react";
352
352
 
353
353
  // src/native-bill-review.tsx
354
354
  import { sanitizeBillReviewSaveInput } from "@mindbill/browser";
@@ -5422,7 +5422,7 @@ function ConnectedPaymentReview({ initialQuery, onSelectBill, onPostPayment, app
5422
5422
  import { useEffect as useEffect10, useId as useId3, useRef as useRef5, useState as useState12 } from "react";
5423
5423
  import { Fragment as Fragment11, jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
5424
5424
  function defaultNotificationPreferences() {
5425
- return { enabled: false, statusUpdates: false, agingDays: [], quietHours: true };
5425
+ return { enabled: false, statusUpdates: false, agingDays: [], quietHours: true, reportDigest: "off" };
5426
5426
  }
5427
5427
  function notificationSettingsUpdate(preferences, consent) {
5428
5428
  return {
@@ -5430,15 +5430,18 @@ function notificationSettingsUpdate(preferences, consent) {
5430
5430
  statusUpdates: preferences.statusUpdates === true,
5431
5431
  agingDays: [30, 60, 90].filter((day) => preferences.agingDays.includes(day)),
5432
5432
  quietHours: preferences.quietHours === true,
5433
+ reportDigest: preferences.reportDigest === "daily" || preferences.reportDigest === "weekly" ? preferences.reportDigest : "off",
5433
5434
  consent: consent === true
5434
5435
  };
5435
5436
  }
5436
5437
  function notificationSettingsNeedsConsent(previous, next) {
5437
5438
  if (!next.enabled) return false;
5439
+ if ((previous?.reportDigest ?? "off") !== (next.reportDigest ?? "off")) return true;
5438
5440
  if (!previous?.enabled || previous.statusUpdates !== next.statusUpdates || previous.quietHours !== next.quietHours) return true;
5439
5441
  return JSON.stringify(notificationSettingsUpdate(previous, false).agingDays) !== JSON.stringify(notificationSettingsUpdate(next, false).agingDays);
5440
5442
  }
5441
5443
  var css11 = `
5444
+ .mbns-digest{display:grid;gap:6px;margin-top:12px}.mbns-digest select{font:inherit;min-height:44px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-surface);color:var(--mb-text);padding:10px 12px}.mbns-digest select:focus-visible{outline:2px solid var(--mb-accent);outline-offset:3px}
5442
5445
  .mbns{color:var(--mb-text);font-family:var(--mb-font);font-size:14px;line-height:1.5;min-width:0}.mbns *{box-sizing:border-box}.mbns h2,.mbns p{margin:0}.mbns-card{padding:24px;background:var(--mb-surface);border:1px solid var(--mb-border);border-radius:var(--mb-radius);box-shadow:var(--mb-shadow)}
5443
5446
  .mbns-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.mbns h2{font-size:20px;line-height:1.3;font-weight:700}.mbns-muted{color:var(--mb-muted)}.mbns-header p{margin-top:6px;max-width:56ch}.mbns-badge{flex-shrink:0;background:var(--mb-soft);color:var(--mb-muted);padding:4px 9px;border-radius:var(--mb-control-radius);font-size:12px;font-weight:650}
5444
5447
  .mbns-account{padding:14px 16px;background:var(--mb-soft);border-radius:var(--mb-control-radius);margin-bottom:20px;overflow-wrap:anywhere}.mbns-account strong{display:block;font-weight:650}.mbns-account p{margin-top:3px;font-size:13px}
@@ -5481,7 +5484,7 @@ function NotificationSettingsSession({ adapter, appearance, className, style, on
5481
5484
  };
5482
5485
  }, [adapter, reload]);
5483
5486
  const needsConsent = notificationSettingsNeedsConsent(snapshot?.preferences ?? null, draft);
5484
- const hasCategory = draft.statusUpdates || draft.agingDays.length > 0;
5487
+ const hasCategory = draft.statusUpdates || draft.agingDays.length > 0 || (draft.reportDigest ?? "off") !== "off";
5485
5488
  const changed = JSON.stringify(notificationSettingsUpdate(draft, false)) !== JSON.stringify(notificationSettingsUpdate(snapshot?.preferences ?? defaultNotificationPreferences(), false));
5486
5489
  const busy = phase !== "ready";
5487
5490
  const canSave = !busy && changed && (!draft.enabled || !!snapshot?.canEnable && hasCategory && (!needsConsent || consent));
@@ -5570,6 +5573,15 @@ function NotificationSettingsSession({ adapter, appearance, className, style, on
5570
5573
  /* @__PURE__ */ jsx16("strong", { children: "Quiet hours" }),
5571
5574
  /* @__PURE__ */ jsx16("small", { children: "Hold emails from 7 pm to 7 am Pacific time." })
5572
5575
  ] })
5576
+ ] }),
5577
+ /* @__PURE__ */ jsxs16("label", { className: "mbns-digest", children: [
5578
+ /* @__PURE__ */ jsx16("strong", { children: "Scheduled activity digest" }),
5579
+ /* @__PURE__ */ jsxs16("select", { value: draft.reportDigest ?? "off", onChange: (event) => update({ reportDigest: event.target.value }), children: [
5580
+ /* @__PURE__ */ jsx16("option", { value: "off", children: "Off" }),
5581
+ /* @__PURE__ */ jsx16("option", { value: "daily", children: "Daily" }),
5582
+ /* @__PURE__ */ jsx16("option", { value: "weekly", children: "Weekly" })
5583
+ ] }),
5584
+ /* @__PURE__ */ jsx16("small", { className: "mbns-muted", children: "Activity counts at 9 am Pacific, every day or every Monday. No patient details, financial reports or attachments." })
5573
5585
  ] })
5574
5586
  ] }),
5575
5587
  draft.enabled && !hasCategory && /* @__PURE__ */ jsx16("p", { className: "mbns-notice", children: "Select at least one update type to enable notifications." }),
@@ -5592,19 +5604,215 @@ function NotificationSettingsSession({ adapter, appearance, className, style, on
5592
5604
  ] });
5593
5605
  }
5594
5606
 
5607
+ // src/notification-recipients.tsx
5608
+ import { useEffect as useEffect11, useId as useId4, useRef as useRef6, useState as useState13 } from "react";
5609
+ import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
5610
+ function notificationRecipientInvitation(input, requestId) {
5611
+ const preferences = notificationSettingsUpdate({ ...input, enabled: false }, false);
5612
+ return {
5613
+ requestId,
5614
+ email: input.email.trim().toLowerCase(),
5615
+ audience: input.audience,
5616
+ statusUpdates: preferences.statusUpdates,
5617
+ agingDays: preferences.agingDays,
5618
+ quietHours: preferences.quietHours,
5619
+ reportDigest: preferences.reportDigest ?? "off"
5620
+ };
5621
+ }
5622
+ var css12 = `
5623
+ .mbnr-digest{margin-top:12px}.mbnr-digest small{display:block;margin-top:6px}
5624
+ .mbnr{font:14px/1.5 var(--mb-font);color:var(--mb-text);min-width:0}.mbnr *{box-sizing:border-box}.mbnr h2,.mbnr h3,.mbnr p{margin:0}.mbnr h2{font-size:20px}.mbnr h3{font-size:15px}.mbnr-card{border:1px solid var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);padding:24px}.mbnr header{display:flex;gap:16px;justify-content:space-between;align-items:start;margin-bottom:24px}.mbnr-muted{color:var(--mb-muted)}.mbnr header p{margin-top:6px;max-width:65ch}.mbnr-badge{background:var(--mb-soft);padding:4px 9px;border-radius:var(--mb-control-radius);white-space:nowrap;font-size:12px}.mbnr-form{display:grid;gap:16px;padding:20px;background:var(--mb-soft);border-radius:var(--mb-control-radius)}.mbnr-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mbnr label{display:block}.mbnr label>span{display:block;font-weight:600;margin-bottom:6px}.mbnr input[type=email],.mbnr select{width:100%;min-height:44px;background:var(--mb-surface);color:var(--mb-text);font:inherit;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);padding:10px 12px}.mbnr-check{display:flex!important;gap:10px;align-items:center;min-height:36px}.mbnr input[type=checkbox]{width:17px;height:17px;accent-color:var(--mb-accent)}.mbnr fieldset{border:0;margin:0;padding:0;min-width:0}.mbnr legend{font-weight:600;margin-bottom:6px}.mbnr-days{display:flex;gap:20px;flex-wrap:wrap}.mbnr button{font:inherit;font-weight:600;min-height:44px;padding:10px 14px;border:1px solid var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-surface);color:var(--mb-text);cursor:pointer}.mbnr button:disabled{opacity:.5;cursor:not-allowed}.mbnr button.mbnr-primary{background:var(--mb-accent);border-color:var(--mb-accent);color:var(--mb-accent-contrast)}.mbnr :is(input,button,select):focus-visible{outline:2px solid var(--mb-accent);outline-offset:3px}.mbnr-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.mbnr-list{margin-top:28px;display:grid;gap:12px}.mbnr-recipient{border-top:1px solid var(--mb-border);padding-top:16px;display:flex;gap:16px;justify-content:space-between;align-items:start}.mbnr-email{overflow-wrap:anywhere;font-weight:600}.mbnr-state{display:flex;gap:10px;align-items:center;flex-shrink:0}.mbnr-error{color:var(--mb-danger)}.mbnr-notice{margin-top:16px!important}.mbnr-pagination{margin-top:20px}.mbnr-empty{padding:20px 0;color:var(--mb-muted)}@media(max-width:600px){.mbnr-card{padding:18px}.mbnr-form{padding:16px}.mbnr-fields{grid-template-columns:1fr}.mbnr-recipient{flex-direction:column}.mbnr-state{width:100%;justify-content:space-between}.mbnr header{flex-wrap:wrap}}
5625
+ `;
5626
+ function NotificationRecipientsSettings(props) {
5627
+ return /* @__PURE__ */ jsx17(RecipientSettingsSession, { ...props }, props.identityKey);
5628
+ }
5629
+ var ConnectedNotificationRecipientsSettings = NotificationRecipientsSettings;
5630
+ function recipientCategories(recipient) {
5631
+ return [
5632
+ recipient.statusUpdates ? "Status and payment updates" : "",
5633
+ recipient.agingDays.length ? `${recipient.agingDays.join(" / ")} day reminders` : "",
5634
+ recipient.reportDigest === "daily" ? "Daily activity digest" : recipient.reportDigest === "weekly" ? "Weekly activity digest" : ""
5635
+ ].filter(Boolean).join(" \xB7 ") || "No email categories";
5636
+ }
5637
+ function RecipientSettingsSession({ adapter, appearance, className, style }) {
5638
+ const titleId = useId4();
5639
+ const [snapshot, setSnapshot] = useState13(null);
5640
+ const [email, setEmail] = useState13("");
5641
+ const [audience, setAudience] = useState13("assigned_bills");
5642
+ const [preferences, setPreferences] = useState13(defaultNotificationPreferences);
5643
+ const [offset, setOffset] = useState13(0);
5644
+ const [reload, setReload] = useState13(0);
5645
+ const [busy, setBusy] = useState13(true);
5646
+ const [notice, setNotice] = useState13("");
5647
+ const [failed, setFailed] = useState13(false);
5648
+ const [hasReceipt, setHasReceipt] = useState13(false);
5649
+ const generation = useRef6(0);
5650
+ const pending = useRef6(null);
5651
+ useEffect11(() => {
5652
+ const current = ++generation.current;
5653
+ setBusy(true);
5654
+ setSnapshot(null);
5655
+ void Promise.resolve().then(() => adapter.load(offset)).then((result) => {
5656
+ if (current !== generation.current) return;
5657
+ setSnapshot(result);
5658
+ setBusy(false);
5659
+ }).catch(() => {
5660
+ if (current !== generation.current) return;
5661
+ setBusy(false);
5662
+ setFailed(true);
5663
+ setNotice("Could not load recipients. No settings have been changed.");
5664
+ });
5665
+ return () => {
5666
+ generation.current++;
5667
+ };
5668
+ }, [adapter, offset, reload]);
5669
+ async function mutate(action, invitation = false) {
5670
+ if (busy) return;
5671
+ const current = ++generation.current;
5672
+ setBusy(true);
5673
+ setNotice("");
5674
+ setFailed(false);
5675
+ try {
5676
+ const message = await action();
5677
+ if (current !== generation.current) return;
5678
+ if (invitation) setHasReceipt(true);
5679
+ setNotice(message);
5680
+ setReload((value) => value + 1);
5681
+ } catch {
5682
+ if (current !== generation.current) return;
5683
+ setBusy(false);
5684
+ setFailed(true);
5685
+ setNotice("We couldn't confirm the request. Retry unchanged to check the same invitation, or reload recipients. Do not assume an email was sent.");
5686
+ }
5687
+ }
5688
+ const canInvite = !busy && !!snapshot?.available && !!email.trim() && (preferences.statusUpdates || preferences.agingDays.length > 0 || (preferences.reportDigest ?? "off") !== "off");
5689
+ return /* @__PURE__ */ jsxs17("section", { className: `mbnr ${className ?? ""}`, style: { ...mindBillAppearanceStyle(appearance), ...style }, "aria-labelledby": titleId, "aria-busy": busy, children: [
5690
+ /* @__PURE__ */ jsx17("style", { children: css12 }),
5691
+ /* @__PURE__ */ jsxs17("div", { className: "mbnr-card", children: [
5692
+ /* @__PURE__ */ jsxs17("header", { children: [
5693
+ /* @__PURE__ */ jsxs17("div", { children: [
5694
+ /* @__PURE__ */ jsx17("h2", { id: titleId, children: "Notification recipients" }),
5695
+ /* @__PURE__ */ jsx17("p", { className: "mbnr-muted", children: "Add any email address for billing alerts. No MindBill console account is needed. Notifications stay off until the recipient confirms." })
5696
+ ] }),
5697
+ /* @__PURE__ */ jsx17("span", { className: "mbnr-badge", children: "Default off" })
5698
+ ] }),
5699
+ snapshot?.environment === "sandbox" && /* @__PURE__ */ jsx17("p", { className: "mbnr-notice mbnr-muted", children: "Sandbox preview. No emails are sent." }),
5700
+ snapshot && !snapshot.available && /* @__PURE__ */ jsx17("p", { className: "mbnr-notice mbnr-muted", children: "Email invitations are not available yet. Existing notifications can still be disabled." }),
5701
+ /* @__PURE__ */ jsxs17("form", { className: "mbnr-form", onSubmit: (event) => {
5702
+ event.preventDefault();
5703
+ if (!canInvite) return;
5704
+ const input = notificationRecipientInvitation({ email, audience, ...preferences }, "");
5705
+ const payload = JSON.stringify(input);
5706
+ if (pending.current?.payload !== payload) pending.current = { payload, id: crypto.randomUUID() };
5707
+ const requestId = pending.current.id;
5708
+ void mutate(async () => {
5709
+ const result = await adapter.invite({ ...input, requestId });
5710
+ return result.deliveryStatus === "sandbox_preview" ? "Sandbox invitation prepared. Notifications remain off until recipient confirmation." : result.deliveryStatus === "sent" ? "Invitation sent. Notifications remain off until the recipient confirms." : "Invitation recorded, but email delivery is not confirmed. Notifications remain off. Reload recipients before requesting a new invitation.";
5711
+ }, true);
5712
+ }, children: [
5713
+ /* @__PURE__ */ jsxs17("div", { className: "mbnr-fields", children: [
5714
+ /* @__PURE__ */ jsxs17("label", { children: [
5715
+ /* @__PURE__ */ jsx17("span", { children: "Recipient email" }),
5716
+ /* @__PURE__ */ jsx17("input", { type: "email", autoComplete: "email", required: true, maxLength: 254, value: email, disabled: busy || !snapshot?.available, placeholder: "doctor@example.com", onChange: (event) => setEmail(event.target.value) })
5717
+ ] }),
5718
+ /* @__PURE__ */ jsxs17("label", { children: [
5719
+ /* @__PURE__ */ jsx17("span", { children: "Billing access scope" }),
5720
+ /* @__PURE__ */ jsxs17("select", { value: audience, disabled: busy || !snapshot?.available, onChange: (event) => setAudience(event.target.value), children: [
5721
+ /* @__PURE__ */ jsx17("option", { value: "assigned_bills", children: "Assigned bills only" }),
5722
+ /* @__PURE__ */ jsx17("option", { value: "practice", children: "All bills in this practice" })
5723
+ ] })
5724
+ ] })
5725
+ ] }),
5726
+ /* @__PURE__ */ jsxs17("p", { className: "mbnr-muted", children: [
5727
+ audience === "assigned_bills" ? "Your application must assign bills on the server. Without assignments, this recipient receives no alerts." : "The invitation asks for alerts about all bills in this practice, including future bills.",
5728
+ " This does not grant access to the app."
5729
+ ] }),
5730
+ /* @__PURE__ */ jsxs17("fieldset", { disabled: busy || !snapshot?.available, children: [
5731
+ /* @__PURE__ */ jsx17("legend", { children: "Alerts to request" }),
5732
+ /* @__PURE__ */ jsxs17("label", { className: "mbnr-check", children: [
5733
+ /* @__PURE__ */ jsx17("input", { type: "checkbox", checked: preferences.statusUpdates, onChange: (event) => setPreferences((value) => ({ ...value, statusUpdates: event.target.checked })) }),
5734
+ "Bill status and payment updates"
5735
+ ] }),
5736
+ /* @__PURE__ */ jsx17("p", { className: "mbnr-muted", children: "Reminders while a bill waits for a payer:" }),
5737
+ /* @__PURE__ */ jsx17("div", { className: "mbnr-days", children: [30, 60, 90].map((day) => /* @__PURE__ */ jsxs17("label", { className: "mbnr-check", children: [
5738
+ /* @__PURE__ */ jsx17("input", { type: "checkbox", checked: preferences.agingDays.includes(day), onChange: (event) => setPreferences((value) => ({ ...value, agingDays: event.target.checked ? [...value.agingDays, day] : value.agingDays.filter((item) => item !== day) })) }),
5739
+ day,
5740
+ " days"
5741
+ ] }, day)) }),
5742
+ /* @__PURE__ */ jsxs17("label", { className: "mbnr-check", children: [
5743
+ /* @__PURE__ */ jsx17("input", { type: "checkbox", checked: preferences.quietHours, onChange: (event) => setPreferences((value) => ({ ...value, quietHours: event.target.checked })) }),
5744
+ "Quiet hours \xB7 7 pm\u20137 am Pacific"
5745
+ ] }),
5746
+ /* @__PURE__ */ jsxs17("label", { className: "mbnr-digest", children: [
5747
+ /* @__PURE__ */ jsx17("span", { children: "Scheduled activity digest" }),
5748
+ /* @__PURE__ */ jsxs17("select", { value: preferences.reportDigest ?? "off", onChange: (event) => setPreferences((value) => ({ ...value, reportDigest: event.target.value })), children: [
5749
+ /* @__PURE__ */ jsx17("option", { value: "off", children: "Off" }),
5750
+ /* @__PURE__ */ jsx17("option", { value: "daily", children: "Daily" }),
5751
+ /* @__PURE__ */ jsx17("option", { value: "weekly", children: "Weekly" })
5752
+ ] }),
5753
+ /* @__PURE__ */ jsx17("small", { className: "mbnr-muted", children: "Activity counts at 9 am Pacific, every day or every Monday. No financial reports or attachments." })
5754
+ ] })
5755
+ ] }),
5756
+ /* @__PURE__ */ jsx17("p", { className: "mbnr-muted", children: "Emails contain general alerts and activity counts, not patient details, reports or attachments. The recipient reviews these choices and can unsubscribe at any time." }),
5757
+ /* @__PURE__ */ jsxs17("div", { className: "mbnr-actions", children: [
5758
+ /* @__PURE__ */ jsx17("button", { type: "submit", className: "mbnr-primary", disabled: !canInvite, children: busy ? "Please wait\u2026" : "Send confirmation invitation" }),
5759
+ hasReceipt && /* @__PURE__ */ jsx17("button", { type: "button", disabled: busy, onClick: () => {
5760
+ pending.current = null;
5761
+ setHasReceipt(false);
5762
+ setEmail("");
5763
+ setPreferences(defaultNotificationPreferences());
5764
+ setNotice("New invitation form. Reinviting the same recipient replaces their previous confirmation link and turns notifications off until they confirm again.");
5765
+ }, children: "Start another invitation" })
5766
+ ] })
5767
+ ] }),
5768
+ notice && /* @__PURE__ */ jsx17("p", { className: `mbnr-notice ${failed ? "mbnr-error" : "mbnr-muted"}`, role: failed ? "alert" : "status", children: notice }),
5769
+ /* @__PURE__ */ jsxs17("div", { className: "mbnr-list", children: [
5770
+ /* @__PURE__ */ jsx17("h3", { children: "Recipients" }),
5771
+ !snapshot && busy ? /* @__PURE__ */ jsx17("p", { role: "status", children: "Loading recipients\u2026" }) : snapshot?.recipients.length === 0 ? /* @__PURE__ */ jsx17("p", { className: "mbnr-empty", children: "No recipients yet. Nothing is sent until someone accepts an invitation." }) : snapshot?.recipients.map((recipient) => /* @__PURE__ */ jsxs17("div", { className: "mbnr-recipient", children: [
5772
+ /* @__PURE__ */ jsxs17("div", { children: [
5773
+ /* @__PURE__ */ jsx17("p", { className: "mbnr-email", children: recipient.email }),
5774
+ /* @__PURE__ */ jsxs17("p", { className: "mbnr-muted", children: [
5775
+ recipient.audience === "practice" ? "Practice-wide" : `${recipient.assignedBillCount} assigned bills`,
5776
+ " \xB7 ",
5777
+ recipientCategories(recipient)
5778
+ ] }),
5779
+ recipient.deliveryStatus === "unknown" && /* @__PURE__ */ jsx17("p", { className: "mbnr-muted", children: "Invitation delivery unconfirmed. No automatic resend." })
5780
+ ] }),
5781
+ /* @__PURE__ */ jsxs17("div", { className: "mbnr-state", children: [
5782
+ /* @__PURE__ */ jsx17("span", { className: "mbnr-badge", children: { active: "On", pending_confirmation: "Pending confirmation \xB7 off", expired: "Invitation expired \xB7 off", off: "Off", unavailable: "Delivery unavailable" }[recipient.state] }),
5783
+ recipient.state !== "off" && /* @__PURE__ */ jsx17("button", { type: "button", disabled: busy, onClick: () => void mutate(async () => {
5784
+ await adapter.disable(recipient.externalUserId);
5785
+ return "Notifications disabled and pending invitations revoked.";
5786
+ }), children: "Disable" })
5787
+ ] })
5788
+ ] }, recipient.externalUserId))
5789
+ ] }),
5790
+ /* @__PURE__ */ jsxs17("div", { className: "mbnr-actions mbnr-pagination", children: [
5791
+ /* @__PURE__ */ jsx17("button", { type: "button", disabled: busy, onClick: () => {
5792
+ setNotice("");
5793
+ setFailed(false);
5794
+ setReload((value) => value + 1);
5795
+ }, children: "Reload recipients" }),
5796
+ offset > 0 && /* @__PURE__ */ jsx17("button", { type: "button", disabled: busy, onClick: () => setOffset((value) => Math.max(0, value - 100)), children: "Previous" }),
5797
+ snapshot?.hasMore && /* @__PURE__ */ jsx17("button", { type: "button", disabled: busy, onClick: () => setOffset((value) => value + 100), children: "Next" })
5798
+ ] })
5799
+ ] })
5800
+ ] });
5801
+ }
5802
+
5595
5803
  // src/connected-bill-status.tsx
5596
5804
  import {
5597
5805
  useCallback as useCallback3,
5598
- useEffect as useEffect11,
5806
+ useEffect as useEffect12,
5599
5807
  useMemo as useMemo8,
5600
- useRef as useRef6,
5601
- useState as useState13
5808
+ useRef as useRef7,
5809
+ useState as useState14
5602
5810
  } from "react";
5603
5811
  import {
5604
5812
  DEFAULT_API_BASE_URL as DEFAULT_API_BASE_URL2,
5605
5813
  DEFAULT_SESSION_ENDPOINT as DEFAULT_SESSION_ENDPOINT2
5606
5814
  } from "@mindbill/browser";
5607
- import { Fragment as Fragment12, jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
5815
+ import { Fragment as Fragment12, jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
5608
5816
  var DEFAULT_REFRESH_INTERVAL = 6e4;
5609
5817
  async function responseError2(response, fallback) {
5610
5818
  const body = await response.json().catch(() => null);
@@ -5744,16 +5952,16 @@ function useBillStatus({
5744
5952
  apiBaseUrl,
5745
5953
  ...fetchOverride ? { fetch: fetchOverride } : {}
5746
5954
  }), [apiBaseUrl, billId, fetchOverride, getSession, sessionEndpoint]);
5747
- const [data, setData] = useState13(initialData);
5748
- const [error, setError] = useState13(null);
5749
- const [isLoading, setIsLoading] = useState13(enabled && !initialData);
5750
- const [isRefreshing, setIsRefreshing] = useState13(false);
5751
- const dataRef = useRef6(initialData);
5752
- const initialDataRef = useRef6(initialData);
5955
+ const [data, setData] = useState14(initialData);
5956
+ const [error, setError] = useState14(null);
5957
+ const [isLoading, setIsLoading] = useState14(enabled && !initialData);
5958
+ const [isRefreshing, setIsRefreshing] = useState14(false);
5959
+ const dataRef = useRef7(initialData);
5960
+ const initialDataRef = useRef7(initialData);
5753
5961
  initialDataRef.current = initialData;
5754
- const activeControllerRef = useRef6(null);
5755
- const requestSequence = useRef6(0);
5756
- useEffect11(() => {
5962
+ const activeControllerRef = useRef7(null);
5963
+ const requestSequence = useRef7(0);
5964
+ useEffect12(() => {
5757
5965
  const seed = initialDataRef.current;
5758
5966
  dataRef.current = seed;
5759
5967
  setData(seed);
@@ -5794,10 +6002,10 @@ function useBillStatus({
5794
6002
  }
5795
6003
  }
5796
6004
  }, [billId, client, enabled]);
5797
- useEffect11(() => {
6005
+ useEffect12(() => {
5798
6006
  if (enabled) void load();
5799
6007
  }, [enabled, load]);
5800
- useEffect11(() => {
6008
+ useEffect12(() => {
5801
6009
  if (!enabled || refreshInterval <= 0) return;
5802
6010
  const timer = window.setInterval(() => void load(), refreshInterval);
5803
6011
  const onFocus = () => void load();
@@ -5825,17 +6033,17 @@ function ConnectedBillStatus({
5825
6033
  }) {
5826
6034
  const status = useBillStatus(options);
5827
6035
  if (status.isLoading && !status.data) {
5828
- return /* @__PURE__ */ jsx17(Fragment12, { children: loadingFallback ?? /* @__PURE__ */ jsx17("div", { role: "status", children: "Loading bill status\u2026" }) });
6036
+ return /* @__PURE__ */ jsx18(Fragment12, { children: loadingFallback ?? /* @__PURE__ */ jsx18("div", { role: "status", children: "Loading bill status\u2026" }) });
5829
6037
  }
5830
6038
  if (status.error && !status.data) {
5831
- return /* @__PURE__ */ jsx17(Fragment12, { children: errorFallback?.(status.error, status.refresh) ?? /* @__PURE__ */ jsxs17("div", { role: "alert", children: [
6039
+ return /* @__PURE__ */ jsx18(Fragment12, { children: errorFallback?.(status.error, status.refresh) ?? /* @__PURE__ */ jsxs18("div", { role: "alert", children: [
5832
6040
  status.error.message,
5833
6041
  " ",
5834
- /* @__PURE__ */ jsx17("button", { type: "button", onClick: () => void status.refresh(), children: "Retry" })
6042
+ /* @__PURE__ */ jsx18("button", { type: "button", onClick: () => void status.refresh(), children: "Retry" })
5835
6043
  ] }) });
5836
6044
  }
5837
6045
  if (!status.data) return null;
5838
- return /* @__PURE__ */ jsx17(
6046
+ return /* @__PURE__ */ jsx18(
5839
6047
  BillStatusSummary,
5840
6048
  {
5841
6049
  status: status.data.state,
@@ -5854,8 +6062,8 @@ function ConnectedBillStatus({
5854
6062
  }
5855
6063
 
5856
6064
  // src/bill-lifecycle-surfaces.tsx
5857
- import { useEffect as useEffect12, useRef as useRef7, useState as useState14 } from "react";
5858
- import { Fragment as Fragment13, jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
6065
+ import { useEffect as useEffect13, useRef as useRef8, useState as useState15 } from "react";
6066
+ import { Fragment as Fragment13, jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
5859
6067
  function visibleBillLifecycleActions(actions, showUnavailable = false) {
5860
6068
  return actions.filter((action) => action.enabled || showUnavailable);
5861
6069
  }
@@ -5870,11 +6078,11 @@ function BillLifecycleActions({
5870
6078
  }) {
5871
6079
  const visible = visibleBillLifecycleActions(actions, showUnavailable);
5872
6080
  if (!visible.length) return null;
5873
- return /* @__PURE__ */ jsxs18("div", { className: classes("mb-lifecycle-actions", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill actions", children: [
5874
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
5875
- visible.map((action) => /* @__PURE__ */ jsxs18("div", { className: "mb-lifecycle-action", children: [
5876
- /* @__PURE__ */ jsx18("button", { type: "button", className: action.primary ? "mb-action-button is-primary" : "mb-action-button", disabled: disabled || !action.enabled, onClick: () => onAction(action), children: action.label }),
5877
- !action.enabled && action.reason ? /* @__PURE__ */ jsx18("span", { className: "mb-action-reason", children: action.reason }) : null
6081
+ return /* @__PURE__ */ jsxs19("div", { className: classes("mb-lifecycle-actions", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill actions", children: [
6082
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6083
+ visible.map((action) => /* @__PURE__ */ jsxs19("div", { className: "mb-lifecycle-action", children: [
6084
+ /* @__PURE__ */ jsx19("button", { type: "button", className: action.primary ? "mb-action-button is-primary" : "mb-action-button", disabled: disabled || !action.enabled, onClick: () => onAction(action), children: action.label }),
6085
+ !action.enabled && action.reason ? /* @__PURE__ */ jsx19("span", { className: "mb-action-reason", children: action.reason }) : null
5878
6086
  ] }, action.id))
5879
6087
  ] });
5880
6088
  }
@@ -5904,18 +6112,18 @@ function defaultFormatDate(createdAt) {
5904
6112
  return new Intl.DateTimeFormat(void 0, { dateStyle: "medium", timeStyle: "short" }).format(parsed);
5905
6113
  }
5906
6114
  function BillActivityTimeline({ events, emptyLabel = "No bill activity yet.", appearance, className, style, formatDate = defaultFormatDate }) {
5907
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-activity", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill activity", children: [
5908
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
5909
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
5910
- /* @__PURE__ */ jsx18("strong", { children: "Bill history" }),
5911
- /* @__PURE__ */ jsx18("span", { children: "Submission, payer responses, follow-up, and payments." })
6115
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-activity", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill activity", children: [
6116
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6117
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6118
+ /* @__PURE__ */ jsx19("strong", { children: "Bill history" }),
6119
+ /* @__PURE__ */ jsx19("span", { children: "Submission, payer responses, follow-up, and payments." })
5912
6120
  ] }) }),
5913
- !events.length ? /* @__PURE__ */ jsx18("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsx18("ol", { className: "mb-activity-list", children: events.map((event) => /* @__PURE__ */ jsxs18("li", { className: "mb-activity-item", children: [
5914
- /* @__PURE__ */ jsx18("span", { className: "mb-activity-marker", "aria-hidden": "true" }),
5915
- /* @__PURE__ */ jsxs18("div", { className: "mb-activity-content", children: [
5916
- /* @__PURE__ */ jsx18("strong", { children: event.title ?? billActivityEventLabel(event.type) }),
5917
- event.description ? /* @__PURE__ */ jsx18("p", { children: event.description }) : null,
5918
- /* @__PURE__ */ jsxs18("span", { children: [
6121
+ !events.length ? /* @__PURE__ */ jsx19("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsx19("ol", { className: "mb-activity-list", children: events.map((event) => /* @__PURE__ */ jsxs19("li", { className: "mb-activity-item", children: [
6122
+ /* @__PURE__ */ jsx19("span", { className: "mb-activity-marker", "aria-hidden": "true" }),
6123
+ /* @__PURE__ */ jsxs19("div", { className: "mb-activity-content", children: [
6124
+ /* @__PURE__ */ jsx19("strong", { children: event.title ?? billActivityEventLabel(event.type) }),
6125
+ event.description ? /* @__PURE__ */ jsx19("p", { children: event.description }) : null,
6126
+ /* @__PURE__ */ jsxs19("span", { children: [
5919
6127
  formatDate(event.createdAt),
5920
6128
  event.actor ? ` \xB7 ${event.actor}` : ""
5921
6129
  ] })
@@ -5929,49 +6137,49 @@ function historyDate(iso) {
5929
6137
  return new Intl.DateTimeFormat("en-US", { month: "2-digit", day: "2-digit", year: "numeric" }).format(parsed);
5930
6138
  }
5931
6139
  function BillHistoryTable({ entries, selectedEntryId, emptyLabel = "No bill history yet.", appearance, className, style, formatDate = historyDate, documentHref, onOpenDocument }) {
5932
- const [expanded, setExpanded] = useState14({});
5933
- const selectedRowRef = useRef7(null);
5934
- useEffect12(() => {
6140
+ const [expanded, setExpanded] = useState15({});
6141
+ const selectedRowRef = useRef8(null);
6142
+ useEffect13(() => {
5935
6143
  if (!selectedEntryId) return;
5936
6144
  const selected = entries.find((entry) => entry.id === selectedEntryId);
5937
6145
  if (selected?.details) setExpanded((current) => current[selectedEntryId] ? current : { ...current, [selectedEntryId]: true });
5938
6146
  selectedRowRef.current?.scrollIntoView({ behavior: "smooth", block: "center" });
5939
6147
  }, [entries, selectedEntryId]);
5940
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-history", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill history", children: [
5941
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
5942
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
5943
- /* @__PURE__ */ jsx18("strong", { children: "Bill history" }),
5944
- /* @__PURE__ */ jsx18("span", { children: "Submissions, payer responses, follow-up, and payments." })
6148
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-history", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill history", children: [
6149
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6150
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6151
+ /* @__PURE__ */ jsx19("strong", { children: "Bill history" }),
6152
+ /* @__PURE__ */ jsx19("span", { children: "Submissions, payer responses, follow-up, and payments." })
5945
6153
  ] }) }),
5946
- !entries.length ? /* @__PURE__ */ jsx18("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsxs18("div", { className: "mb-history-table", children: [
5947
- /* @__PURE__ */ jsxs18("div", { className: "mb-history-head", "aria-hidden": "true", children: [
5948
- /* @__PURE__ */ jsx18("span", { children: "Date" }),
5949
- /* @__PURE__ */ jsx18("span", { children: "Action" }),
5950
- /* @__PURE__ */ jsx18("span", { children: "User" }),
5951
- /* @__PURE__ */ jsx18("span", { children: "Details" })
6154
+ !entries.length ? /* @__PURE__ */ jsx19("p", { className: "mb-activity-empty", children: emptyLabel }) : /* @__PURE__ */ jsxs19("div", { className: "mb-history-table", children: [
6155
+ /* @__PURE__ */ jsxs19("div", { className: "mb-history-head", "aria-hidden": "true", children: [
6156
+ /* @__PURE__ */ jsx19("span", { children: "Date" }),
6157
+ /* @__PURE__ */ jsx19("span", { children: "Action" }),
6158
+ /* @__PURE__ */ jsx19("span", { children: "User" }),
6159
+ /* @__PURE__ */ jsx19("span", { children: "Details" })
5952
6160
  ] }),
5953
- /* @__PURE__ */ jsx18("ul", { className: "mb-history-rows", children: entries.map((entry) => {
6161
+ /* @__PURE__ */ jsx19("ul", { className: "mb-history-rows", children: entries.map((entry) => {
5954
6162
  const isSelected = entry.id === selectedEntryId;
5955
6163
  const expandable = Boolean(entry.details);
5956
6164
  const isOpen = expandable && Boolean(expanded[entry.id]);
5957
6165
  const details = entry.details;
5958
- const lineContents = /* @__PURE__ */ jsxs18(Fragment13, { children: [
5959
- /* @__PURE__ */ jsx18("span", { className: "mb-history-date", children: formatDate(entry.date) }),
5960
- /* @__PURE__ */ jsx18("span", { className: "mb-history-action", children: entry.action }),
5961
- /* @__PURE__ */ jsx18("span", { className: "mb-history-actor", children: entry.actor ?? "\u2014" }),
5962
- /* @__PURE__ */ jsxs18("span", { className: "mb-history-summary", children: [
5963
- expandable ? /* @__PURE__ */ jsx18("i", { className: `mb-history-caret${isOpen ? " is-open" : ""}`, "aria-hidden": "true" }) : null,
6166
+ const lineContents = /* @__PURE__ */ jsxs19(Fragment13, { children: [
6167
+ /* @__PURE__ */ jsx19("span", { className: "mb-history-date", children: formatDate(entry.date) }),
6168
+ /* @__PURE__ */ jsx19("span", { className: "mb-history-action", children: entry.action }),
6169
+ /* @__PURE__ */ jsx19("span", { className: "mb-history-actor", children: entry.actor ?? "\u2014" }),
6170
+ /* @__PURE__ */ jsxs19("span", { className: "mb-history-summary", children: [
6171
+ expandable ? /* @__PURE__ */ jsx19("i", { className: `mb-history-caret${isOpen ? " is-open" : ""}`, "aria-hidden": "true" }) : null,
5964
6172
  entry.summary
5965
6173
  ] })
5966
6174
  ] });
5967
- return /* @__PURE__ */ jsxs18(
6175
+ return /* @__PURE__ */ jsxs19(
5968
6176
  "li",
5969
6177
  {
5970
6178
  ref: isSelected ? selectedRowRef : void 0,
5971
6179
  className: `mb-history-row is-${entry.tone}${isSelected ? " is-selected" : ""}`,
5972
6180
  "aria-current": isSelected ? "true" : void 0,
5973
6181
  children: [
5974
- expandable ? /* @__PURE__ */ jsx18(
6182
+ expandable ? /* @__PURE__ */ jsx19(
5975
6183
  "button",
5976
6184
  {
5977
6185
  type: "button",
@@ -5980,31 +6188,31 @@ function BillHistoryTable({ entries, selectedEntryId, emptyLabel = "No bill hist
5980
6188
  onClick: () => setExpanded((current) => ({ ...current, [entry.id]: !current[entry.id] })),
5981
6189
  children: lineContents
5982
6190
  }
5983
- ) : /* @__PURE__ */ jsx18("div", { className: "mb-history-line", children: lineContents }),
5984
- isOpen && details ? /* @__PURE__ */ jsxs18("div", { className: "mb-history-details", children: [
5985
- details.rows?.length ? /* @__PURE__ */ jsx18("dl", { className: "mb-history-kv", children: details.rows.map((row) => /* @__PURE__ */ jsxs18("div", { children: [
5986
- /* @__PURE__ */ jsx18("dt", { children: row.label }),
5987
- /* @__PURE__ */ jsx18("dd", { children: row.value })
6191
+ ) : /* @__PURE__ */ jsx19("div", { className: "mb-history-line", children: lineContents }),
6192
+ isOpen && details ? /* @__PURE__ */ jsxs19("div", { className: "mb-history-details", children: [
6193
+ details.rows?.length ? /* @__PURE__ */ jsx19("dl", { className: "mb-history-kv", children: details.rows.map((row) => /* @__PURE__ */ jsxs19("div", { children: [
6194
+ /* @__PURE__ */ jsx19("dt", { children: row.label }),
6195
+ /* @__PURE__ */ jsx19("dd", { children: row.value })
5988
6196
  ] }, `${row.label}-${row.value}`)) }) : null,
5989
- details.documents?.length ? /* @__PURE__ */ jsx18("div", { className: "mb-history-kv", children: /* @__PURE__ */ jsxs18("div", { children: [
5990
- /* @__PURE__ */ jsx18("dt", { children: "Documents" }),
5991
- /* @__PURE__ */ jsx18("dd", { children: details.documents.map((doc) => {
6197
+ details.documents?.length ? /* @__PURE__ */ jsx19("div", { className: "mb-history-kv", children: /* @__PURE__ */ jsxs19("div", { children: [
6198
+ /* @__PURE__ */ jsx19("dt", { children: "Documents" }),
6199
+ /* @__PURE__ */ jsx19("dd", { children: details.documents.map((doc) => {
5992
6200
  const href = documentHref?.(doc) ?? null;
5993
- return href ? /* @__PURE__ */ jsx18("a", { className: "mb-history-doc", href, target: "_blank", rel: "noreferrer", children: doc.filename }, doc.id) : onOpenDocument ? /* @__PURE__ */ jsx18("button", { type: "button", className: "mb-history-doc", onClick: () => void onOpenDocument(doc), children: doc.filename }, doc.id) : /* @__PURE__ */ jsx18("span", { className: "mb-history-doc", children: doc.filename }, doc.id);
6201
+ return href ? /* @__PURE__ */ jsx19("a", { className: "mb-history-doc", href, target: "_blank", rel: "noreferrer", children: doc.filename }, doc.id) : onOpenDocument ? /* @__PURE__ */ jsx19("button", { type: "button", className: "mb-history-doc", onClick: () => void onOpenDocument(doc), children: doc.filename }, doc.id) : /* @__PURE__ */ jsx19("span", { className: "mb-history-doc", children: doc.filename }, doc.id);
5994
6202
  }) })
5995
6203
  ] }) }) : null,
5996
- details.codes?.length ? /* @__PURE__ */ jsx18("dl", { className: "mb-history-codes", children: details.codes.map((code) => /* @__PURE__ */ jsxs18("div", { children: [
5997
- /* @__PURE__ */ jsx18("dt", { children: code.code }),
5998
- /* @__PURE__ */ jsx18("dd", { children: code.text })
6204
+ details.codes?.length ? /* @__PURE__ */ jsx19("dl", { className: "mb-history-codes", children: details.codes.map((code) => /* @__PURE__ */ jsxs19("div", { children: [
6205
+ /* @__PURE__ */ jsx19("dt", { children: code.code }),
6206
+ /* @__PURE__ */ jsx19("dd", { children: code.text })
5999
6207
  ] }, code.code)) }) : null,
6000
- details.complianceDueDates?.length ? /* @__PURE__ */ jsxs18("div", { className: "mb-history-due", children: [
6001
- /* @__PURE__ */ jsx18("em", { children: "Compliance Due Dates" }),
6002
- /* @__PURE__ */ jsx18("dl", { children: details.complianceDueDates.map((due) => /* @__PURE__ */ jsxs18("div", { children: [
6003
- /* @__PURE__ */ jsx18("dt", { children: formatDate(due.date) }),
6004
- /* @__PURE__ */ jsx18("dd", { children: due.text })
6208
+ details.complianceDueDates?.length ? /* @__PURE__ */ jsxs19("div", { className: "mb-history-due", children: [
6209
+ /* @__PURE__ */ jsx19("em", { children: "Compliance Due Dates" }),
6210
+ /* @__PURE__ */ jsx19("dl", { children: details.complianceDueDates.map((due) => /* @__PURE__ */ jsxs19("div", { children: [
6211
+ /* @__PURE__ */ jsx19("dt", { children: formatDate(due.date) }),
6212
+ /* @__PURE__ */ jsx19("dd", { children: due.text })
6005
6213
  ] }, `${due.date}-${due.text}`)) })
6006
6214
  ] }) : null,
6007
- details.text ? /* @__PURE__ */ jsx18("p", { className: "mb-history-text", children: details.text }) : null
6215
+ details.text ? /* @__PURE__ */ jsx19("p", { className: "mb-history-text", children: details.text }) : null
6008
6216
  ] }) : null
6009
6217
  ]
6010
6218
  },
@@ -6065,15 +6273,15 @@ function BillLifecycleProgress({ state, nativeStatus, submittedAt, agingDays, dr
6065
6273
  const rejected = state.toLowerCase() === "rejected";
6066
6274
  const draft = Boolean(draftStage) && isBillLifecycleDraft(state);
6067
6275
  const steps = billLifecycleProgressSteps(state, { draftStage: Boolean(draftStage) });
6068
- return /* @__PURE__ */ jsxs18("section", { className: classes(`mb-surface mb-progress${rejected ? " is-rejected" : ""}`, className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill lifecycle", children: [
6069
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6070
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
6071
- /* @__PURE__ */ jsx18("strong", { children: billLifecycleDisplayLabel(state, nativeStatus) }),
6072
- /* @__PURE__ */ jsx18("span", { children: rejected ? "The payer rejected this submission." : draft ? "Not yet sent" : `${submittedAt ? `Submitted ${defaultFormatDate(submittedAt)}` : "Submitted"}${typeof agingDays === "number" ? ` \xB7 ${agingDays} days old` : ""}` })
6276
+ return /* @__PURE__ */ jsxs19("section", { className: classes(`mb-surface mb-progress${rejected ? " is-rejected" : ""}`, className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill lifecycle", children: [
6277
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6278
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6279
+ /* @__PURE__ */ jsx19("strong", { children: billLifecycleDisplayLabel(state, nativeStatus) }),
6280
+ /* @__PURE__ */ jsx19("span", { children: rejected ? "The payer rejected this submission." : draft ? "Not yet sent" : `${submittedAt ? `Submitted ${defaultFormatDate(submittedAt)}` : "Submitted"}${typeof agingDays === "number" ? ` \xB7 ${agingDays} days old` : ""}` })
6073
6281
  ] }) }),
6074
- /* @__PURE__ */ jsx18("ol", { className: "mb-progress-list", style: { gridTemplateColumns: `repeat(${steps.length}, minmax(0, 1fr))` }, children: steps.map((step, index) => /* @__PURE__ */ jsxs18("li", { className: `is-${step.status}`, "aria-current": step.status === "current" ? "step" : void 0, children: [
6075
- /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", children: step.status === "complete" ? "\u2713" : rejected && step.status === "current" ? "!" : index + 1 }),
6076
- /* @__PURE__ */ jsx18("b", { children: step.label })
6282
+ /* @__PURE__ */ jsx19("ol", { className: "mb-progress-list", style: { gridTemplateColumns: `repeat(${steps.length}, minmax(0, 1fr))` }, children: steps.map((step, index) => /* @__PURE__ */ jsxs19("li", { className: `is-${step.status}`, "aria-current": step.status === "current" ? "step" : void 0, children: [
6283
+ /* @__PURE__ */ jsx19("span", { "aria-hidden": "true", children: step.status === "complete" ? "\u2713" : rejected && step.status === "current" ? "!" : index + 1 }),
6284
+ /* @__PURE__ */ jsx19("b", { children: step.label })
6077
6285
  ] }, step.id)) })
6078
6286
  ] });
6079
6287
  }
@@ -6087,48 +6295,48 @@ function billRejectionIssueSummary(rejection, count) {
6087
6295
  function BillRejectionNotice({ rejection, title = "Rejected \u2014 action required", submittedAt, appearance, className, style, formatDate = defaultFormatDate }) {
6088
6296
  const issues = rejection.issues?.length ? rejection.issues : [{ code: rejection.code, description: rejection.reason }];
6089
6297
  const hasCodes = issues.some((issue) => Boolean(issue.code));
6090
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-rejection-notice", className), style: mindBillAppearanceStyle(appearance, style), role: "alert", "aria-label": "Bill rejection reasons", children: [
6091
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6092
- /* @__PURE__ */ jsxs18("div", { className: "mb-rejection-overview", children: [
6093
- /* @__PURE__ */ jsxs18("header", { className: "mb-rejection-heading", children: [
6094
- /* @__PURE__ */ jsx18("span", { className: "mb-rejection-icon", "aria-hidden": "true", children: "!" }),
6095
- /* @__PURE__ */ jsxs18("div", { children: [
6096
- /* @__PURE__ */ jsx18("strong", { children: title }),
6097
- /* @__PURE__ */ jsxs18("span", { children: [
6298
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-rejection-notice", className), style: mindBillAppearanceStyle(appearance, style), role: "alert", "aria-label": "Bill rejection reasons", children: [
6299
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6300
+ /* @__PURE__ */ jsxs19("div", { className: "mb-rejection-overview", children: [
6301
+ /* @__PURE__ */ jsxs19("header", { className: "mb-rejection-heading", children: [
6302
+ /* @__PURE__ */ jsx19("span", { className: "mb-rejection-icon", "aria-hidden": "true", children: "!" }),
6303
+ /* @__PURE__ */ jsxs19("div", { children: [
6304
+ /* @__PURE__ */ jsx19("strong", { children: title }),
6305
+ /* @__PURE__ */ jsxs19("span", { children: [
6098
6306
  "Fix the ",
6099
6307
  issues.length === 1 ? "issue" : "issues",
6100
6308
  " below, then resubmit."
6101
6309
  ] })
6102
6310
  ] })
6103
6311
  ] }),
6104
- /* @__PURE__ */ jsxs18("ol", { className: "mb-rejection-progress", "aria-label": "Submission status", children: [
6105
- /* @__PURE__ */ jsxs18("li", { className: "is-complete", children: [
6106
- /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", children: "\u2713" }),
6107
- /* @__PURE__ */ jsx18("b", { children: "Sent" }),
6108
- submittedAt ? /* @__PURE__ */ jsx18("small", { children: formatDate(submittedAt) }) : null
6312
+ /* @__PURE__ */ jsxs19("ol", { className: "mb-rejection-progress", "aria-label": "Submission status", children: [
6313
+ /* @__PURE__ */ jsxs19("li", { className: "is-complete", children: [
6314
+ /* @__PURE__ */ jsx19("span", { "aria-hidden": "true", children: "\u2713" }),
6315
+ /* @__PURE__ */ jsx19("b", { children: "Sent" }),
6316
+ submittedAt ? /* @__PURE__ */ jsx19("small", { children: formatDate(submittedAt) }) : null
6109
6317
  ] }),
6110
- /* @__PURE__ */ jsxs18("li", { className: "is-rejected", "aria-current": "step", children: [
6111
- /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", children: "!" }),
6112
- /* @__PURE__ */ jsx18("b", { children: "Rejected" }),
6113
- rejection.receivedAt ? /* @__PURE__ */ jsx18("small", { children: formatDate(rejection.receivedAt) }) : null
6318
+ /* @__PURE__ */ jsxs19("li", { className: "is-rejected", "aria-current": "step", children: [
6319
+ /* @__PURE__ */ jsx19("span", { "aria-hidden": "true", children: "!" }),
6320
+ /* @__PURE__ */ jsx19("b", { children: "Rejected" }),
6321
+ rejection.receivedAt ? /* @__PURE__ */ jsx19("small", { children: formatDate(rejection.receivedAt) }) : null
6114
6322
  ] })
6115
6323
  ] })
6116
6324
  ] }),
6117
- /* @__PURE__ */ jsxs18("div", { className: "mb-rejection-issues", "aria-label": "Rejection reasons", children: [
6118
- /* @__PURE__ */ jsxs18("div", { className: "mb-rejection-issues-heading", children: [
6119
- /* @__PURE__ */ jsxs18("strong", { children: [
6120
- /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", children: "\u25B3" }),
6325
+ /* @__PURE__ */ jsxs19("div", { className: "mb-rejection-issues", "aria-label": "Rejection reasons", children: [
6326
+ /* @__PURE__ */ jsxs19("div", { className: "mb-rejection-issues-heading", children: [
6327
+ /* @__PURE__ */ jsxs19("strong", { children: [
6328
+ /* @__PURE__ */ jsx19("span", { "aria-hidden": "true", children: "\u25B3" }),
6121
6329
  " Rejection reasons"
6122
6330
  ] }),
6123
- /* @__PURE__ */ jsx18("span", { children: billRejectionIssueSummary(rejection, issues.length) })
6331
+ /* @__PURE__ */ jsx19("span", { children: billRejectionIssueSummary(rejection, issues.length) })
6124
6332
  ] }),
6125
- /* @__PURE__ */ jsx18("ol", { "aria-label": `${issues.length} rejection ${issues.length === 1 ? "reason" : "reasons"}`, children: issues.map((issue, index) => /* @__PURE__ */ jsxs18("li", { children: [
6126
- /* @__PURE__ */ jsx18("span", { className: "mb-rejection-bullet", "aria-hidden": "true" }),
6127
- /* @__PURE__ */ jsx18("p", { children: issue.description }),
6128
- issue.code ? /* @__PURE__ */ jsx18("span", { className: "mb-rejection-code", children: issue.code }) : null
6333
+ /* @__PURE__ */ jsx19("ol", { "aria-label": `${issues.length} rejection ${issues.length === 1 ? "reason" : "reasons"}`, children: issues.map((issue, index) => /* @__PURE__ */ jsxs19("li", { children: [
6334
+ /* @__PURE__ */ jsx19("span", { className: "mb-rejection-bullet", "aria-hidden": "true" }),
6335
+ /* @__PURE__ */ jsx19("p", { children: issue.description }),
6336
+ issue.code ? /* @__PURE__ */ jsx19("span", { className: "mb-rejection-code", children: issue.code }) : null
6129
6337
  ] }, `${issue.code ?? "issue"}-${index}`)) }),
6130
- hasCodes ? /* @__PURE__ */ jsxs18("p", { className: "mb-rejection-code-note", children: [
6131
- /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", children: "i" }),
6338
+ hasCodes ? /* @__PURE__ */ jsxs19("p", { className: "mb-rejection-code-note", children: [
6339
+ /* @__PURE__ */ jsx19("span", { "aria-hidden": "true", children: "i" }),
6132
6340
  " Technical error codes are included for support and auditability."
6133
6341
  ] }) : null
6134
6342
  ] })
@@ -6143,18 +6351,18 @@ function BillSnapshotSummary({ bill, patient, injury, delivery, appearance, clas
6143
6351
  ["Charged", currency(bill.totalCharge)],
6144
6352
  ["Balance", currency(bill.balanceDue)]
6145
6353
  ];
6146
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-snapshot", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill snapshot", children: [
6147
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6148
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
6149
- /* @__PURE__ */ jsx18("strong", { children: "Bill snapshot" }),
6150
- /* @__PURE__ */ jsxs18("span", { children: [
6354
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-snapshot", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Bill snapshot", children: [
6355
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6356
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6357
+ /* @__PURE__ */ jsx19("strong", { children: "Bill snapshot" }),
6358
+ /* @__PURE__ */ jsxs19("span", { children: [
6151
6359
  "Bill #",
6152
6360
  bill.billNumber
6153
6361
  ] })
6154
6362
  ] }) }),
6155
- /* @__PURE__ */ jsx18("dl", { children: values.map(([label, value]) => /* @__PURE__ */ jsxs18("div", { children: [
6156
- /* @__PURE__ */ jsx18("dt", { children: label }),
6157
- /* @__PURE__ */ jsx18("dd", { children: value })
6363
+ /* @__PURE__ */ jsx19("dl", { children: values.map(([label, value]) => /* @__PURE__ */ jsxs19("div", { children: [
6364
+ /* @__PURE__ */ jsx19("dt", { children: label }),
6365
+ /* @__PURE__ */ jsx19("dd", { children: value })
6158
6366
  ] }, label)) })
6159
6367
  ] });
6160
6368
  }
@@ -6169,140 +6377,140 @@ function BillExplanationOfReview({
6169
6377
  style
6170
6378
  }) {
6171
6379
  const rows = payments.length ? payments : [null];
6172
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-eor-review", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Explanation of Review and payments", children: [
6173
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6174
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
6175
- /* @__PURE__ */ jsx18("strong", { children: "Explanation of Review" }),
6176
- /* @__PURE__ */ jsx18("span", { children: "Payer response and payment reconciliation." })
6380
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-eor-review", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Explanation of Review and payments", children: [
6381
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6382
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6383
+ /* @__PURE__ */ jsx19("strong", { children: "Explanation of Review" }),
6384
+ /* @__PURE__ */ jsx19("span", { children: "Payer response and payment reconciliation." })
6177
6385
  ] }) }),
6178
- /* @__PURE__ */ jsxs18("dl", { className: "mb-eor-metrics", children: [
6179
- /* @__PURE__ */ jsxs18("div", { children: [
6180
- /* @__PURE__ */ jsx18("dt", { children: "Amount billed" }),
6181
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.billedAmount) })
6386
+ /* @__PURE__ */ jsxs19("dl", { className: "mb-eor-metrics", children: [
6387
+ /* @__PURE__ */ jsxs19("div", { children: [
6388
+ /* @__PURE__ */ jsx19("dt", { children: "Amount billed" }),
6389
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.billedAmount) })
6182
6390
  ] }),
6183
- /* @__PURE__ */ jsxs18("div", { children: [
6184
- /* @__PURE__ */ jsx18("dt", { children: "Payer allowed" }),
6185
- /* @__PURE__ */ jsx18("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
6391
+ /* @__PURE__ */ jsxs19("div", { children: [
6392
+ /* @__PURE__ */ jsx19("dt", { children: "Payer allowed" }),
6393
+ /* @__PURE__ */ jsx19("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
6186
6394
  ] }),
6187
- /* @__PURE__ */ jsxs18("div", { children: [
6188
- /* @__PURE__ */ jsx18("dt", { children: "Payer reported paid" }),
6189
- /* @__PURE__ */ jsx18("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
6395
+ /* @__PURE__ */ jsxs19("div", { children: [
6396
+ /* @__PURE__ */ jsx19("dt", { children: "Payer reported paid" }),
6397
+ /* @__PURE__ */ jsx19("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
6190
6398
  ] }),
6191
- /* @__PURE__ */ jsxs18("div", { className: "is-balance", children: [
6192
- /* @__PURE__ */ jsx18("dt", { children: "Balance due" }),
6193
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.balanceDue) })
6399
+ /* @__PURE__ */ jsxs19("div", { className: "is-balance", children: [
6400
+ /* @__PURE__ */ jsx19("dt", { children: "Balance due" }),
6401
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.balanceDue) })
6194
6402
  ] }),
6195
- /* @__PURE__ */ jsxs18("div", { children: [
6196
- /* @__PURE__ */ jsx18("dt", { children: "Payment posted" }),
6197
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.postedPrincipal) })
6403
+ /* @__PURE__ */ jsxs19("div", { children: [
6404
+ /* @__PURE__ */ jsx19("dt", { children: "Payment posted" }),
6405
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.postedPrincipal) })
6198
6406
  ] }),
6199
- /* @__PURE__ */ jsxs18("div", { children: [
6200
- /* @__PURE__ */ jsx18("dt", { children: "Penalty & interest" }),
6201
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.postedAdditional) })
6407
+ /* @__PURE__ */ jsxs19("div", { children: [
6408
+ /* @__PURE__ */ jsx19("dt", { children: "Penalty & interest" }),
6409
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.postedAdditional) })
6202
6410
  ] }),
6203
- /* @__PURE__ */ jsxs18("div", { children: [
6204
- /* @__PURE__ */ jsx18("dt", { children: "Total received" }),
6205
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.totalPostedCash) })
6411
+ /* @__PURE__ */ jsxs19("div", { children: [
6412
+ /* @__PURE__ */ jsx19("dt", { children: "Total received" }),
6413
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.totalPostedCash) })
6206
6414
  ] }),
6207
- /* @__PURE__ */ jsxs18("div", { children: [
6208
- /* @__PURE__ */ jsx18("dt", { children: "Expected" }),
6209
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.expectedAmount) })
6415
+ /* @__PURE__ */ jsxs19("div", { children: [
6416
+ /* @__PURE__ */ jsx19("dt", { children: "Expected" }),
6417
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.expectedAmount) })
6210
6418
  ] })
6211
6419
  ] }),
6212
- remittance.denialReason ? /* @__PURE__ */ jsxs18("div", { className: "mb-denial", children: [
6213
- /* @__PURE__ */ jsx18("strong", { children: "Denial reason" }),
6214
- /* @__PURE__ */ jsx18("p", { children: remittance.denialReason })
6420
+ remittance.denialReason ? /* @__PURE__ */ jsxs19("div", { className: "mb-denial", children: [
6421
+ /* @__PURE__ */ jsx19("strong", { children: "Denial reason" }),
6422
+ /* @__PURE__ */ jsx19("p", { children: remittance.denialReason })
6215
6423
  ] }) : null,
6216
- /* @__PURE__ */ jsx18("div", { className: "mb-eor-table-wrap", children: /* @__PURE__ */ jsxs18("table", { className: "mb-eor-table", children: [
6217
- /* @__PURE__ */ jsxs18("thead", { children: [
6218
- /* @__PURE__ */ jsxs18("tr", { className: "mb-eor-groups", children: [
6219
- /* @__PURE__ */ jsx18("th", { colSpan: 2, children: "Submission" }),
6220
- /* @__PURE__ */ jsx18("th", { colSpan: 5, children: "EOR payment information" }),
6221
- /* @__PURE__ */ jsx18("th", { colSpan: 2, children: "EOR post" }),
6222
- /* @__PURE__ */ jsx18("th", { children: "EOR" })
6424
+ /* @__PURE__ */ jsx19("div", { className: "mb-eor-table-wrap", children: /* @__PURE__ */ jsxs19("table", { className: "mb-eor-table", children: [
6425
+ /* @__PURE__ */ jsxs19("thead", { children: [
6426
+ /* @__PURE__ */ jsxs19("tr", { className: "mb-eor-groups", children: [
6427
+ /* @__PURE__ */ jsx19("th", { colSpan: 2, children: "Submission" }),
6428
+ /* @__PURE__ */ jsx19("th", { colSpan: 5, children: "EOR payment information" }),
6429
+ /* @__PURE__ */ jsx19("th", { colSpan: 2, children: "EOR post" }),
6430
+ /* @__PURE__ */ jsx19("th", { children: "EOR" })
6223
6431
  ] }),
6224
- /* @__PURE__ */ jsxs18("tr", { children: [
6225
- /* @__PURE__ */ jsx18("th", { children: "Submission" }),
6226
- /* @__PURE__ */ jsx18("th", { children: "Submission payment" }),
6227
- /* @__PURE__ */ jsx18("th", { children: "Payment method" }),
6228
- /* @__PURE__ */ jsx18("th", { children: "Reference" }),
6229
- /* @__PURE__ */ jsx18("th", { children: "Effective date" }),
6230
- /* @__PURE__ */ jsx18("th", { children: "Payment total" }),
6231
- /* @__PURE__ */ jsx18("th", { children: "Deposit date" }),
6232
- /* @__PURE__ */ jsx18("th", { children: "Post date" }),
6233
- /* @__PURE__ */ jsx18("th", { children: "Source" }),
6234
- /* @__PURE__ */ jsx18("th", { children: "Document" })
6432
+ /* @__PURE__ */ jsxs19("tr", { children: [
6433
+ /* @__PURE__ */ jsx19("th", { children: "Submission" }),
6434
+ /* @__PURE__ */ jsx19("th", { children: "Submission payment" }),
6435
+ /* @__PURE__ */ jsx19("th", { children: "Payment method" }),
6436
+ /* @__PURE__ */ jsx19("th", { children: "Reference" }),
6437
+ /* @__PURE__ */ jsx19("th", { children: "Effective date" }),
6438
+ /* @__PURE__ */ jsx19("th", { children: "Payment total" }),
6439
+ /* @__PURE__ */ jsx19("th", { children: "Deposit date" }),
6440
+ /* @__PURE__ */ jsx19("th", { children: "Post date" }),
6441
+ /* @__PURE__ */ jsx19("th", { children: "Source" }),
6442
+ /* @__PURE__ */ jsx19("th", { children: "Document" })
6235
6443
  ] })
6236
6444
  ] }),
6237
- /* @__PURE__ */ jsx18("tbody", { children: rows.map((payment, index) => {
6445
+ /* @__PURE__ */ jsx19("tbody", { children: rows.map((payment, index) => {
6238
6446
  const eor = eors[index] ?? eors[0];
6239
- return /* @__PURE__ */ jsxs18("tr", { children: [
6240
- /* @__PURE__ */ jsxs18("td", { "data-label": "Submission", children: [
6241
- /* @__PURE__ */ jsx18("strong", { children: "Original bill" }),
6242
- submittedAt ? /* @__PURE__ */ jsxs18("span", { children: [
6447
+ return /* @__PURE__ */ jsxs19("tr", { children: [
6448
+ /* @__PURE__ */ jsxs19("td", { "data-label": "Submission", children: [
6449
+ /* @__PURE__ */ jsx19("strong", { children: "Original bill" }),
6450
+ submittedAt ? /* @__PURE__ */ jsxs19("span", { children: [
6243
6451
  "Sent ",
6244
6452
  defaultFormatDate(submittedAt)
6245
6453
  ] }) : null
6246
6454
  ] }),
6247
- /* @__PURE__ */ jsx18("td", { "data-label": "Submission payment", children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) }),
6248
- /* @__PURE__ */ jsx18("td", { "data-label": "Payment method", children: payment ? humanize(payment.method) : "\u2014" }),
6249
- /* @__PURE__ */ jsx18("td", { "data-label": "Reference", children: payment?.checkNumber || "\u2014" }),
6250
- /* @__PURE__ */ jsx18("td", { "data-label": "Effective date", children: payment ? payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) : "\u2014" }),
6251
- /* @__PURE__ */ jsx18("td", { "data-label": "Payment total", children: payment ? currency(payment.amount) : currency(0) }),
6252
- /* @__PURE__ */ jsx18("td", { "data-label": "Deposit date", children: payment?.depositDate || "Not recorded" }),
6253
- /* @__PURE__ */ jsx18("td", { "data-label": "Post date", children: payment ? defaultFormatDate(payment.postedAt) : eor ? defaultFormatDate(eor.addedAt) : "\u2014" }),
6254
- /* @__PURE__ */ jsx18("td", { "data-label": "Source", children: payment ? payment.source.toUpperCase() : eor ? "EOR" : "\u2014" }),
6255
- /* @__PURE__ */ jsx18("td", { "data-label": "EOR", children: eor && onOpenEor ? /* @__PURE__ */ jsx18("button", { type: "button", className: "mb-eor-link", onClick: () => void onOpenEor(eor), children: eor.filename }) : eor?.filename || "\u2014" })
6455
+ /* @__PURE__ */ jsx19("td", { "data-label": "Submission payment", children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) }),
6456
+ /* @__PURE__ */ jsx19("td", { "data-label": "Payment method", children: payment ? humanize(payment.method) : "\u2014" }),
6457
+ /* @__PURE__ */ jsx19("td", { "data-label": "Reference", children: payment?.checkNumber || "\u2014" }),
6458
+ /* @__PURE__ */ jsx19("td", { "data-label": "Effective date", children: payment ? payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) : "\u2014" }),
6459
+ /* @__PURE__ */ jsx19("td", { "data-label": "Payment total", children: payment ? currency(payment.amount) : currency(0) }),
6460
+ /* @__PURE__ */ jsx19("td", { "data-label": "Deposit date", children: payment?.depositDate || "Not recorded" }),
6461
+ /* @__PURE__ */ jsx19("td", { "data-label": "Post date", children: payment ? defaultFormatDate(payment.postedAt) : eor ? defaultFormatDate(eor.addedAt) : "\u2014" }),
6462
+ /* @__PURE__ */ jsx19("td", { "data-label": "Source", children: payment ? payment.source.toUpperCase() : eor ? "EOR" : "\u2014" }),
6463
+ /* @__PURE__ */ jsx19("td", { "data-label": "EOR", children: eor && onOpenEor ? /* @__PURE__ */ jsx19("button", { type: "button", className: "mb-eor-link", onClick: () => void onOpenEor(eor), children: eor.filename }) : eor?.filename || "\u2014" })
6256
6464
  ] }, payment?.id ?? `empty-${index}`);
6257
6465
  }) })
6258
6466
  ] }) }),
6259
- eors.length > rows.length ? /* @__PURE__ */ jsx18("div", { className: "mb-eor-documents", children: eors.slice(rows.length).map((eor) => /* @__PURE__ */ jsx18("button", { type: "button", onClick: () => void onOpenEor?.(eor), children: eor.filename }, eor.id)) }) : null
6467
+ eors.length > rows.length ? /* @__PURE__ */ jsx19("div", { className: "mb-eor-documents", children: eors.slice(rows.length).map((eor) => /* @__PURE__ */ jsx19("button", { type: "button", onClick: () => void onOpenEor?.(eor), children: eor.filename }, eor.id)) }) : null
6260
6468
  ] });
6261
6469
  }
6262
6470
  function BillRemittanceCard({ remittance, appearance, className, style }) {
6263
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-remittance", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Remittance summary", children: [
6264
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6265
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
6266
- /* @__PURE__ */ jsx18("strong", { children: "Remittance" }),
6267
- /* @__PURE__ */ jsx18("span", { children: "Amounts reported by the payer and posted to the bill." })
6471
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-remittance", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Remittance summary", children: [
6472
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6473
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6474
+ /* @__PURE__ */ jsx19("strong", { children: "Remittance" }),
6475
+ /* @__PURE__ */ jsx19("span", { children: "Amounts reported by the payer and posted to the bill." })
6268
6476
  ] }) }),
6269
- /* @__PURE__ */ jsxs18("dl", { children: [
6270
- /* @__PURE__ */ jsxs18("div", { children: [
6271
- /* @__PURE__ */ jsx18("dt", { children: "Amount billed" }),
6272
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.billedAmount) })
6477
+ /* @__PURE__ */ jsxs19("dl", { children: [
6478
+ /* @__PURE__ */ jsxs19("div", { children: [
6479
+ /* @__PURE__ */ jsx19("dt", { children: "Amount billed" }),
6480
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.billedAmount) })
6273
6481
  ] }),
6274
- /* @__PURE__ */ jsxs18("div", { children: [
6275
- /* @__PURE__ */ jsx18("dt", { children: "Expected" }),
6276
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.expectedAmount) })
6482
+ /* @__PURE__ */ jsxs19("div", { children: [
6483
+ /* @__PURE__ */ jsx19("dt", { children: "Expected" }),
6484
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.expectedAmount) })
6277
6485
  ] }),
6278
- /* @__PURE__ */ jsxs18("div", { children: [
6279
- /* @__PURE__ */ jsx18("dt", { children: "Payer allowed" }),
6280
- /* @__PURE__ */ jsx18("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
6486
+ /* @__PURE__ */ jsxs19("div", { children: [
6487
+ /* @__PURE__ */ jsx19("dt", { children: "Payer allowed" }),
6488
+ /* @__PURE__ */ jsx19("dd", { children: remittance.payerAllowedAmount === null ? "\u2014" : currency(remittance.payerAllowedAmount) })
6281
6489
  ] }),
6282
- /* @__PURE__ */ jsxs18("div", { children: [
6283
- /* @__PURE__ */ jsx18("dt", { children: "Payer reported paid" }),
6284
- /* @__PURE__ */ jsx18("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
6490
+ /* @__PURE__ */ jsxs19("div", { children: [
6491
+ /* @__PURE__ */ jsx19("dt", { children: "Payer reported paid" }),
6492
+ /* @__PURE__ */ jsx19("dd", { children: remittance.payerReportedPaid === null ? "\u2014" : currency(remittance.payerReportedPaid) })
6285
6493
  ] }),
6286
- /* @__PURE__ */ jsxs18("div", { children: [
6287
- /* @__PURE__ */ jsx18("dt", { children: "Payment posted" }),
6288
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.postedPrincipal) })
6494
+ /* @__PURE__ */ jsxs19("div", { children: [
6495
+ /* @__PURE__ */ jsx19("dt", { children: "Payment posted" }),
6496
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.postedPrincipal) })
6289
6497
  ] }),
6290
- /* @__PURE__ */ jsxs18("div", { children: [
6291
- /* @__PURE__ */ jsx18("dt", { children: "Penalty & interest" }),
6292
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.postedAdditional) })
6498
+ /* @__PURE__ */ jsxs19("div", { children: [
6499
+ /* @__PURE__ */ jsx19("dt", { children: "Penalty & interest" }),
6500
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.postedAdditional) })
6293
6501
  ] }),
6294
- /* @__PURE__ */ jsxs18("div", { children: [
6295
- /* @__PURE__ */ jsx18("dt", { children: "Total received" }),
6296
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.totalPostedCash) })
6502
+ /* @__PURE__ */ jsxs19("div", { children: [
6503
+ /* @__PURE__ */ jsx19("dt", { children: "Total received" }),
6504
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.totalPostedCash) })
6297
6505
  ] }),
6298
- /* @__PURE__ */ jsxs18("div", { children: [
6299
- /* @__PURE__ */ jsx18("dt", { children: "Balance due" }),
6300
- /* @__PURE__ */ jsx18("dd", { children: currency(remittance.balanceDue) })
6506
+ /* @__PURE__ */ jsxs19("div", { children: [
6507
+ /* @__PURE__ */ jsx19("dt", { children: "Balance due" }),
6508
+ /* @__PURE__ */ jsx19("dd", { children: currency(remittance.balanceDue) })
6301
6509
  ] })
6302
6510
  ] }),
6303
- remittance.denialReason ? /* @__PURE__ */ jsxs18("div", { className: "mb-denial", children: [
6304
- /* @__PURE__ */ jsx18("strong", { children: "Denial reason" }),
6305
- /* @__PURE__ */ jsx18("p", { children: remittance.denialReason })
6511
+ remittance.denialReason ? /* @__PURE__ */ jsxs19("div", { className: "mb-denial", children: [
6512
+ /* @__PURE__ */ jsx19("strong", { children: "Denial reason" }),
6513
+ /* @__PURE__ */ jsx19("p", { children: remittance.denialReason })
6306
6514
  ] }) : null
6307
6515
  ] });
6308
6516
  }
@@ -6317,72 +6525,72 @@ function BillPayerContactCard({ delivery, appearance, className, style }) {
6317
6525
  delivery.contacts.portalUrl ? ["Portal", "Open payer portal", delivery.contacts.portalUrl] : null
6318
6526
  ].filter(Boolean);
6319
6527
  if (!delivery.payerName && !contacts2.length) return null;
6320
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-contacts", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payer contact information", children: [
6321
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6322
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
6323
- /* @__PURE__ */ jsx18("strong", { children: delivery.payerName || "Claims administrator" }),
6324
- /* @__PURE__ */ jsx18("span", { children: "Billing and follow-up contacts." })
6528
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-contacts", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payer contact information", children: [
6529
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6530
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6531
+ /* @__PURE__ */ jsx19("strong", { children: delivery.payerName || "Claims administrator" }),
6532
+ /* @__PURE__ */ jsx19("span", { children: "Billing and follow-up contacts." })
6325
6533
  ] }) }),
6326
- !contacts2.length ? /* @__PURE__ */ jsx18("p", { className: "mb-empty", children: "No payer contact details are available." }) : /* @__PURE__ */ jsx18("dl", { children: contacts2.map(([label, value, href]) => /* @__PURE__ */ jsxs18("div", { children: [
6327
- /* @__PURE__ */ jsx18("dt", { children: label }),
6328
- /* @__PURE__ */ jsx18("dd", { children: href ? /* @__PURE__ */ jsx18("a", { href, target: label === "Portal" ? "_blank" : void 0, rel: label === "Portal" ? "noreferrer noopener" : void 0, children: value }) : value })
6534
+ !contacts2.length ? /* @__PURE__ */ jsx19("p", { className: "mb-empty", children: "No payer contact details are available." }) : /* @__PURE__ */ jsx19("dl", { children: contacts2.map(([label, value, href]) => /* @__PURE__ */ jsxs19("div", { children: [
6535
+ /* @__PURE__ */ jsx19("dt", { children: label }),
6536
+ /* @__PURE__ */ jsx19("dd", { children: href ? /* @__PURE__ */ jsx19("a", { href, target: label === "Portal" ? "_blank" : void 0, rel: label === "Portal" ? "noreferrer noopener" : void 0, children: value }) : value })
6329
6537
  ] }, label)) })
6330
6538
  ] });
6331
6539
  }
6332
6540
  function BillPaymentLedger({ payments, appearance, className, style }) {
6333
- return /* @__PURE__ */ jsxs18("section", { className: classes("mb-surface mb-payments", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payment ledger", children: [
6334
- /* @__PURE__ */ jsx18("style", { children: lifecycleSurfaceStyles }),
6335
- /* @__PURE__ */ jsx18("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs18("div", { children: [
6336
- /* @__PURE__ */ jsx18("strong", { children: "Payments" }),
6337
- /* @__PURE__ */ jsx18("span", { children: "Funds recorded against this bill." })
6541
+ return /* @__PURE__ */ jsxs19("section", { className: classes("mb-surface mb-payments", className), style: mindBillAppearanceStyle(appearance, style), "aria-label": "Payment ledger", children: [
6542
+ /* @__PURE__ */ jsx19("style", { children: lifecycleSurfaceStyles }),
6543
+ /* @__PURE__ */ jsx19("header", { className: "mb-surface-heading", children: /* @__PURE__ */ jsxs19("div", { children: [
6544
+ /* @__PURE__ */ jsx19("strong", { children: "Payments" }),
6545
+ /* @__PURE__ */ jsx19("span", { children: "Funds recorded against this bill." })
6338
6546
  ] }) }),
6339
- !payments.length ? /* @__PURE__ */ jsx18("p", { className: "mb-empty", children: "No payments posted." }) : /* @__PURE__ */ jsx18("div", { className: "mb-payment-list", children: payments.map((payment) => {
6547
+ !payments.length ? /* @__PURE__ */ jsx19("p", { className: "mb-empty", children: "No payments posted." }) : /* @__PURE__ */ jsx19("div", { className: "mb-payment-list", children: payments.map((payment) => {
6340
6548
  const additional = payment.feeAmount ?? 0;
6341
- return /* @__PURE__ */ jsxs18("article", { children: [
6342
- /* @__PURE__ */ jsxs18("div", { className: "mb-payment-amount", children: [
6343
- /* @__PURE__ */ jsx18("strong", { children: currency(payment.amount) }),
6344
- /* @__PURE__ */ jsx18("span", { children: "Total received" })
6549
+ return /* @__PURE__ */ jsxs19("article", { children: [
6550
+ /* @__PURE__ */ jsxs19("div", { className: "mb-payment-amount", children: [
6551
+ /* @__PURE__ */ jsx19("strong", { children: currency(payment.amount) }),
6552
+ /* @__PURE__ */ jsx19("span", { children: "Total received" })
6345
6553
  ] }),
6346
- /* @__PURE__ */ jsxs18("dl", { children: [
6347
- /* @__PURE__ */ jsxs18("div", { children: [
6348
- /* @__PURE__ */ jsx18("dt", { children: "Applied to bill" }),
6349
- /* @__PURE__ */ jsx18("dd", { children: currency(payment.principalAmount) })
6554
+ /* @__PURE__ */ jsxs19("dl", { children: [
6555
+ /* @__PURE__ */ jsxs19("div", { children: [
6556
+ /* @__PURE__ */ jsx19("dt", { children: "Applied to bill" }),
6557
+ /* @__PURE__ */ jsx19("dd", { children: currency(payment.principalAmount) })
6350
6558
  ] }),
6351
- additional > 0 ? /* @__PURE__ */ jsxs18("div", { children: [
6352
- /* @__PURE__ */ jsx18("dt", { children: "Penalty & interest" }),
6353
- /* @__PURE__ */ jsx18("dd", { children: currency(additional) })
6559
+ additional > 0 ? /* @__PURE__ */ jsxs19("div", { children: [
6560
+ /* @__PURE__ */ jsx19("dt", { children: "Penalty & interest" }),
6561
+ /* @__PURE__ */ jsx19("dd", { children: currency(additional) })
6354
6562
  ] }) : null,
6355
- /* @__PURE__ */ jsxs18("div", { children: [
6356
- /* @__PURE__ */ jsx18("dt", { children: "Method" }),
6357
- /* @__PURE__ */ jsx18("dd", { children: payment.method.toUpperCase() })
6563
+ /* @__PURE__ */ jsxs19("div", { children: [
6564
+ /* @__PURE__ */ jsx19("dt", { children: "Method" }),
6565
+ /* @__PURE__ */ jsx19("dd", { children: payment.method.toUpperCase() })
6358
6566
  ] }),
6359
- /* @__PURE__ */ jsxs18("div", { children: [
6360
- /* @__PURE__ */ jsx18("dt", { children: "Reference" }),
6361
- /* @__PURE__ */ jsx18("dd", { children: payment.checkNumber || "\u2014" })
6567
+ /* @__PURE__ */ jsxs19("div", { children: [
6568
+ /* @__PURE__ */ jsx19("dt", { children: "Reference" }),
6569
+ /* @__PURE__ */ jsx19("dd", { children: payment.checkNumber || "\u2014" })
6362
6570
  ] }),
6363
- /* @__PURE__ */ jsxs18("div", { children: [
6364
- /* @__PURE__ */ jsx18("dt", { children: "Effective date" }),
6365
- /* @__PURE__ */ jsx18("dd", { children: payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) })
6571
+ /* @__PURE__ */ jsxs19("div", { children: [
6572
+ /* @__PURE__ */ jsx19("dt", { children: "Effective date" }),
6573
+ /* @__PURE__ */ jsx19("dd", { children: payment.receivedDate || payment.depositDate || defaultFormatDate(payment.postedAt) })
6366
6574
  ] }),
6367
- /* @__PURE__ */ jsxs18("div", { children: [
6368
- /* @__PURE__ */ jsx18("dt", { children: "Deposit date" }),
6369
- /* @__PURE__ */ jsx18("dd", { children: payment.depositDate || "Not recorded" })
6575
+ /* @__PURE__ */ jsxs19("div", { children: [
6576
+ /* @__PURE__ */ jsx19("dt", { children: "Deposit date" }),
6577
+ /* @__PURE__ */ jsx19("dd", { children: payment.depositDate || "Not recorded" })
6370
6578
  ] }),
6371
- /* @__PURE__ */ jsxs18("div", { children: [
6372
- /* @__PURE__ */ jsx18("dt", { children: "Posted" }),
6373
- /* @__PURE__ */ jsxs18("dd", { children: [
6579
+ /* @__PURE__ */ jsxs19("div", { children: [
6580
+ /* @__PURE__ */ jsx19("dt", { children: "Posted" }),
6581
+ /* @__PURE__ */ jsxs19("dd", { children: [
6374
6582
  defaultFormatDate(payment.postedAt),
6375
6583
  " \xB7 ",
6376
6584
  payment.source.toUpperCase()
6377
6585
  ] })
6378
6586
  ] }),
6379
- /* @__PURE__ */ jsxs18("div", { children: [
6380
- /* @__PURE__ */ jsx18("dt", { children: "Status" }),
6381
- /* @__PURE__ */ jsx18("dd", { children: humanize(payment.status || "posted") })
6587
+ /* @__PURE__ */ jsxs19("div", { children: [
6588
+ /* @__PURE__ */ jsx19("dt", { children: "Status" }),
6589
+ /* @__PURE__ */ jsx19("dd", { children: humanize(payment.status || "posted") })
6382
6590
  ] })
6383
6591
  ] }),
6384
- payment.feeReason ? /* @__PURE__ */ jsx18("p", { children: payment.feeReason }) : null,
6385
- payment.note ? /* @__PURE__ */ jsx18("p", { children: payment.note }) : null
6592
+ payment.feeReason ? /* @__PURE__ */ jsx19("p", { children: payment.feeReason }) : null,
6593
+ payment.note ? /* @__PURE__ */ jsx19("p", { children: payment.note }) : null
6386
6594
  ] }, payment.id);
6387
6595
  }) })
6388
6596
  ] });
@@ -6439,10 +6647,10 @@ var lifecycleSurfaceStyles = `
6439
6647
  // src/connected-bill-lifecycle.tsx
6440
6648
  import {
6441
6649
  useCallback as useCallback4,
6442
- useEffect as useEffect13,
6650
+ useEffect as useEffect14,
6443
6651
  useMemo as useMemo10,
6444
- useRef as useRef8,
6445
- useState as useState16
6652
+ useRef as useRef9,
6653
+ useState as useState17
6446
6654
  } from "react";
6447
6655
  import {
6448
6656
  DEFAULT_API_BASE_URL as DEFAULT_API_BASE_URL3,
@@ -6453,13 +6661,13 @@ import {
6453
6661
  } from "@mindbill/browser";
6454
6662
 
6455
6663
  // src/second-review-form.tsx
6456
- import { useMemo as useMemo9, useState as useState15 } from "react";
6664
+ import { useMemo as useMemo9, useState as useState16 } from "react";
6457
6665
 
6458
6666
  // src/second-review-corrections.ts
6459
6667
  import { parseSecondReviewCorrection } from "@mindbill/browser";
6460
6668
 
6461
6669
  // src/second-review-form.tsx
6462
- import { Fragment as Fragment14, jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
6670
+ import { Fragment as Fragment14, jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
6463
6671
  var SECOND_REVIEW_REASON_TEMPLATES = [
6464
6672
  {
6465
6673
  label: "Med-legal report denied",
@@ -6494,7 +6702,7 @@ var SECOND_REVIEW_REASON_TEMPLATES = [
6494
6702
  value: "This service was provided before the claims administrator accepted or denied liability and was authorized under California Labor Code section 5402(c). Please reprocess this service and issue payment."
6495
6703
  }
6496
6704
  ];
6497
- var css12 = `
6705
+ var css13 = `
6498
6706
  .mb-second-review{display:grid;gap:18px;padding:22px;color:var(--mb-text);font-family:var(--mb-font);background:var(--mb-surface);border:1px solid var(--mb-border);border-radius:var(--mb-radius);box-shadow:var(--mb-shadow)}
6499
6707
  .mb-second-review *{box-sizing:border-box}.mb-second-review h3{margin:0;font-size:22px}.mb-second-review p{margin:4px 0 0;color:var(--mb-muted)}
6500
6708
  .mb-second-review-deadline{padding:12px 14px;border-radius:var(--mb-control-radius);background:color-mix(in srgb,var(--mb-warning) 10%,var(--mb-surface));color:var(--mb-text)!important}
@@ -6532,12 +6740,12 @@ function SecondReviewForm({
6532
6740
  onCancel,
6533
6741
  onSubmit
6534
6742
  }) {
6535
- const [lines, setLines] = useState15(() => initialLineDrafts(data));
6536
- const [attachmentIds, setAttachmentIds] = useState15(() => data.bill.attachments.map((attachment) => attachment.id));
6537
- const [uploads, setUploads] = useState15([]);
6538
- const [formError, setFormError] = useState15("");
6539
- const [preparing, setPreparing] = useState15(false);
6540
- const [delivery, setDelivery] = useState15(null);
6743
+ const [lines, setLines] = useState16(() => initialLineDrafts(data));
6744
+ const [attachmentIds, setAttachmentIds] = useState16(() => data.bill.attachments.map((attachment) => attachment.id));
6745
+ const [uploads, setUploads] = useState16([]);
6746
+ const [formError, setFormError] = useState16("");
6747
+ const [preparing, setPreparing] = useState16(false);
6748
+ const [delivery, setDelivery] = useState16(null);
6541
6749
  const selectableLines = useMemo9(() => data.bill.lineItems.filter((line) => Boolean(line.id)), [data.bill.lineItems]);
6542
6750
  const selected = selectableLines.filter((line) => lines[line.id]?.selected);
6543
6751
  const invalidReason = selected.some((line) => !lines[line.id]?.reason.trim());
@@ -6637,118 +6845,118 @@ function SecondReviewForm({
6637
6845
  setPreparing(false);
6638
6846
  }
6639
6847
  };
6640
- return /* @__PURE__ */ jsxs19(Fragment14, { children: [
6641
- /* @__PURE__ */ jsx19("style", { children: css12 }),
6642
- /* @__PURE__ */ jsxs19("section", { className: "mb-second-review", children: [
6643
- /* @__PURE__ */ jsxs19("div", { children: [
6644
- /* @__PURE__ */ jsx19("h3", { children: "Submit Second Review" }),
6645
- /* @__PURE__ */ jsx19("p", { children: "Select each disputed service and explain why it should be reconsidered." })
6848
+ return /* @__PURE__ */ jsxs20(Fragment14, { children: [
6849
+ /* @__PURE__ */ jsx20("style", { children: css13 }),
6850
+ /* @__PURE__ */ jsxs20("section", { className: "mb-second-review", children: [
6851
+ /* @__PURE__ */ jsxs20("div", { children: [
6852
+ /* @__PURE__ */ jsx20("h3", { children: "Submit Second Review" }),
6853
+ /* @__PURE__ */ jsx20("p", { children: "Select each disputed service and explain why it should be reconsidered." })
6646
6854
  ] }),
6647
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-template", children: [
6648
- /* @__PURE__ */ jsx19("span", { className: "mb-second-review-label", children: "Apply a saved reason to selected lines" }),
6649
- /* @__PURE__ */ jsxs19("select", { className: "mb-second-review-select", defaultValue: "", onChange: (event) => {
6855
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-template", children: [
6856
+ /* @__PURE__ */ jsx20("span", { className: "mb-second-review-label", children: "Apply a saved reason to selected lines" }),
6857
+ /* @__PURE__ */ jsxs20("select", { className: "mb-second-review-select", defaultValue: "", onChange: (event) => {
6650
6858
  applyTemplate(event.target.value);
6651
6859
  event.target.value = "";
6652
6860
  }, children: [
6653
- /* @__PURE__ */ jsx19("option", { value: "", children: "Choose a reason template (optional)" }),
6654
- SECOND_REVIEW_REASON_TEMPLATES.map((template) => /* @__PURE__ */ jsx19("option", { value: template.value, children: template.label }, template.label))
6861
+ /* @__PURE__ */ jsx20("option", { value: "", children: "Choose a reason template (optional)" }),
6862
+ SECOND_REVIEW_REASON_TEMPLATES.map((template) => /* @__PURE__ */ jsx20("option", { value: template.value, children: template.label }, template.label))
6655
6863
  ] })
6656
6864
  ] }),
6657
- /* @__PURE__ */ jsxs19("section", { className: "mb-second-review-lines", "aria-label": "Service lines in dispute", children: [
6865
+ /* @__PURE__ */ jsxs20("section", { className: "mb-second-review-lines", "aria-label": "Service lines in dispute", children: [
6658
6866
  selectableLines.map((line) => {
6659
6867
  const draft = lines[line.id];
6660
- return /* @__PURE__ */ jsxs19("article", { className: "mb-second-review-line", "data-selected": draft?.selected, children: [
6661
- /* @__PURE__ */ jsxs19("div", { className: "mb-second-review-line-head", children: [
6662
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-check", children: [
6663
- /* @__PURE__ */ jsx19("input", { type: "checkbox", checked: Boolean(draft?.selected), onChange: (event) => patchLine(line.id, { selected: event.target.checked }) }),
6664
- /* @__PURE__ */ jsxs19("span", { children: [
6868
+ return /* @__PURE__ */ jsxs20("article", { className: "mb-second-review-line", "data-selected": draft?.selected, children: [
6869
+ /* @__PURE__ */ jsxs20("div", { className: "mb-second-review-line-head", children: [
6870
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-check", children: [
6871
+ /* @__PURE__ */ jsx20("input", { type: "checkbox", checked: Boolean(draft?.selected), onChange: (event) => patchLine(line.id, { selected: event.target.checked }) }),
6872
+ /* @__PURE__ */ jsxs20("span", { children: [
6665
6873
  line.code,
6666
6874
  line.modifiers.length ? `-${line.modifiers.join("-")}` : ""
6667
6875
  ] })
6668
6876
  ] }),
6669
- /* @__PURE__ */ jsxs19("span", { className: "mb-second-review-metrics", children: [
6670
- /* @__PURE__ */ jsxs19("span", { children: [
6877
+ /* @__PURE__ */ jsxs20("span", { className: "mb-second-review-metrics", children: [
6878
+ /* @__PURE__ */ jsxs20("span", { children: [
6671
6879
  line.units,
6672
6880
  " unit",
6673
6881
  line.units === 1 ? "" : "s"
6674
6882
  ] }),
6675
- /* @__PURE__ */ jsx19("span", { children: money6(line.charge) })
6883
+ /* @__PURE__ */ jsx20("span", { children: money6(line.charge) })
6676
6884
  ] })
6677
6885
  ] }),
6678
- draft?.selected ? /* @__PURE__ */ jsxs19(Fragment14, { children: [
6679
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-field", children: [
6680
- /* @__PURE__ */ jsx19("span", { className: "mb-second-review-label", children: "Reason for requesting Second Review" }),
6681
- /* @__PURE__ */ jsx19("textarea", { className: "mb-second-review-textarea", required: true, value: draft.reason, onChange: (event) => patchLine(line.id, { reason: event.target.value }) })
6886
+ draft?.selected ? /* @__PURE__ */ jsxs20(Fragment14, { children: [
6887
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-field", children: [
6888
+ /* @__PURE__ */ jsx20("span", { className: "mb-second-review-label", children: "Reason for requesting Second Review" }),
6889
+ /* @__PURE__ */ jsx20("textarea", { className: "mb-second-review-textarea", required: true, value: draft.reason, onChange: (event) => patchLine(line.id, { reason: event.target.value }) })
6682
6890
  ] }),
6683
- /* @__PURE__ */ jsxs19("div", { className: "mb-second-review-auth", role: "radiogroup", "aria-label": `Service or good ${line.code} authorized`, children: [
6684
- /* @__PURE__ */ jsx19("strong", { children: "Service/Good Authorized?" }),
6685
- [["yes", "Yes"], ["no", "No"], ["", "Not specified"]].map(([value, label]) => /* @__PURE__ */ jsxs19("label", { children: [
6686
- /* @__PURE__ */ jsx19("input", { type: "radio", name: `authorized-${line.id}`, checked: draft.serviceAuthorized === value, onChange: () => patchLine(line.id, { serviceAuthorized: value }) }),
6891
+ /* @__PURE__ */ jsxs20("div", { className: "mb-second-review-auth", role: "radiogroup", "aria-label": `Service or good ${line.code} authorized`, children: [
6892
+ /* @__PURE__ */ jsx20("strong", { children: "Service/Good Authorized?" }),
6893
+ [["yes", "Yes"], ["no", "No"], ["", "Not specified"]].map(([value, label]) => /* @__PURE__ */ jsxs20("label", { children: [
6894
+ /* @__PURE__ */ jsx20("input", { type: "radio", name: `authorized-${line.id}`, checked: draft.serviceAuthorized === value, onChange: () => patchLine(line.id, { serviceAuthorized: value }) }),
6687
6895
  label
6688
6896
  ] }, label))
6689
6897
  ] })
6690
6898
  ] }) : null,
6691
- draft?.selected ? /* @__PURE__ */ jsxs19(Fragment14, { children: [
6692
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-check", children: [
6693
- /* @__PURE__ */ jsx19("input", { type: "checkbox", checked: draft.correctBilling, onChange: (event) => patchLine(line.id, { correctBilling: event.target.checked, chargeReviewed: false }) }),
6899
+ draft?.selected ? /* @__PURE__ */ jsxs20(Fragment14, { children: [
6900
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-check", children: [
6901
+ /* @__PURE__ */ jsx20("input", { type: "checkbox", checked: draft.correctBilling, onChange: (event) => patchLine(line.id, { correctBilling: event.target.checked, chargeReviewed: false }) }),
6694
6902
  "Correct units or modifiers on this submission"
6695
6903
  ] }),
6696
- draft.correctBilling ? /* @__PURE__ */ jsxs19(Fragment14, { children: [
6697
- /* @__PURE__ */ jsx19("p", { className: "mb-second-review-correction-note", children: "Earlier submissions stay unchanged. Review the charge explicitly; changing units or modifiers does not recalculate it." }),
6698
- /* @__PURE__ */ jsxs19("div", { className: "mb-second-review-corrections", children: [
6699
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-field", children: [
6700
- /* @__PURE__ */ jsx19("span", { className: "mb-second-review-label", children: "Corrected units" }),
6701
- /* @__PURE__ */ jsx19("input", { className: "mb-second-review-select", type: "number", min: "1", max: "10000", step: "1", value: draft.units, onChange: (event) => patchLine(line.id, { units: event.target.value, chargeReviewed: false }) })
6904
+ draft.correctBilling ? /* @__PURE__ */ jsxs20(Fragment14, { children: [
6905
+ /* @__PURE__ */ jsx20("p", { className: "mb-second-review-correction-note", children: "Earlier submissions stay unchanged. Review the charge explicitly; changing units or modifiers does not recalculate it." }),
6906
+ /* @__PURE__ */ jsxs20("div", { className: "mb-second-review-corrections", children: [
6907
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-field", children: [
6908
+ /* @__PURE__ */ jsx20("span", { className: "mb-second-review-label", children: "Corrected units" }),
6909
+ /* @__PURE__ */ jsx20("input", { className: "mb-second-review-select", type: "number", min: "1", max: "10000", step: "1", value: draft.units, onChange: (event) => patchLine(line.id, { units: event.target.value, chargeReviewed: false }) })
6702
6910
  ] }),
6703
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-field", children: [
6704
- /* @__PURE__ */ jsx19("span", { className: "mb-second-review-label", children: "Corrected modifiers" }),
6705
- /* @__PURE__ */ jsx19("input", { className: "mb-second-review-select", placeholder: "95, 93 \u2014 or leave blank", value: draft.modifiers, onChange: (event) => patchLine(line.id, { modifiers: event.target.value, chargeReviewed: false }) })
6911
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-field", children: [
6912
+ /* @__PURE__ */ jsx20("span", { className: "mb-second-review-label", children: "Corrected modifiers" }),
6913
+ /* @__PURE__ */ jsx20("input", { className: "mb-second-review-select", placeholder: "95, 93 \u2014 or leave blank", value: draft.modifiers, onChange: (event) => patchLine(line.id, { modifiers: event.target.value, chargeReviewed: false }) })
6706
6914
  ] }),
6707
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-field", children: [
6708
- /* @__PURE__ */ jsx19("span", { className: "mb-second-review-label", children: "Corrected charge ($)" }),
6709
- /* @__PURE__ */ jsx19("input", { className: "mb-second-review-select", type: "number", min: "0", max: "999999.99", step: "0.01", value: draft.charge, onChange: (event) => patchLine(line.id, { charge: event.target.value, chargeReviewed: false }) })
6915
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-field", children: [
6916
+ /* @__PURE__ */ jsx20("span", { className: "mb-second-review-label", children: "Corrected charge ($)" }),
6917
+ /* @__PURE__ */ jsx20("input", { className: "mb-second-review-select", type: "number", min: "0", max: "999999.99", step: "0.01", value: draft.charge, onChange: (event) => patchLine(line.id, { charge: event.target.value, chargeReviewed: false }) })
6710
6918
  ] })
6711
6919
  ] }),
6712
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-check", children: [
6713
- /* @__PURE__ */ jsx19("input", { type: "checkbox", checked: draft.chargeReviewed, onChange: (event) => patchLine(line.id, { chargeReviewed: event.target.checked }) }),
6920
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-check", children: [
6921
+ /* @__PURE__ */ jsx20("input", { type: "checkbox", checked: draft.chargeReviewed, onChange: (event) => patchLine(line.id, { chargeReviewed: event.target.checked }) }),
6714
6922
  "I reviewed the corrected charge"
6715
6923
  ] }),
6716
- correctionErrors[line.id] ? /* @__PURE__ */ jsx19("p", { className: "mb-second-review-correction-note", role: "status", children: correctionErrors[line.id] }) : null
6924
+ correctionErrors[line.id] ? /* @__PURE__ */ jsx20("p", { className: "mb-second-review-correction-note", role: "status", children: correctionErrors[line.id] }) : null
6717
6925
  ] }) : null
6718
6926
  ] }) : null
6719
6927
  ] }, line.id);
6720
6928
  }),
6721
- !selectableLines.length ? /* @__PURE__ */ jsx19("div", { className: "mb-second-review-error", children: "This bill has no stable service-line identifiers. Refresh the bill before submitting a Second Review." }) : null
6929
+ !selectableLines.length ? /* @__PURE__ */ jsx20("div", { className: "mb-second-review-error", children: "This bill has no stable service-line identifiers. Refresh the bill before submitting a Second Review." }) : null
6722
6930
  ] }),
6723
- /* @__PURE__ */ jsxs19("fieldset", { className: "mb-second-review-packet", children: [
6724
- /* @__PURE__ */ jsx19("legend", { children: "Supporting packet" }),
6725
- data.bill.attachments.map((attachment) => /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-document", children: [
6726
- /* @__PURE__ */ jsx19("input", { type: "checkbox", checked: attachmentIds.includes(attachment.id), onChange: (event) => setAttachmentIds((current) => event.target.checked ? [...current, attachment.id] : current.filter((id) => id !== attachment.id)) }),
6727
- /* @__PURE__ */ jsxs19("span", { children: [
6728
- /* @__PURE__ */ jsx19("strong", { children: attachment.filename }),
6729
- /* @__PURE__ */ jsx19("small", { children: attachment.description || attachment.documentType })
6931
+ /* @__PURE__ */ jsxs20("fieldset", { className: "mb-second-review-packet", children: [
6932
+ /* @__PURE__ */ jsx20("legend", { children: "Supporting packet" }),
6933
+ data.bill.attachments.map((attachment) => /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-document", children: [
6934
+ /* @__PURE__ */ jsx20("input", { type: "checkbox", checked: attachmentIds.includes(attachment.id), onChange: (event) => setAttachmentIds((current) => event.target.checked ? [...current, attachment.id] : current.filter((id) => id !== attachment.id)) }),
6935
+ /* @__PURE__ */ jsxs20("span", { children: [
6936
+ /* @__PURE__ */ jsx20("strong", { children: attachment.filename }),
6937
+ /* @__PURE__ */ jsx20("small", { children: attachment.description || attachment.documentType })
6730
6938
  ] }),
6731
- /* @__PURE__ */ jsx19("button", { className: "mb-second-review-link", type: "button", onClick: () => void openAttachment(attachment).catch(() => void 0), children: "View" })
6939
+ /* @__PURE__ */ jsx20("button", { className: "mb-second-review-link", type: "button", onClick: () => void openAttachment(attachment).catch(() => void 0), children: "View" })
6732
6940
  ] }, attachment.id)),
6733
- /* @__PURE__ */ jsxs19("label", { className: "mb-second-review-upload", children: [
6734
- /* @__PURE__ */ jsx19("input", { type: "file", accept: "application/pdf,.pdf", multiple: true, onChange: addUploads }),
6735
- /* @__PURE__ */ jsxs19("span", { children: [
6736
- /* @__PURE__ */ jsx19("strong", { children: "Choose one or more PDF files" }),
6941
+ /* @__PURE__ */ jsxs20("label", { className: "mb-second-review-upload", children: [
6942
+ /* @__PURE__ */ jsx20("input", { type: "file", accept: "application/pdf,.pdf", multiple: true, onChange: addUploads }),
6943
+ /* @__PURE__ */ jsxs20("span", { children: [
6944
+ /* @__PURE__ */ jsx20("strong", { children: "Choose one or more PDF files" }),
6737
6945
  " to attach"
6738
6946
  ] })
6739
6947
  ] }),
6740
- uploads.map((upload, index) => /* @__PURE__ */ jsxs19("div", { className: "mb-second-review-uploaded", children: [
6741
- /* @__PURE__ */ jsx19("span", { children: upload.file.name }),
6742
- /* @__PURE__ */ jsx19("button", { className: "mb-second-review-link", type: "button", onClick: () => setUploads((current) => current.filter((_, itemIndex) => itemIndex !== index)), children: "Remove" })
6948
+ uploads.map((upload, index) => /* @__PURE__ */ jsxs20("div", { className: "mb-second-review-uploaded", children: [
6949
+ /* @__PURE__ */ jsx20("span", { children: upload.file.name }),
6950
+ /* @__PURE__ */ jsx20("button", { className: "mb-second-review-link", type: "button", onClick: () => setUploads((current) => current.filter((_, itemIndex) => itemIndex !== index)), children: "Remove" })
6743
6951
  ] }, `${upload.file.name}-${index}`))
6744
6952
  ] }),
6745
- formError || error?.message ? /* @__PURE__ */ jsx19("div", { className: "mb-second-review-error", role: "alert", children: formError || error?.message }) : null,
6746
- /* @__PURE__ */ jsxs19("div", { className: "mb-second-review-actions", children: [
6747
- /* @__PURE__ */ jsx19("button", { className: "mb-second-review-button secondary", type: "button", disabled: submitting || preparing, onClick: onCancel, children: "Cancel" }),
6748
- /* @__PURE__ */ jsx19("button", { className: "mb-second-review-button primary", type: "button", disabled: submitting || preparing || !selected.length || invalidReason || invalidCorrection, onClick: () => void continueToDelivery(), children: preparing ? "Preparing\u2026" : "Continue to delivery" })
6953
+ formError || error?.message ? /* @__PURE__ */ jsx20("div", { className: "mb-second-review-error", role: "alert", children: formError || error?.message }) : null,
6954
+ /* @__PURE__ */ jsxs20("div", { className: "mb-second-review-actions", children: [
6955
+ /* @__PURE__ */ jsx20("button", { className: "mb-second-review-button secondary", type: "button", disabled: submitting || preparing, onClick: onCancel, children: "Cancel" }),
6956
+ /* @__PURE__ */ jsx20("button", { className: "mb-second-review-button primary", type: "button", disabled: submitting || preparing || !selected.length || invalidReason || invalidCorrection, onClick: () => void continueToDelivery(), children: preparing ? "Preparing\u2026" : "Continue to delivery" })
6749
6957
  ] })
6750
6958
  ] }),
6751
- delivery ? /* @__PURE__ */ jsx19(SendRouteDialog, { title: "Confirm Second Review delivery", delivery, submitting: submitting || preparing, error: formError || error?.message || null, onCancel: () => setDelivery(null), onConfirm: (route) => void submit(route) }) : null
6959
+ delivery ? /* @__PURE__ */ jsx20(SendRouteDialog, { title: "Confirm Second Review delivery", delivery, submitting: submitting || preparing, error: formError || error?.message || null, onCancel: () => setDelivery(null), onConfirm: (route) => void submit(route) }) : null
6752
6960
  ] });
6753
6961
  }
6754
6962
 
@@ -6760,7 +6968,7 @@ import {
6760
6968
  reportBillStatusContacts as reportBillStatusContacts2,
6761
6969
  secondReviewDeadline as secondReviewDeadline2
6762
6970
  } from "@mindbill/browser";
6763
- import { Fragment as Fragment15, jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
6971
+ import { Fragment as Fragment15, jsx as jsx21, jsxs as jsxs21 } from "react/jsx-runtime";
6764
6972
  var DEFAULT_REFRESH_INTERVAL2 = 6e4;
6765
6973
  function billTeamNotes(data) {
6766
6974
  const notes = data.notes ?? [];
@@ -6808,12 +7016,12 @@ function useBillLifecycle({
6808
7016
  enabled = true,
6809
7017
  fetch: fetchOverride
6810
7018
  }) {
6811
- const [data, setData] = useState16(null);
6812
- const [error, setError] = useState16(null);
6813
- const [isLoading, setIsLoading] = useState16(enabled);
6814
- const [isRefreshing, setIsRefreshing] = useState16(false);
6815
- const [isMutating, setIsMutating] = useState16(false);
6816
- const mounted = useRef8(true);
7019
+ const [data, setData] = useState17(null);
7020
+ const [error, setError] = useState17(null);
7021
+ const [isLoading, setIsLoading] = useState17(enabled);
7022
+ const [isRefreshing, setIsRefreshing] = useState17(false);
7023
+ const [isMutating, setIsMutating] = useState17(false);
7024
+ const mounted = useRef9(true);
6817
7025
  const client = useMemo10(() => createBillLifecycleClient({
6818
7026
  billId: providedBillId,
6819
7027
  sessionEndpoint,
@@ -6821,12 +7029,12 @@ function useBillLifecycle({
6821
7029
  apiBaseUrl,
6822
7030
  fetch: fetchOverride
6823
7031
  }), [apiBaseUrl, fetchOverride, getSession, providedBillId, sessionEndpoint]);
6824
- useEffect13(() => {
7032
+ useEffect14(() => {
6825
7033
  setData(null);
6826
7034
  setError(null);
6827
7035
  setIsLoading(enabled);
6828
7036
  }, [enabled, providedBillId]);
6829
- useEffect13(() => {
7037
+ useEffect14(() => {
6830
7038
  mounted.current = true;
6831
7039
  return () => {
6832
7040
  mounted.current = false;
@@ -6850,7 +7058,7 @@ function useBillLifecycle({
6850
7058
  }
6851
7059
  }
6852
7060
  }, [client, enabled]);
6853
- useEffect13(() => {
7061
+ useEffect14(() => {
6854
7062
  if (!enabled) return;
6855
7063
  void refresh();
6856
7064
  const interval = refreshInterval > 0 ? window.setInterval(() => void refresh(), refreshInterval) : null;
@@ -6953,10 +7161,10 @@ function useBillLifecycle({
6953
7161
  };
6954
7162
  }
6955
7163
  function LifecycleDialog({ children, title, wide = false, onClose }) {
6956
- const dialog = useRef8(null);
6957
- const onCloseRef = useRef8(onClose);
7164
+ const dialog = useRef9(null);
7165
+ const onCloseRef = useRef9(onClose);
6958
7166
  onCloseRef.current = onClose;
6959
- useEffect13(() => {
7167
+ useEffect14(() => {
6960
7168
  const previous = document.activeElement;
6961
7169
  dialog.current?.focus();
6962
7170
  const onKeyDown = (event) => event.key === "Escape" && onCloseRef.current();
@@ -6966,8 +7174,8 @@ function LifecycleDialog({ children, title, wide = false, onClose }) {
6966
7174
  previous?.focus();
6967
7175
  };
6968
7176
  }, []);
6969
- return /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-dialog-backdrop", onMouseDown: (event) => event.currentTarget === event.target && onClose(), children: /* @__PURE__ */ jsxs20("div", { ref: dialog, className: ["mb-lifecycle-dialog", wide ? "wide" : ""].filter(Boolean).join(" "), role: "dialog", "aria-modal": "true", "aria-label": title, tabIndex: -1, children: [
6970
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-dialog-close", "aria-label": "Close", onClick: onClose, children: "\xD7" }),
7177
+ return /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-dialog-backdrop", onMouseDown: (event) => event.currentTarget === event.target && onClose(), children: /* @__PURE__ */ jsxs21("div", { ref: dialog, className: ["mb-lifecycle-dialog", wide ? "wide" : ""].filter(Boolean).join(" "), role: "dialog", "aria-modal": "true", "aria-label": title, tabIndex: -1, children: [
7178
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-dialog-close", "aria-label": "Close", onClick: onClose, children: "\xD7" }),
6971
7179
  children
6972
7180
  ] }) });
6973
7181
  }
@@ -7006,22 +7214,22 @@ function correctionRejectionSummary(rejection) {
7006
7214
  function CorrectionRejectionReason({ rejection }) {
7007
7215
  const summary = correctionRejectionSummary(rejection);
7008
7216
  const details = rejection.issues?.filter((issue) => issue.description.trim() !== summary.description || Boolean(issue.code?.trim() && issue.code.trim() !== summary.code)) ?? [];
7009
- return /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-correction-reason", role: "alert", children: [
7010
- summary.code ? /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-correction-reason-code", children: [
7011
- /* @__PURE__ */ jsx20("span", { children: "Rejection code" }),
7012
- /* @__PURE__ */ jsx20("code", { children: summary.code }),
7013
- summary.clearinghouseDetail ? /* @__PURE__ */ jsxs20("small", { children: [
7014
- /* @__PURE__ */ jsx20("span", { children: "Clearinghouse detail" }),
7217
+ return /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-correction-reason", role: "alert", children: [
7218
+ summary.code ? /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-correction-reason-code", children: [
7219
+ /* @__PURE__ */ jsx21("span", { children: "Rejection code" }),
7220
+ /* @__PURE__ */ jsx21("code", { children: summary.code }),
7221
+ summary.clearinghouseDetail ? /* @__PURE__ */ jsxs21("small", { children: [
7222
+ /* @__PURE__ */ jsx21("span", { children: "Clearinghouse detail" }),
7015
7223
  summary.clearinghouseDetail
7016
7224
  ] }) : null
7017
7225
  ] }) : null,
7018
- /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-correction-reason-description", children: [
7019
- /* @__PURE__ */ jsx20("span", { children: "Reason" }),
7020
- /* @__PURE__ */ jsx20("strong", { children: summary.description })
7226
+ /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-correction-reason-description", children: [
7227
+ /* @__PURE__ */ jsx21("span", { children: "Reason" }),
7228
+ /* @__PURE__ */ jsx21("strong", { children: summary.description })
7021
7229
  ] }),
7022
- details.length ? /* @__PURE__ */ jsx20("ul", { "aria-label": "Additional rejection details", children: details.map((issue, index) => /* @__PURE__ */ jsxs20("li", { children: [
7023
- issue.code ? /* @__PURE__ */ jsx20("code", { children: issue.code }) : null,
7024
- /* @__PURE__ */ jsx20("span", { children: issue.description })
7230
+ details.length ? /* @__PURE__ */ jsx21("ul", { "aria-label": "Additional rejection details", children: details.map((issue, index) => /* @__PURE__ */ jsxs21("li", { children: [
7231
+ issue.code ? /* @__PURE__ */ jsx21("code", { children: issue.code }) : null,
7232
+ /* @__PURE__ */ jsx21("span", { children: issue.description })
7025
7233
  ] }, `${issue.code || "issue"}-${index}`)) }) : null
7026
7234
  ] });
7027
7235
  }
@@ -7062,16 +7270,16 @@ function CorrectionVerificationContact({ delivery }) {
7062
7270
  { label: "Mail", values: mailingAddresses }
7063
7271
  ].filter((method) => method.values.length);
7064
7272
  if (!methods.length) return null;
7065
- return /* @__PURE__ */ jsxs20("aside", { className: "mb-lifecycle-correction-contact", children: [
7066
- /* @__PURE__ */ jsx20("strong", { children: "Need to verify the rejected information?" }),
7067
- /* @__PURE__ */ jsxs20("span", { children: [
7273
+ return /* @__PURE__ */ jsxs21("aside", { className: "mb-lifecycle-correction-contact", children: [
7274
+ /* @__PURE__ */ jsx21("strong", { children: "Need to verify the rejected information?" }),
7275
+ /* @__PURE__ */ jsxs21("span", { children: [
7068
7276
  "Contact ",
7069
7277
  delivery.payerName,
7070
7278
  " using any available method:"
7071
7279
  ] }),
7072
- /* @__PURE__ */ jsx20("dl", { children: methods.map((method) => /* @__PURE__ */ jsxs20("div", { children: [
7073
- /* @__PURE__ */ jsx20("dt", { children: method.label }),
7074
- /* @__PURE__ */ jsx20("dd", { children: /* @__PURE__ */ jsx20("ul", { children: method.values.map((value) => /* @__PURE__ */ jsx20("li", { children: method.href ? /* @__PURE__ */ jsx20("a", { href: method.href(value), ...method.label === "Portal" ? { target: "_blank", rel: "noreferrer" } : {}, children: value }) : value }, value)) }) })
7280
+ /* @__PURE__ */ jsx21("dl", { children: methods.map((method) => /* @__PURE__ */ jsxs21("div", { children: [
7281
+ /* @__PURE__ */ jsx21("dt", { children: method.label }),
7282
+ /* @__PURE__ */ jsx21("dd", { children: /* @__PURE__ */ jsx21("ul", { children: method.values.map((value) => /* @__PURE__ */ jsx21("li", { children: method.href ? /* @__PURE__ */ jsx21("a", { href: method.href(value), ...method.label === "Portal" ? { target: "_blank", rel: "noreferrer" } : {}, children: value }) : value }, value)) }) })
7075
7283
  ] }, method.label)) })
7076
7284
  ] });
7077
7285
  }
@@ -7190,22 +7398,22 @@ function shouldShowSandboxControls(environment, enabled = false) {
7190
7398
  function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint, claimsAdministratorSources, courtesyCopyRecipientOptions: courtesyCopyRecipientOptions2 = [], sandboxControls = false, className, style, loadingFallback, errorFallback, onChanged, ...options }) {
7191
7399
  const lifecycle = useBillLifecycle(options);
7192
7400
  const { data } = lifecycle;
7193
- const [tab, setTab] = useState16("details");
7194
- const [selectedSubmissionId, setSelectedSubmissionId] = useState16();
7195
- const [panel, setPanel] = useState16("");
7196
- const [notice, setNotice] = useState16("");
7197
- const [note, setNote] = useState16("");
7198
- const [reason, setReason] = useState16("");
7199
- const [correctionError, setCorrectionError] = useState16("");
7200
- const [newBillError, setNewBillError] = useState16("");
7201
- const [payment, setPayment] = useState16({ amount: 0, penaltyAmount: 0, interestAmount: 0, method: "check", checkNumber: "", depositDate: today(), note: "" });
7202
- const [duplicateError, setDuplicateError] = useState16("");
7401
+ const [tab, setTab] = useState17("details");
7402
+ const [selectedSubmissionId, setSelectedSubmissionId] = useState17();
7403
+ const [panel, setPanel] = useState17("");
7404
+ const [notice, setNotice] = useState17("");
7405
+ const [note, setNote] = useState17("");
7406
+ const [reason, setReason] = useState17("");
7407
+ const [correctionError, setCorrectionError] = useState17("");
7408
+ const [newBillError, setNewBillError] = useState17("");
7409
+ const [payment, setPayment] = useState17({ amount: 0, penaltyAmount: 0, interestAmount: 0, method: "check", checkNumber: "", depositDate: today(), note: "" });
7410
+ const [duplicateError, setDuplicateError] = useState17("");
7203
7411
  const currentAttemptKey = data?.attempts?.find((attempt) => attempt.isCurrent)?.id ?? data?.history?.filter((entry) => entry.kind === "submission").at(-1)?.id ?? data?.bill.id;
7204
- useEffect13(() => {
7412
+ useEffect14(() => {
7205
7413
  setPanel("");
7206
7414
  }, [currentAttemptKey]);
7207
7415
  const actor = actorName?.trim() ? { actorName: actorName.trim() } : {};
7208
- const lastData = useRef8(null);
7416
+ const lastData = useRef9(null);
7209
7417
  const correctionInitialBill = useMemo10(() => data ? correctionBill(data) : null, [data]);
7210
7418
  const correctionAttachments = useMemo10(() => data ? data.bill.attachments.map((attachment) => {
7211
7419
  const documentType = correctionDocumentType(attachment.documentType);
@@ -7221,7 +7429,7 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7221
7429
  };
7222
7430
  }) : [], [data, lifecycle]);
7223
7431
  const correctionAttentionFields = useMemo10(() => data?.rejection?.issues?.flatMap((issue) => issue.fieldPaths || []).filter((path, index, fields) => fields.indexOf(path) === index) || [], [data]);
7224
- useEffect13(() => {
7432
+ useEffect14(() => {
7225
7433
  if (!data || data === lastData.current) return;
7226
7434
  lastData.current = data;
7227
7435
  onChanged?.(data);
@@ -7233,13 +7441,13 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7233
7441
  interestAmount: 0
7234
7442
  }));
7235
7443
  }, [data, onChanged]);
7236
- if (lifecycle.isLoading && !data) return /* @__PURE__ */ jsx20(Fragment15, { children: loadingFallback ?? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-loading", children: "Loading bill\u2026" }) });
7444
+ if (lifecycle.isLoading && !data) return /* @__PURE__ */ jsx21(Fragment15, { children: loadingFallback ?? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-loading", children: "Loading bill\u2026" }) });
7237
7445
  if (!data) {
7238
7446
  const error = lifecycle.error ?? new Error("Bill could not be loaded.");
7239
- return /* @__PURE__ */ jsx20(Fragment15, { children: errorFallback?.(error, lifecycle.refresh) ?? /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-error", role: "alert", children: [
7240
- /* @__PURE__ */ jsx20("strong", { children: "Billing is unavailable." }),
7241
- /* @__PURE__ */ jsx20("span", { children: error.message }),
7242
- /* @__PURE__ */ jsx20("button", { type: "button", onClick: () => void lifecycle.refresh(), children: "Try again" })
7447
+ return /* @__PURE__ */ jsx21(Fragment15, { children: errorFallback?.(error, lifecycle.refresh) ?? /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-error", role: "alert", children: [
7448
+ /* @__PURE__ */ jsx21("strong", { children: "Billing is unavailable." }),
7449
+ /* @__PURE__ */ jsx21("span", { children: error.message }),
7450
+ /* @__PURE__ */ jsx21("button", { type: "button", onClick: () => void lifecycle.refresh(), children: "Try again" })
7243
7451
  ] }) });
7244
7452
  }
7245
7453
  const complete = async (message, task) => {
@@ -7362,121 +7570,121 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7362
7570
  const statusContacts = reportBillStatusContacts(data.delivery);
7363
7571
  const receiptEntries = (data.history ?? []).filter((entry) => entry.kind === "submission" || entry.kind === "ack");
7364
7572
  const reviewDeadline = secondReviewDeadline(data.eors);
7365
- return /* @__PURE__ */ jsxs20("section", { className: ["mb-connected-lifecycle", className].filter(Boolean).join(" "), style: mindBillAppearanceStyle(appearance, style), children: [
7366
- /* @__PURE__ */ jsx20("style", { children: CONNECTED_LIFECYCLE_STYLES }),
7367
- ribbonItems.length >= 2 ? /* @__PURE__ */ jsx20(BillSubmissionsRibbon, { items: ribbonItems, onSelect: (item) => {
7573
+ return /* @__PURE__ */ jsxs21("section", { className: ["mb-connected-lifecycle", className].filter(Boolean).join(" "), style: mindBillAppearanceStyle(appearance, style), children: [
7574
+ /* @__PURE__ */ jsx21("style", { children: CONNECTED_LIFECYCLE_STYLES }),
7575
+ ribbonItems.length >= 2 ? /* @__PURE__ */ jsx21(BillSubmissionsRibbon, { items: ribbonItems, onSelect: (item) => {
7368
7576
  setSelectedSubmissionId(item.id);
7369
7577
  setTab("details");
7370
7578
  setPanel("");
7371
7579
  }, ...appearance ? { appearance } : {} }) : null,
7372
- historical ? null : data.lifecycle.state.toLowerCase() === "rejected" && data.rejection ? /* @__PURE__ */ jsx20(BillRejectionNotice, { rejection: data.rejection, submittedAt: data.lifecycle.submittedAt ?? null, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx20(BillLifecycleProgress, { state: data.lifecycle.state, nativeStatus: data.lifecycle.nativeStatus, submittedAt: data.lifecycle.submittedAt ?? null, agingDays: data.lifecycle.agingDays ?? null, ...appearance ? { appearance } : {} }),
7373
- /* @__PURE__ */ jsxs20("header", { className: "mb-lifecycle-head", children: [
7374
- /* @__PURE__ */ jsxs20("div", { children: [
7375
- /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-title", children: /* @__PURE__ */ jsx20("h2", { children: historical && !selectedAttempt ? "Previous submission" : `Bill #${historical ? selectedAttempt?.billNumber : data.bill.billNumber}` }) }),
7376
- /* @__PURE__ */ jsxs20("p", { children: [
7580
+ historical ? null : data.lifecycle.state.toLowerCase() === "rejected" && data.rejection ? /* @__PURE__ */ jsx21(BillRejectionNotice, { rejection: data.rejection, submittedAt: data.lifecycle.submittedAt ?? null, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx21(BillLifecycleProgress, { state: data.lifecycle.state, nativeStatus: data.lifecycle.nativeStatus, submittedAt: data.lifecycle.submittedAt ?? null, agingDays: data.lifecycle.agingDays ?? null, ...appearance ? { appearance } : {} }),
7581
+ /* @__PURE__ */ jsxs21("header", { className: "mb-lifecycle-head", children: [
7582
+ /* @__PURE__ */ jsxs21("div", { children: [
7583
+ /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-title", children: /* @__PURE__ */ jsx21("h2", { children: historical && !selectedAttempt ? "Previous submission" : `Bill #${historical ? selectedAttempt?.billNumber : data.bill.billNumber}` }) }),
7584
+ /* @__PURE__ */ jsxs21("p", { children: [
7377
7585
  displayedData ? `Claim ${displayedData.injury.claimNumber || "\u2014"}` : "Previous submission",
7378
7586
  lifecycle.isRefreshing ? " \xB7 Refreshing\u2026" : ""
7379
7587
  ] })
7380
7588
  ] }),
7381
- !historical ? /* @__PURE__ */ jsxs20(Fragment15, { children: [
7382
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating, onClick: () => void lifecycle.downloadPacket().catch(() => void 0), children: "Download packet" }),
7383
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button secondary", disabled: lifecycle.isMutating, onClick: () => setPanel("courtesy_copy"), children: "Forward copy" })
7589
+ !historical ? /* @__PURE__ */ jsxs21(Fragment15, { children: [
7590
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating, onClick: () => void lifecycle.downloadPacket().catch(() => void 0), children: "Download packet" }),
7591
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button secondary", disabled: lifecycle.isMutating, onClick: () => setPanel("courtesy_copy"), children: "Forward copy" })
7384
7592
  ] }) : null
7385
7593
  ] }),
7386
- /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-tabs", role: "tablist", "aria-label": "Bill view", children: [
7387
- /* @__PURE__ */ jsx20("button", { type: "button", role: "tab", "aria-selected": tab === "details", onClick: () => setTab("details"), children: "Bill details" }),
7388
- /* @__PURE__ */ jsx20("button", { type: "button", role: "tab", "aria-selected": tab === "history", onClick: () => setTab("history"), children: "Bill history" })
7594
+ /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-tabs", role: "tablist", "aria-label": "Bill view", children: [
7595
+ /* @__PURE__ */ jsx21("button", { type: "button", role: "tab", "aria-selected": tab === "details", onClick: () => setTab("details"), children: "Bill details" }),
7596
+ /* @__PURE__ */ jsx21("button", { type: "button", role: "tab", "aria-selected": tab === "history", onClick: () => setTab("history"), children: "Bill history" })
7389
7597
  ] }),
7390
- tab === "details" ? /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: [
7391
- selectedAttempt && ribbonItems.length >= 2 ? /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-attempt-detail", "aria-label": "Selected submission detail", children: [
7392
- /* @__PURE__ */ jsxs20("header", { children: [
7393
- /* @__PURE__ */ jsxs20("div", { children: [
7394
- /* @__PURE__ */ jsx20("span", { children: "Selected submission" }),
7395
- /* @__PURE__ */ jsx20("h3", { children: selectedAttempt.label })
7598
+ tab === "details" ? /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: [
7599
+ selectedAttempt && ribbonItems.length >= 2 ? /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-attempt-detail", "aria-label": "Selected submission detail", children: [
7600
+ /* @__PURE__ */ jsxs21("header", { children: [
7601
+ /* @__PURE__ */ jsxs21("div", { children: [
7602
+ /* @__PURE__ */ jsx21("span", { children: "Selected submission" }),
7603
+ /* @__PURE__ */ jsx21("h3", { children: selectedAttempt.label })
7396
7604
  ] }),
7397
- /* @__PURE__ */ jsx20("strong", { children: selectedAttempt.isCurrent ? "Current" : "Previous" })
7605
+ /* @__PURE__ */ jsx21("strong", { children: selectedAttempt.isCurrent ? "Current" : "Previous" })
7398
7606
  ] }),
7399
- /* @__PURE__ */ jsxs20("dl", { children: [
7400
- /* @__PURE__ */ jsxs20("div", { children: [
7401
- /* @__PURE__ */ jsx20("dt", { children: "Bill" }),
7402
- /* @__PURE__ */ jsxs20("dd", { children: [
7607
+ /* @__PURE__ */ jsxs21("dl", { children: [
7608
+ /* @__PURE__ */ jsxs21("div", { children: [
7609
+ /* @__PURE__ */ jsx21("dt", { children: "Bill" }),
7610
+ /* @__PURE__ */ jsxs21("dd", { children: [
7403
7611
  "#",
7404
7612
  selectedAttempt.billNumber || data.bill.billNumber
7405
7613
  ] })
7406
7614
  ] }),
7407
- /* @__PURE__ */ jsxs20("div", { children: [
7408
- /* @__PURE__ */ jsx20("dt", { children: "Delivery" }),
7409
- /* @__PURE__ */ jsx20("dd", { children: selectedAttempt.deliveryLabel || "\u2014" })
7615
+ /* @__PURE__ */ jsxs21("div", { children: [
7616
+ /* @__PURE__ */ jsx21("dt", { children: "Delivery" }),
7617
+ /* @__PURE__ */ jsx21("dd", { children: selectedAttempt.deliveryLabel || "\u2014" })
7410
7618
  ] }),
7411
- /* @__PURE__ */ jsxs20("div", { children: [
7412
- /* @__PURE__ */ jsx20("dt", { children: "Sent" }),
7413
- /* @__PURE__ */ jsx20("dd", { children: selectedAttempt.sentAt ? new Date(selectedAttempt.sentAt).toLocaleString() : "\u2014" })
7619
+ /* @__PURE__ */ jsxs21("div", { children: [
7620
+ /* @__PURE__ */ jsx21("dt", { children: "Sent" }),
7621
+ /* @__PURE__ */ jsx21("dd", { children: selectedAttempt.sentAt ? new Date(selectedAttempt.sentAt).toLocaleString() : "\u2014" })
7414
7622
  ] }),
7415
- /* @__PURE__ */ jsxs20("div", { children: [
7416
- /* @__PURE__ */ jsx20("dt", { children: "Status" }),
7417
- /* @__PURE__ */ jsx20("dd", { children: selectedAttempt.status || selectedAttempt.ackLabel || "Submitted" })
7623
+ /* @__PURE__ */ jsxs21("div", { children: [
7624
+ /* @__PURE__ */ jsx21("dt", { children: "Status" }),
7625
+ /* @__PURE__ */ jsx21("dd", { children: selectedAttempt.status || selectedAttempt.ackLabel || "Submitted" })
7418
7626
  ] }),
7419
- selectedAttempt.complianceLabel ? /* @__PURE__ */ jsxs20("div", { children: [
7420
- /* @__PURE__ */ jsx20("dt", { children: selectedAttempt.complianceLabel }),
7421
- /* @__PURE__ */ jsx20("dd", { children: selectedAttempt.complianceAt ? new Date(selectedAttempt.complianceAt).toLocaleDateString() : "\u2014" })
7627
+ selectedAttempt.complianceLabel ? /* @__PURE__ */ jsxs21("div", { children: [
7628
+ /* @__PURE__ */ jsx21("dt", { children: selectedAttempt.complianceLabel }),
7629
+ /* @__PURE__ */ jsx21("dd", { children: selectedAttempt.complianceAt ? new Date(selectedAttempt.complianceAt).toLocaleDateString() : "\u2014" })
7422
7630
  ] }) : null
7423
7631
  ] })
7424
7632
  ] }) : null,
7425
- !historical && (data.eors.length || data.payments.length || ["processed", "denied", "partially_paid"].includes(data.lifecycle.state)) ? /* @__PURE__ */ jsx20(BillExplanationOfReview, { remittance: data.remittance, eors: data.eors, payments: data.payments, submittedAt: data.lifecycle.submittedAt ?? null, onOpenEor: lifecycle.openEor, ...appearance ? { appearance } : {} }) : null,
7426
- showSandboxControls ? /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-simulator", "aria-label": "Sandbox lifecycle simulator", children: [
7427
- /* @__PURE__ */ jsxs20("div", { children: [
7428
- /* @__PURE__ */ jsx20("span", { children: "Sandbox demo controls" }),
7429
- /* @__PURE__ */ jsx20("h3", { children: "Simulate the next payer response" }),
7430
- /* @__PURE__ */ jsx20("p", { children: "This changes sandbox data only. The host receives the result through the same lifecycle API and components partners use." })
7633
+ !historical && (data.eors.length || data.payments.length || ["processed", "denied", "partially_paid"].includes(data.lifecycle.state)) ? /* @__PURE__ */ jsx21(BillExplanationOfReview, { remittance: data.remittance, eors: data.eors, payments: data.payments, submittedAt: data.lifecycle.submittedAt ?? null, onOpenEor: lifecycle.openEor, ...appearance ? { appearance } : {} }) : null,
7634
+ showSandboxControls ? /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-simulator", "aria-label": "Sandbox lifecycle simulator", children: [
7635
+ /* @__PURE__ */ jsxs21("div", { children: [
7636
+ /* @__PURE__ */ jsx21("span", { children: "Sandbox demo controls" }),
7637
+ /* @__PURE__ */ jsx21("h3", { children: "Simulate the next payer response" }),
7638
+ /* @__PURE__ */ jsx21("p", { children: "This changes sandbox data only. The host receives the result through the same lifecycle API and components partners use." })
7431
7639
  ] }),
7432
- simulations.length ? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-simulator-actions", children: simulations.map((scenario) => /* @__PURE__ */ jsxs20("button", { type: "button", disabled: lifecycle.isMutating, onClick: () => void complete(`${scenario.label} simulated.`, () => lifecycle.simulateSandbox({ scenario: scenario.id })), children: [
7433
- /* @__PURE__ */ jsx20("strong", { children: scenario.label }),
7434
- /* @__PURE__ */ jsx20("span", { children: scenario.detail })
7435
- ] }, scenario.id)) }) : /* @__PURE__ */ jsx20("p", { className: "mb-lifecycle-simulator-idle", children: "No simulated payer transition is needed at this stage. Use the bill action below to continue." })
7640
+ simulations.length ? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-simulator-actions", children: simulations.map((scenario) => /* @__PURE__ */ jsxs21("button", { type: "button", disabled: lifecycle.isMutating, onClick: () => void complete(`${scenario.label} simulated.`, () => lifecycle.simulateSandbox({ scenario: scenario.id })), children: [
7641
+ /* @__PURE__ */ jsx21("strong", { children: scenario.label }),
7642
+ /* @__PURE__ */ jsx21("span", { children: scenario.detail })
7643
+ ] }, scenario.id)) }) : /* @__PURE__ */ jsx21("p", { className: "mb-lifecycle-simulator-idle", children: "No simulated payer transition is needed at this stage. Use the bill action below to continue." })
7436
7644
  ] }) : null,
7437
- historical ? /* @__PURE__ */ jsx20("p", { className: "mb-lifecycle-card", children: selectedDetail?.source === "submission_snapshot" ? "Saved as submitted. This previous submission is read-only; payment balances and current actions are shown on the current bill." : displayedData ? "Historical bill record. An exact as-submitted snapshot was not recorded for this older attempt; these are the stored bill values, not a guaranteed copy of the original packet." : "Detailed values were not saved for this historical submission. Select the current submission to see the current bill. We will not substitute current data for this older attempt." }) : null,
7438
- displayedData ? /* @__PURE__ */ jsx20(BillReadOnlyForm, { data: displayedData, ...!historical ? { onOpenAttachment: lifecycle.openAttachment } : {}, ...appearance ? { appearance } : {} }, activeSubmissionId) : null,
7439
- historical && selectedAttempt ? /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-card", "aria-label": "Retained submission files", children: [
7440
- /* @__PURE__ */ jsx20("h3", { children: "Retained submission files" }),
7441
- /* @__PURE__ */ jsx20("p", { children: "Exact files saved for this submission. These downloads do not include a regenerated current bill or a later EOR." }),
7442
- selectedDetail?.artifacts?.length ? selectedDetail.artifacts.map((artifact) => /* @__PURE__ */ jsxs20("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => void lifecycle.downloadSubmissionArtifact(selectedAttempt.id, artifact.id, artifact.label).catch(() => void 0), children: [
7645
+ historical ? /* @__PURE__ */ jsx21("p", { className: "mb-lifecycle-card", children: selectedDetail?.source === "submission_snapshot" ? "Saved as submitted. This previous submission is read-only; payment balances and current actions are shown on the current bill." : displayedData ? "Historical bill record. An exact as-submitted snapshot was not recorded for this older attempt; these are the stored bill values, not a guaranteed copy of the original packet." : "Detailed values were not saved for this historical submission. Select the current submission to see the current bill. We will not substitute current data for this older attempt." }) : null,
7646
+ displayedData ? /* @__PURE__ */ jsx21(BillReadOnlyForm, { data: displayedData, ...!historical ? { onOpenAttachment: lifecycle.openAttachment } : {}, ...appearance ? { appearance } : {} }, activeSubmissionId) : null,
7647
+ historical && selectedAttempt ? /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-card", "aria-label": "Retained submission files", children: [
7648
+ /* @__PURE__ */ jsx21("h3", { children: "Retained submission files" }),
7649
+ /* @__PURE__ */ jsx21("p", { children: "Exact files saved for this submission. These downloads do not include a regenerated current bill or a later EOR." }),
7650
+ selectedDetail?.artifacts?.length ? selectedDetail.artifacts.map((artifact) => /* @__PURE__ */ jsxs21("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => void lifecycle.downloadSubmissionArtifact(selectedAttempt.id, artifact.id, artifact.label).catch(() => void 0), children: [
7443
7651
  "Download ",
7444
7652
  artifact.kind === "submitted_edi" ? "submitted EDI" : "submitted attachment",
7445
7653
  ": ",
7446
7654
  artifact.label
7447
- ] }, artifact.id)) : /* @__PURE__ */ jsx20("p", { children: "No retained files are available for this submission." })
7655
+ ] }, artifact.id)) : /* @__PURE__ */ jsx21("p", { children: "No retained files are available for this submission." })
7448
7656
  ] }) : null,
7449
- !historical ? /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-notes", "aria-label": "Bill notes", children: [
7450
- /* @__PURE__ */ jsxs20("header", { children: [
7451
- /* @__PURE__ */ jsxs20("div", { children: [
7452
- /* @__PURE__ */ jsx20("h3", { children: "Team notes" }),
7453
- /* @__PURE__ */ jsx20("p", { children: "Shared with your workspace\u2019s billing team. Never sent to the payer." })
7657
+ !historical ? /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-notes", "aria-label": "Bill notes", children: [
7658
+ /* @__PURE__ */ jsxs21("header", { children: [
7659
+ /* @__PURE__ */ jsxs21("div", { children: [
7660
+ /* @__PURE__ */ jsx21("h3", { children: "Team notes" }),
7661
+ /* @__PURE__ */ jsx21("p", { children: "Shared with your workspace\u2019s billing team. Never sent to the payer." })
7454
7662
  ] }),
7455
- /* @__PURE__ */ jsx20("span", { children: billNotes.length })
7663
+ /* @__PURE__ */ jsx21("span", { children: billNotes.length })
7456
7664
  ] }),
7457
- billNotes.length ? /* @__PURE__ */ jsx20("ol", { children: billNotes.map((entry) => /* @__PURE__ */ jsxs20("li", { children: [
7458
- /* @__PURE__ */ jsx20("p", { children: entry.summary }),
7459
- /* @__PURE__ */ jsxs20("small", { children: [
7665
+ billNotes.length ? /* @__PURE__ */ jsx21("ol", { children: billNotes.map((entry) => /* @__PURE__ */ jsxs21("li", { children: [
7666
+ /* @__PURE__ */ jsx21("p", { children: entry.summary }),
7667
+ /* @__PURE__ */ jsxs21("small", { children: [
7460
7668
  entry.actor || "System",
7461
7669
  " \xB7 ",
7462
7670
  usDate(entry.date)
7463
7671
  ] })
7464
- ] }, entry.id)) }) : /* @__PURE__ */ jsx20("p", { className: "mb-lifecycle-notes-empty", children: "No notes yet." }),
7465
- /* @__PURE__ */ jsxs20("form", { onSubmit: (event) => {
7672
+ ] }, entry.id)) }) : /* @__PURE__ */ jsx21("p", { className: "mb-lifecycle-notes-empty", children: "No notes yet." }),
7673
+ /* @__PURE__ */ jsxs21("form", { onSubmit: (event) => {
7466
7674
  event.preventDefault();
7467
7675
  void addNote();
7468
7676
  }, children: [
7469
- /* @__PURE__ */ jsxs20("label", { children: [
7470
- /* @__PURE__ */ jsx20("span", { children: "Add a note" }),
7471
- /* @__PURE__ */ jsx20("textarea", { value: note, maxLength: 2e3, placeholder: "Add context for the billing team\u2026", onChange: (event) => setNote(event.target.value) })
7677
+ /* @__PURE__ */ jsxs21("label", { children: [
7678
+ /* @__PURE__ */ jsx21("span", { children: "Add a note" }),
7679
+ /* @__PURE__ */ jsx21("textarea", { value: note, maxLength: 2e3, placeholder: "Add context for the billing team\u2026", onChange: (event) => setNote(event.target.value) })
7472
7680
  ] }),
7473
- /* @__PURE__ */ jsx20("button", { type: "submit", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !note.trim(), children: lifecycle.isMutating ? "Adding\u2026" : "Add note" })
7681
+ /* @__PURE__ */ jsx21("button", { type: "submit", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !note.trim(), children: lifecycle.isMutating ? "Adding\u2026" : "Add note" })
7474
7682
  ] })
7475
7683
  ] }) : null
7476
- ] }) : /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: data.history?.length ? /* @__PURE__ */ jsx20(BillHistoryTable, { entries: data.history, ...!historical ? { onOpenDocument: lifecycle.openAttachment } : {}, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx20(BillActivityTimeline, { events: data.activity, ...appearance ? { appearance } : {} }) }),
7477
- !historical && (viewEor || actions.length) ? /* @__PURE__ */ jsxs20("aside", { className: "mb-lifecycle-actions-sheet", "aria-label": "Bill actions", children: [
7478
- viewEor && data.eors[0] ? /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => void lifecycle.openEor(data.eors[0]).catch(() => void 0), children: viewEor.label }) : null,
7479
- actions.map((action) => /* @__PURE__ */ jsx20("button", { type: "button", className: action.primary ? "mb-lifecycle-button primary" : "mb-lifecycle-button secondary", onClick: () => {
7684
+ ] }) : /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-tabpanel", role: "tabpanel", children: data.history?.length ? /* @__PURE__ */ jsx21(BillHistoryTable, { entries: data.history, ...!historical ? { onOpenDocument: lifecycle.openAttachment } : {}, ...appearance ? { appearance } : {} }) : /* @__PURE__ */ jsx21(BillActivityTimeline, { events: data.activity, ...appearance ? { appearance } : {} }) }),
7685
+ !historical && (viewEor || actions.length) ? /* @__PURE__ */ jsxs21("aside", { className: "mb-lifecycle-actions-sheet", "aria-label": "Bill actions", children: [
7686
+ viewEor && data.eors[0] ? /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => void lifecycle.openEor(data.eors[0]).catch(() => void 0), children: viewEor.label }) : null,
7687
+ actions.map((action) => /* @__PURE__ */ jsx21("button", { type: "button", className: action.primary ? "mb-lifecycle-button primary" : "mb-lifecycle-button secondary", onClick: () => {
7480
7688
  const next = actionPanel(action);
7481
7689
  if (!next) return;
7482
7690
  if (next === "resubmit") setCorrectionError("");
@@ -7485,37 +7693,37 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7485
7693
  setPanel(next);
7486
7694
  }, children: action.label }, action.id))
7487
7695
  ] }) : null,
7488
- activePanel === "courtesy_copy" ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: "Forward courtesy copy", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsx20(BillCourtesyCopyForm, { documents: data.bill.attachments, recipientOptions: courtesyCopyRecipientOptions2, subject: `Courtesy copy \u2014 bill #${data.bill.billNumber}`, environment: data.environment, onPreview: lifecycle.previewCourtesyCopy, onSend: lifecycle.sendCourtesyCopy, onSent: () => {
7696
+ activePanel === "courtesy_copy" ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: "Forward courtesy copy", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsx21(BillCourtesyCopyForm, { documents: data.bill.attachments, recipientOptions: courtesyCopyRecipientOptions2, subject: `Courtesy copy \u2014 bill #${data.bill.billNumber}`, environment: data.environment, onPreview: lifecycle.previewCourtesyCopy, onSend: lifecycle.sendCourtesyCopy, onSent: () => {
7489
7697
  void lifecycle.refresh();
7490
7698
  }, ...appearance ? { appearance } : {} }) }) : null,
7491
- activePanel === "ibr" ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: "Prepare Independent Bill Review packet", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-panel", children: [
7492
- /* @__PURE__ */ jsx20("header", { style: { paddingRight: 44 }, children: /* @__PURE__ */ jsx20("h3", { children: "Prepare Independent Bill Review packet" }) }),
7493
- /* @__PURE__ */ jsx20("p", { children: "Download a PDF packet for self-filing Independent Bill Review (IBR). Preparing this packet does not file the review, send it to a payer, or change the bill status." }),
7494
- lifecycle.error ? /* @__PURE__ */ jsx20("p", { role: "alert", className: "mb-lifecycle-message error", children: lifecycle.error.message }) : null,
7495
- /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-panel-actions", children: [
7496
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button secondary", disabled: lifecycle.isMutating, onClick: () => setPanel(""), children: "Cancel" }),
7497
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating, onClick: () => void lifecycle.downloadIbrPacket().then(() => {
7699
+ activePanel === "ibr" ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: "Prepare Independent Bill Review packet", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-panel", children: [
7700
+ /* @__PURE__ */ jsx21("header", { style: { paddingRight: 44 }, children: /* @__PURE__ */ jsx21("h3", { children: "Prepare Independent Bill Review packet" }) }),
7701
+ /* @__PURE__ */ jsx21("p", { children: "Download a PDF packet for self-filing Independent Bill Review (IBR). Preparing this packet does not file the review, send it to a payer, or change the bill status." }),
7702
+ lifecycle.error ? /* @__PURE__ */ jsx21("p", { role: "alert", className: "mb-lifecycle-message error", children: lifecycle.error.message }) : null,
7703
+ /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-panel-actions", children: [
7704
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button secondary", disabled: lifecycle.isMutating, onClick: () => setPanel(""), children: "Cancel" }),
7705
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating, onClick: () => void lifecycle.downloadIbrPacket().then(() => {
7498
7706
  setPanel("");
7499
7707
  setNotice("IBR packet prepared for self-filing. The review has not been filed.");
7500
7708
  }).catch(() => void 0), children: lifecycle.isMutating ? "Preparing\u2026" : "Prepare IBR packet" })
7501
7709
  ] })
7502
7710
  ] }) }) : null,
7503
- activePanel === "resubmit" && correctionInitialBill ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: "Correct and resubmit", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-correction", children: [
7504
- /* @__PURE__ */ jsx20("header", { children: /* @__PURE__ */ jsxs20("div", { children: [
7505
- /* @__PURE__ */ jsx20("h3", { children: "Correct and resubmit" }),
7506
- /* @__PURE__ */ jsx20("p", { children: "Review the rejected snapshot, correct the highlighted information, and submit a new immutable attempt under this bill." })
7711
+ activePanel === "resubmit" && correctionInitialBill ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: "Correct and resubmit", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-correction", children: [
7712
+ /* @__PURE__ */ jsx21("header", { children: /* @__PURE__ */ jsxs21("div", { children: [
7713
+ /* @__PURE__ */ jsx21("h3", { children: "Correct and resubmit" }),
7714
+ /* @__PURE__ */ jsx21("p", { children: "Review the rejected snapshot, correct the highlighted information, and submit a new immutable attempt under this bill." })
7507
7715
  ] }) }),
7508
- data.environment === "live" ? /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-live-warning", children: [
7509
- /* @__PURE__ */ jsx20("strong", { children: "Live clearinghouse submission" }),
7510
- /* @__PURE__ */ jsx20("span", { children: "Resubmitting sends a real bill. Confirm the corrected information before continuing." })
7716
+ data.environment === "live" ? /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-live-warning", children: [
7717
+ /* @__PURE__ */ jsx21("strong", { children: "Live clearinghouse submission" }),
7718
+ /* @__PURE__ */ jsx21("span", { children: "Resubmitting sends a real bill. Confirm the corrected information before continuing." })
7511
7719
  ] }) : null,
7512
- data.rejection ? /* @__PURE__ */ jsx20(CorrectionRejectionReason, { rejection: data.rejection }) : null,
7513
- /* @__PURE__ */ jsx20(CorrectionVerificationContact, { delivery: data.delivery }),
7514
- /* @__PURE__ */ jsxs20("label", { className: "mb-lifecycle-correction-note", children: [
7515
- /* @__PURE__ */ jsx20("span", { children: "Correction note (optional)" }),
7516
- /* @__PURE__ */ jsx20("textarea", { value: reason, placeholder: "What changed before resubmission?", onChange: (event) => setReason(event.target.value) })
7720
+ data.rejection ? /* @__PURE__ */ jsx21(CorrectionRejectionReason, { rejection: data.rejection }) : null,
7721
+ /* @__PURE__ */ jsx21(CorrectionVerificationContact, { delivery: data.delivery }),
7722
+ /* @__PURE__ */ jsxs21("label", { className: "mb-lifecycle-correction-note", children: [
7723
+ /* @__PURE__ */ jsx21("span", { children: "Correction note (optional)" }),
7724
+ /* @__PURE__ */ jsx21("textarea", { value: reason, placeholder: "What changed before resubmission?", onChange: (event) => setReason(event.target.value) })
7517
7725
  ] }),
7518
- /* @__PURE__ */ jsx20(
7726
+ /* @__PURE__ */ jsx21(
7519
7727
  BillSubmissionForm,
7520
7728
  {
7521
7729
  className: "mbsf-lifecycle-correction",
@@ -7541,18 +7749,18 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7541
7749
  ...appearance ? { appearance } : {}
7542
7750
  }
7543
7751
  ),
7544
- correctionError ? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-message error", role: "alert", children: correctionError }) : null
7752
+ correctionError ? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-message error", role: "alert", children: correctionError }) : null
7545
7753
  ] }) }) : null,
7546
- activePanel === "submit_new_bill" && correctionInitialBill ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: "Submit New Bill", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-correction", children: [
7547
- /* @__PURE__ */ jsx20("header", { children: /* @__PURE__ */ jsxs20("div", { children: [
7548
- /* @__PURE__ */ jsx20("h3", { children: "Submit New Bill" }),
7549
- /* @__PURE__ */ jsx20("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." })
7754
+ activePanel === "submit_new_bill" && correctionInitialBill ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: "Submit New Bill", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-correction", children: [
7755
+ /* @__PURE__ */ jsx21("header", { children: /* @__PURE__ */ jsxs21("div", { children: [
7756
+ /* @__PURE__ */ jsx21("h3", { children: "Submit New Bill" }),
7757
+ /* @__PURE__ */ jsx21("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." })
7550
7758
  ] }) }),
7551
- /* @__PURE__ */ jsxs20("label", { className: "mb-lifecycle-correction-note", children: [
7552
- /* @__PURE__ */ jsx20("span", { children: "Submission note (optional)" }),
7553
- /* @__PURE__ */ jsx20("textarea", { value: reason, placeholder: "Why is a new bill being submitted?", onChange: (event) => setReason(event.target.value) })
7759
+ /* @__PURE__ */ jsxs21("label", { className: "mb-lifecycle-correction-note", children: [
7760
+ /* @__PURE__ */ jsx21("span", { children: "Submission note (optional)" }),
7761
+ /* @__PURE__ */ jsx21("textarea", { value: reason, placeholder: "Why is a new bill being submitted?", onChange: (event) => setReason(event.target.value) })
7554
7762
  ] }),
7555
- /* @__PURE__ */ jsx20(
7763
+ /* @__PURE__ */ jsx21(
7556
7764
  BillSubmissionForm,
7557
7765
  {
7558
7766
  className: "mbsf-lifecycle-correction",
@@ -7577,10 +7785,10 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7577
7785
  ...appearance ? { appearance } : {}
7578
7786
  }
7579
7787
  ),
7580
- newBillError ? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-message error", role: "alert", children: newBillError }) : null
7788
+ newBillError ? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-message error", role: "alert", children: newBillError }) : null
7581
7789
  ] }) }) : null,
7582
- activePanel === "second_review" ? /* @__PURE__ */ jsxs20(LifecycleDialog, { title: "Submit Second Review", wide: true, onClose: () => setPanel(""), children: [
7583
- /* @__PURE__ */ jsx20(
7790
+ activePanel === "second_review" ? /* @__PURE__ */ jsxs21(LifecycleDialog, { title: "Submit Second Review", wide: true, onClose: () => setPanel(""), children: [
7791
+ /* @__PURE__ */ jsx21(
7584
7792
  SecondReviewForm,
7585
7793
  {
7586
7794
  data,
@@ -7593,86 +7801,86 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7593
7801
  onSubmit: (input) => complete("Second Review submitted.", () => lifecycle.submitSecondReview({ ...input, ...actor }))
7594
7802
  }
7595
7803
  ),
7596
- reviewDeadline ? /* @__PURE__ */ jsxs20("p", { className: "mb-lifecycle-deadline-hint", children: [
7804
+ reviewDeadline ? /* @__PURE__ */ jsxs21("p", { className: "mb-lifecycle-deadline-hint", children: [
7597
7805
  "Second Review must be requested within 90 days of the denial EOR (dated ",
7598
7806
  usDate(reviewDeadline.eorDate),
7599
7807
  ") \u2014 file by ",
7600
- /* @__PURE__ */ jsx20("strong", { children: usDate(reviewDeadline.deadline) }),
7808
+ /* @__PURE__ */ jsx21("strong", { children: usDate(reviewDeadline.deadline) }),
7601
7809
  "."
7602
7810
  ] }) : null
7603
7811
  ] }) : null,
7604
- activePanel === "payment" ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: "Post payment", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-panel", children: [
7605
- /* @__PURE__ */ jsxs20("div", { children: [
7606
- /* @__PURE__ */ jsx20("h3", { children: "Post payment" }),
7607
- /* @__PURE__ */ jsx20("p", { children: "Record a full or partial payment, plus any penalty and interest received." })
7812
+ activePanel === "payment" ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: "Post payment", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-panel", children: [
7813
+ /* @__PURE__ */ jsxs21("div", { children: [
7814
+ /* @__PURE__ */ jsx21("h3", { children: "Post payment" }),
7815
+ /* @__PURE__ */ jsx21("p", { children: "Record a full or partial payment, plus any penalty and interest received." })
7608
7816
  ] }),
7609
- /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-fields two", children: [
7610
- /* @__PURE__ */ jsxs20("label", { children: [
7611
- /* @__PURE__ */ jsx20("span", { children: "Amount applied to bill" }),
7612
- /* @__PURE__ */ jsx20("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) })) })
7817
+ /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-fields two", children: [
7818
+ /* @__PURE__ */ jsxs21("label", { children: [
7819
+ /* @__PURE__ */ jsx21("span", { children: "Amount applied to bill" }),
7820
+ /* @__PURE__ */ jsx21("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) })) })
7613
7821
  ] }),
7614
- /* @__PURE__ */ jsxs20("label", { children: [
7615
- /* @__PURE__ */ jsx20("span", { children: "Penalty" }),
7616
- /* @__PURE__ */ jsx20("input", { type: "number", min: "0", step: "0.01", value: payment.penaltyAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, penaltyAmount: Number(event.target.value) })) })
7822
+ /* @__PURE__ */ jsxs21("label", { children: [
7823
+ /* @__PURE__ */ jsx21("span", { children: "Penalty" }),
7824
+ /* @__PURE__ */ jsx21("input", { type: "number", min: "0", step: "0.01", value: payment.penaltyAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, penaltyAmount: Number(event.target.value) })) })
7617
7825
  ] }),
7618
- /* @__PURE__ */ jsxs20("label", { children: [
7619
- /* @__PURE__ */ jsx20("span", { children: "Interest" }),
7620
- /* @__PURE__ */ jsx20("input", { type: "number", min: "0", step: "0.01", value: payment.interestAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, interestAmount: Number(event.target.value) })) })
7826
+ /* @__PURE__ */ jsxs21("label", { children: [
7827
+ /* @__PURE__ */ jsx21("span", { children: "Interest" }),
7828
+ /* @__PURE__ */ jsx21("input", { type: "number", min: "0", step: "0.01", value: payment.interestAmount || "", placeholder: "0.00", onChange: (event) => setPayment((current) => ({ ...current, interestAmount: Number(event.target.value) })) })
7621
7829
  ] }),
7622
- /* @__PURE__ */ jsxs20("label", { children: [
7623
- /* @__PURE__ */ jsx20("span", { children: "Method" }),
7624
- /* @__PURE__ */ jsxs20("select", { value: payment.method, onChange: (event) => setPayment((current) => ({ ...current, method: event.target.value })), children: [
7625
- /* @__PURE__ */ jsx20("option", { value: "check", children: "Check" }),
7626
- /* @__PURE__ */ jsx20("option", { value: "eft", children: "EFT" })
7830
+ /* @__PURE__ */ jsxs21("label", { children: [
7831
+ /* @__PURE__ */ jsx21("span", { children: "Method" }),
7832
+ /* @__PURE__ */ jsxs21("select", { value: payment.method, onChange: (event) => setPayment((current) => ({ ...current, method: event.target.value })), children: [
7833
+ /* @__PURE__ */ jsx21("option", { value: "check", children: "Check" }),
7834
+ /* @__PURE__ */ jsx21("option", { value: "eft", children: "EFT" })
7627
7835
  ] })
7628
7836
  ] }),
7629
- /* @__PURE__ */ jsxs20("label", { children: [
7630
- /* @__PURE__ */ jsx20("span", { children: payment.method === "check" ? "Check number" : "EFT reference" }),
7631
- /* @__PURE__ */ jsx20("input", { value: payment.checkNumber, onChange: (event) => setPayment((current) => ({ ...current, checkNumber: event.target.value })) })
7837
+ /* @__PURE__ */ jsxs21("label", { children: [
7838
+ /* @__PURE__ */ jsx21("span", { children: payment.method === "check" ? "Check number" : "EFT reference" }),
7839
+ /* @__PURE__ */ jsx21("input", { value: payment.checkNumber, onChange: (event) => setPayment((current) => ({ ...current, checkNumber: event.target.value })) })
7632
7840
  ] }),
7633
- /* @__PURE__ */ jsxs20("label", { children: [
7634
- /* @__PURE__ */ jsx20("span", { children: "Deposit date" }),
7635
- /* @__PURE__ */ jsx20("input", { required: true, value: payment.depositDate, placeholder: "MM/DD/YYYY", onChange: (event) => setPayment((current) => ({ ...current, depositDate: event.target.value })) })
7841
+ /* @__PURE__ */ jsxs21("label", { children: [
7842
+ /* @__PURE__ */ jsx21("span", { children: "Deposit date" }),
7843
+ /* @__PURE__ */ jsx21("input", { required: true, value: payment.depositDate, placeholder: "MM/DD/YYYY", onChange: (event) => setPayment((current) => ({ ...current, depositDate: event.target.value })) })
7636
7844
  ] }),
7637
- /* @__PURE__ */ jsxs20("label", { className: "full", children: [
7638
- /* @__PURE__ */ jsx20("span", { children: "Note (optional)" }),
7639
- /* @__PURE__ */ jsx20("input", { value: payment.note, onChange: (event) => setPayment((current) => ({ ...current, note: event.target.value })) })
7845
+ /* @__PURE__ */ jsxs21("label", { className: "full", children: [
7846
+ /* @__PURE__ */ jsx21("span", { children: "Note (optional)" }),
7847
+ /* @__PURE__ */ jsx21("input", { value: payment.note, onChange: (event) => setPayment((current) => ({ ...current, note: event.target.value })) })
7640
7848
  ] })
7641
7849
  ] }),
7642
- /* @__PURE__ */ jsxs20("div", { className: "mb-payment-total", children: [
7643
- /* @__PURE__ */ jsx20("span", { children: "Total received" }),
7644
- /* @__PURE__ */ jsx20("strong", { children: new Intl.NumberFormat(void 0, { style: "currency", currency: "USD" }).format(payment.amount + (payment.penaltyAmount ?? 0) + (payment.interestAmount ?? 0)) })
7850
+ /* @__PURE__ */ jsxs21("div", { className: "mb-payment-total", children: [
7851
+ /* @__PURE__ */ jsx21("span", { children: "Total received" }),
7852
+ /* @__PURE__ */ jsx21("strong", { children: new Intl.NumberFormat(void 0, { style: "currency", currency: "USD" }).format(payment.amount + (payment.penaltyAmount ?? 0) + (payment.interestAmount ?? 0)) })
7645
7853
  ] }),
7646
- /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-panel-actions", children: [
7647
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
7648
- /* @__PURE__ */ jsx20("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" })
7854
+ /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-panel-actions", children: [
7855
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
7856
+ /* @__PURE__ */ jsx21("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" })
7649
7857
  ] })
7650
7858
  ] }) }) : null,
7651
- activePanel === "close" || activePanel === "reopen" ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: activePanel === "close" ? "Close bill" : "Reopen bill", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-panel", children: [
7652
- /* @__PURE__ */ jsxs20("div", { children: [
7653
- /* @__PURE__ */ jsx20("h3", { children: activePanel === "close" ? "Close bill" : "Reopen bill" }),
7654
- /* @__PURE__ */ jsx20("p", { children: activePanel === "close" ? "The immutable submission and history remain available." : "Return this bill to active follow-up without changing the submitted snapshot." })
7859
+ activePanel === "close" || activePanel === "reopen" ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: activePanel === "close" ? "Close bill" : "Reopen bill", onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-panel", children: [
7860
+ /* @__PURE__ */ jsxs21("div", { children: [
7861
+ /* @__PURE__ */ jsx21("h3", { children: activePanel === "close" ? "Close bill" : "Reopen bill" }),
7862
+ /* @__PURE__ */ jsx21("p", { children: activePanel === "close" ? "The immutable submission and history remain available." : "Return this bill to active follow-up without changing the submitted snapshot." })
7655
7863
  ] }),
7656
- /* @__PURE__ */ jsxs20("label", { children: [
7657
- /* @__PURE__ */ jsx20("span", { children: "Reason" }),
7658
- /* @__PURE__ */ jsx20("textarea", { required: true, value: reason, onChange: (event) => setReason(event.target.value) })
7864
+ /* @__PURE__ */ jsxs21("label", { children: [
7865
+ /* @__PURE__ */ jsx21("span", { children: "Reason" }),
7866
+ /* @__PURE__ */ jsx21("textarea", { required: true, value: reason, onChange: (event) => setReason(event.target.value) })
7659
7867
  ] }),
7660
- /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-panel-actions", children: [
7661
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
7662
- /* @__PURE__ */ jsx20("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !reason.trim(), onClick: () => void complete(activePanel === "close" ? "Bill closed." : "Bill reopened.", () => activePanel === "close" ? lifecycle.closeBill({ reason, ...actor }) : lifecycle.reopenBill({ reason, ...actor })), children: lifecycle.isMutating ? "Saving\u2026" : activePanel === "close" ? "Close bill" : "Reopen bill" })
7868
+ /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-panel-actions", children: [
7869
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button secondary", onClick: () => setPanel(""), children: "Cancel" }),
7870
+ /* @__PURE__ */ jsx21("button", { type: "button", className: "mb-lifecycle-button primary", disabled: lifecycle.isMutating || !reason.trim(), onClick: () => void complete(activePanel === "close" ? "Bill closed." : "Bill reopened.", () => activePanel === "close" ? lifecycle.closeBill({ reason, ...actor }) : lifecycle.reopenBill({ reason, ...actor })), children: lifecycle.isMutating ? "Saving\u2026" : activePanel === "close" ? "Close bill" : "Reopen bill" })
7663
7871
  ] })
7664
7872
  ] }) }) : null,
7665
- activePanel === "send_duplicate" && correctionInitialBill ? /* @__PURE__ */ jsx20(LifecycleDialog, { title: "Send duplicate bill", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs20("section", { className: "mb-lifecycle-correction", children: [
7666
- /* @__PURE__ */ jsx20("header", { children: /* @__PURE__ */ jsxs20("div", { children: [
7667
- /* @__PURE__ */ jsx20("h3", { children: "Send duplicate bill" }),
7668
- /* @__PURE__ */ jsx20("p", { children: "Review and edit any bill field before creating a duplicate submission. The original bill and its history stay unchanged." })
7873
+ activePanel === "send_duplicate" && correctionInitialBill ? /* @__PURE__ */ jsx21(LifecycleDialog, { title: "Send duplicate bill", wide: true, onClose: () => setPanel(""), children: /* @__PURE__ */ jsxs21("section", { className: "mb-lifecycle-correction", children: [
7874
+ /* @__PURE__ */ jsx21("header", { children: /* @__PURE__ */ jsxs21("div", { children: [
7875
+ /* @__PURE__ */ jsx21("h3", { children: "Send duplicate bill" }),
7876
+ /* @__PURE__ */ jsx21("p", { children: "Review and edit any bill field before creating a duplicate submission. The original bill and its history stay unchanged." })
7669
7877
  ] }) }),
7670
- data.environment === "live" ? /* @__PURE__ */ jsxs20("div", { className: "mb-lifecycle-live-warning", children: [
7671
- /* @__PURE__ */ jsx20("strong", { children: "Live clearinghouse submission" }),
7672
- /* @__PURE__ */ jsx20("span", { children: "The duplicate will be sent only after you confirm its delivery route in the next dialog." })
7878
+ data.environment === "live" ? /* @__PURE__ */ jsxs21("div", { className: "mb-lifecycle-live-warning", children: [
7879
+ /* @__PURE__ */ jsx21("strong", { children: "Live clearinghouse submission" }),
7880
+ /* @__PURE__ */ jsx21("span", { children: "The duplicate will be sent only after you confirm its delivery route in the next dialog." })
7673
7881
  ] }) : null,
7674
- /* @__PURE__ */ jsx20(CorrectionVerificationContact, { delivery: data.delivery }),
7675
- /* @__PURE__ */ jsx20(
7882
+ /* @__PURE__ */ jsx21(CorrectionVerificationContact, { delivery: data.delivery }),
7883
+ /* @__PURE__ */ jsx21(
7676
7884
  BillSubmissionForm,
7677
7885
  {
7678
7886
  className: "mbsf-lifecycle-correction",
@@ -7697,15 +7905,15 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7697
7905
  ...appearance ? { appearance } : {}
7698
7906
  }
7699
7907
  ),
7700
- duplicateError ? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-message error", role: "alert", children: duplicateError }) : null
7908
+ duplicateError ? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-message error", role: "alert", children: duplicateError }) : null
7701
7909
  ] }) }) : null,
7702
- activePanel === "report_status" ? /* @__PURE__ */ jsx20(
7910
+ activePanel === "report_status" ? /* @__PURE__ */ jsx21(
7703
7911
  ReportBillStatusDialog,
7704
7912
  {
7705
7913
  ...data.delivery.directory ? { directory: data.delivery.directory } : {},
7706
7914
  ...statusContacts.claimsAdmin ? { claimsAdmin: statusContacts.claimsAdmin } : {},
7707
7915
  ...statusContacts.billReview ? { billReview: statusContacts.billReview } : {},
7708
- ...receiptEntries.length ? { receipt: /* @__PURE__ */ jsx20(BillHistoryTable, { entries: receiptEntries, onOpenDocument: lifecycle.openAttachment, ...appearance ? { appearance } : {} }) } : {},
7916
+ ...receiptEntries.length ? { receipt: /* @__PURE__ */ jsx21(BillHistoryTable, { entries: receiptEntries, onOpenDocument: lifecycle.openAttachment, ...appearance ? { appearance } : {} }) } : {},
7709
7917
  submitting: lifecycle.isMutating,
7710
7918
  error: lifecycle.error?.message ?? null,
7711
7919
  onCancel: () => setPanel(""),
@@ -7713,8 +7921,8 @@ function ConnectedBillLifecycle({ appearance, actorName, claimsAdministratorHint
7713
7921
  ...appearance ? { appearance } : {}
7714
7922
  }
7715
7923
  ) : null,
7716
- notice ? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-message success", role: "status", children: notice }) : null,
7717
- lifecycle.error ? /* @__PURE__ */ jsx20("div", { className: "mb-lifecycle-message error", role: "alert", children: lifecycle.error.message }) : null
7924
+ notice ? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-message success", role: "status", children: notice }) : null,
7925
+ lifecycle.error ? /* @__PURE__ */ jsx21("div", { className: "mb-lifecycle-message error", role: "alert", children: lifecycle.error.message }) : null
7718
7926
  ] });
7719
7927
  }
7720
7928
  var CONNECTED_LIFECYCLE_STYLES = `
@@ -7732,14 +7940,14 @@ var CONNECTED_LIFECYCLE_STYLES = `
7732
7940
  // src/connected-billing-workspace.tsx
7733
7941
  import {
7734
7942
  useCallback as useCallback5,
7735
- useEffect as useEffect14,
7943
+ useEffect as useEffect15,
7736
7944
  useLayoutEffect,
7737
7945
  useMemo as useMemo11,
7738
- useRef as useRef9,
7739
- useState as useState17
7946
+ useRef as useRef10,
7947
+ useState as useState18
7740
7948
  } from "react";
7741
- import { Fragment as Fragment16, jsx as jsx21, jsxs as jsxs21 } from "react/jsx-runtime";
7742
- var css13 = `
7949
+ import { Fragment as Fragment16, jsx as jsx22, jsxs as jsxs22 } from "react/jsx-runtime";
7950
+ var css14 = `
7743
7951
  .mbow-select{max-width:100%}
7744
7952
  .mbow{color:var(--mb-text);font:14px/1.45 var(--mb-font);background:var(--mb-soft);border-radius:var(--mb-radius);padding:20px}.mbow,.mbow *{box-sizing:border-box}.mbow h2,.mbow h3,.mbow p{margin:0}.mbow a{color:var(--mb-accent)}
7745
7953
  .mbow-workspace{width:100%;height:100%;max-height:var(--mbow-available-height,100dvh);min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
@@ -7757,10 +7965,10 @@ function money7(value) {
7757
7965
  }
7758
7966
  function RenderingProviderFilter({ value, options, onChange }) {
7759
7967
  if (!options && !value) return null;
7760
- return /* @__PURE__ */ jsxs21("select", { className: "mbow-select", "aria-label": "Rendering provider filter", value, onChange: (event) => onChange(event.target.value), children: [
7761
- /* @__PURE__ */ jsx21("option", { value: "", children: "All rendering providers" }),
7762
- value && !options?.some((option) => option.id === value) ? /* @__PURE__ */ jsx21("option", { value, children: "Selected rendering provider" }) : null,
7763
- options?.map((option) => /* @__PURE__ */ jsx21("option", { value: option.id, children: option.name }, option.id))
7968
+ return /* @__PURE__ */ jsxs22("select", { className: "mbow-select", "aria-label": "Rendering provider filter", value, onChange: (event) => onChange(event.target.value), children: [
7969
+ /* @__PURE__ */ jsx22("option", { value: "", children: "All rendering providers" }),
7970
+ value && !options?.some((option) => option.id === value) ? /* @__PURE__ */ jsx22("option", { value, children: "Selected rendering provider" }) : null,
7971
+ options?.map((option) => /* @__PURE__ */ jsx22("option", { value: option.id, children: option.name }, option.id))
7764
7972
  ] });
7765
7973
  }
7766
7974
  function shortDate(value) {
@@ -7776,14 +7984,14 @@ function defaultRange(days = 29) {
7776
7984
  return { from: iso(from), to: iso(to) };
7777
7985
  }
7778
7986
  function Surface({ appearance, className = "", style, children, surfaceRef }) {
7779
- return /* @__PURE__ */ jsxs21("div", { ref: surfaceRef, className: `mbow ${className}`.trim(), style: mindBillAppearanceStyle(appearance, style), children: [
7780
- /* @__PURE__ */ jsx21("style", { children: css13 }),
7987
+ return /* @__PURE__ */ jsxs22("div", { ref: surfaceRef, className: `mbow ${className}`.trim(), style: mindBillAppearanceStyle(appearance, style), children: [
7988
+ /* @__PURE__ */ jsx22("style", { children: css14 }),
7781
7989
  children
7782
7990
  ] });
7783
7991
  }
7784
7992
  function useAvailableViewportHeight() {
7785
- const workspaceRef = useRef9(null);
7786
- const [availableHeight, setAvailableHeight] = useState17(null);
7993
+ const workspaceRef = useRef10(null);
7994
+ const [availableHeight, setAvailableHeight] = useState18(null);
7787
7995
  useLayoutEffect(() => {
7788
7996
  const element = workspaceRef.current;
7789
7997
  if (!element || typeof window === "undefined") return;
@@ -7818,11 +8026,11 @@ function BillSearchContent({
7818
8026
  onSelectBill,
7819
8027
  heading
7820
8028
  }) {
7821
- const [query, setQuery] = useState17({ age: "all", page: 1, pageSize: 25, sort: "submitted_desc", ...initialQuery, status: initialQuery?.status === "submitted" ? "sent" : initialQuery?.status ?? "all" });
7822
- const [draft, setDraft] = useState17(initialQuery?.q ?? "");
7823
- const [result, setResult] = useState17(null);
7824
- const [error, setError] = useState17(null);
7825
- const [loading, setLoading] = useState17(true);
8029
+ const [query, setQuery] = useState18({ age: "all", page: 1, pageSize: 25, sort: "submitted_desc", ...initialQuery, status: initialQuery?.status === "submitted" ? "sent" : initialQuery?.status ?? "all" });
8030
+ const [draft, setDraft] = useState18(initialQuery?.q ?? "");
8031
+ const [result, setResult] = useState18(null);
8032
+ const [error, setError] = useState18(null);
8033
+ const [loading, setLoading] = useState18(true);
7826
8034
  const load = useCallback5(async (signal) => {
7827
8035
  setLoading(true);
7828
8036
  setError(null);
@@ -7834,78 +8042,78 @@ function BillSearchContent({
7834
8042
  if (!signal?.aborted) setLoading(false);
7835
8043
  }
7836
8044
  }, [client, query]);
7837
- useEffect14(() => {
8045
+ useEffect15(() => {
7838
8046
  const controller = new AbortController();
7839
8047
  void load(controller.signal);
7840
8048
  return () => controller.abort();
7841
8049
  }, [load]);
7842
8050
  const update = (next) => setQuery((current) => ({ ...current, ...next, page: next.page ?? 1 }));
7843
8051
  const pageCount = Math.max(1, Math.ceil((result?.total ?? 0) / (result?.pageSize ?? 25)));
7844
- return /* @__PURE__ */ jsxs21(Fragment16, { children: [
7845
- heading ? /* @__PURE__ */ jsx21("div", { className: "mbow-head", children: /* @__PURE__ */ jsx21("div", { children: typeof heading === "string" ? /* @__PURE__ */ jsx21("h2", { children: heading }) : heading }) }) : null,
7846
- /* @__PURE__ */ jsxs21("form", { className: "mbow-toolbar", onSubmit: (event) => {
8052
+ return /* @__PURE__ */ jsxs22(Fragment16, { children: [
8053
+ heading ? /* @__PURE__ */ jsx22("div", { className: "mbow-head", children: /* @__PURE__ */ jsx22("div", { children: typeof heading === "string" ? /* @__PURE__ */ jsx22("h2", { children: heading }) : heading }) }) : null,
8054
+ /* @__PURE__ */ jsxs22("form", { className: "mbow-toolbar", onSubmit: (event) => {
7847
8055
  event.preventDefault();
7848
8056
  update({ q: draft.trim() });
7849
8057
  }, children: [
7850
- /* @__PURE__ */ jsx21("input", { className: "mbow-input", value: draft, onChange: (event) => setDraft(event.target.value), placeholder: "Search patient, bill ID, claim, or external ID\u2026", "aria-label": "Search bills" }),
7851
- /* @__PURE__ */ jsxs21("select", { className: "mbow-select", value: query.status ?? "all", onChange: (event) => update({ status: event.target.value }), "aria-label": "Bill status", children: [
7852
- /* @__PURE__ */ jsx21("option", { value: "all", children: "All statuses" }),
7853
- /* @__PURE__ */ jsx21("option", { value: "incomplete", children: "Incomplete" }),
7854
- /* @__PURE__ */ jsx21("option", { value: "sent", children: "Sent" }),
7855
- /* @__PURE__ */ jsx21("option", { value: "accepted", children: "Accepted" }),
7856
- /* @__PURE__ */ jsx21("option", { value: "accepted_no_response", children: "Accepted \u2014 response overdue" }),
7857
- /* @__PURE__ */ jsx21("option", { value: "rejected", children: "Rejected" }),
7858
- /* @__PURE__ */ jsx21("option", { value: "processed", children: "Processed" }),
7859
- /* @__PURE__ */ jsx21("option", { value: "paid", children: "Paid" }),
7860
- /* @__PURE__ */ jsx21("option", { value: "closed", children: "Closed" })
8058
+ /* @__PURE__ */ jsx22("input", { className: "mbow-input", value: draft, onChange: (event) => setDraft(event.target.value), placeholder: "Search patient, bill ID, claim, or external ID\u2026", "aria-label": "Search bills" }),
8059
+ /* @__PURE__ */ jsxs22("select", { className: "mbow-select", value: query.status ?? "all", onChange: (event) => update({ status: event.target.value }), "aria-label": "Bill status", children: [
8060
+ /* @__PURE__ */ jsx22("option", { value: "all", children: "All statuses" }),
8061
+ /* @__PURE__ */ jsx22("option", { value: "incomplete", children: "Incomplete" }),
8062
+ /* @__PURE__ */ jsx22("option", { value: "sent", children: "Sent" }),
8063
+ /* @__PURE__ */ jsx22("option", { value: "accepted", children: "Accepted" }),
8064
+ /* @__PURE__ */ jsx22("option", { value: "accepted_no_response", children: "Accepted \u2014 response overdue" }),
8065
+ /* @__PURE__ */ jsx22("option", { value: "rejected", children: "Rejected" }),
8066
+ /* @__PURE__ */ jsx22("option", { value: "processed", children: "Processed" }),
8067
+ /* @__PURE__ */ jsx22("option", { value: "paid", children: "Paid" }),
8068
+ /* @__PURE__ */ jsx22("option", { value: "closed", children: "Closed" })
7861
8069
  ] }),
7862
- /* @__PURE__ */ jsxs21("select", { className: "mbow-select", value: query.age ?? "all", onChange: (event) => update({ age: event.target.value }), "aria-label": "A/R age", children: [
7863
- /* @__PURE__ */ jsx21("option", { value: "all", children: "All A/R ages" }),
7864
- /* @__PURE__ */ jsx21("option", { value: "0-30", children: "0\u201330 days" }),
7865
- /* @__PURE__ */ jsx21("option", { value: "31-60", children: "31\u201360 days" }),
7866
- /* @__PURE__ */ jsx21("option", { value: "61-90", children: "61\u201390 days" }),
7867
- /* @__PURE__ */ jsx21("option", { value: "91+", children: "91+ days" }),
7868
- /* @__PURE__ */ jsx21("option", { value: "91-180", children: "91\u2013180 days" }),
7869
- /* @__PURE__ */ jsx21("option", { value: "181+", children: "181+ days" })
8070
+ /* @__PURE__ */ jsxs22("select", { className: "mbow-select", value: query.age ?? "all", onChange: (event) => update({ age: event.target.value }), "aria-label": "A/R age", children: [
8071
+ /* @__PURE__ */ jsx22("option", { value: "all", children: "All A/R ages" }),
8072
+ /* @__PURE__ */ jsx22("option", { value: "0-30", children: "0\u201330 days" }),
8073
+ /* @__PURE__ */ jsx22("option", { value: "31-60", children: "31\u201360 days" }),
8074
+ /* @__PURE__ */ jsx22("option", { value: "61-90", children: "61\u201390 days" }),
8075
+ /* @__PURE__ */ jsx22("option", { value: "91+", children: "91+ days" }),
8076
+ /* @__PURE__ */ jsx22("option", { value: "91-180", children: "91\u2013180 days" }),
8077
+ /* @__PURE__ */ jsx22("option", { value: "181+", children: "181+ days" })
7870
8078
  ] }),
7871
- /* @__PURE__ */ jsx21("button", { className: "mbow-button", type: "submit", children: "Search" }),
7872
- /* @__PURE__ */ jsx21(RenderingProviderFilter, { value: query.renderingProviderId ?? "", options: result?.filters?.renderingProviders, onChange: (value) => update({ renderingProviderId: value }) })
8079
+ /* @__PURE__ */ jsx22("button", { className: "mbow-button", type: "submit", children: "Search" }),
8080
+ /* @__PURE__ */ jsx22(RenderingProviderFilter, { value: query.renderingProviderId ?? "", options: result?.filters?.renderingProviders, onChange: (value) => update({ renderingProviderId: value }) })
7873
8081
  ] }),
7874
- /* @__PURE__ */ jsxs21("div", { className: "mbow-card mbow-scroll", children: [
7875
- loading ? /* @__PURE__ */ jsx21("div", { className: "mbow-state", role: "status", children: "Loading bills\u2026" }) : error ? /* @__PURE__ */ jsxs21("div", { className: "mbow-state mbow-error", role: "alert", children: [
8082
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-card mbow-scroll", children: [
8083
+ loading ? /* @__PURE__ */ jsx22("div", { className: "mbow-state", role: "status", children: "Loading bills\u2026" }) : error ? /* @__PURE__ */ jsxs22("div", { className: "mbow-state mbow-error", role: "alert", children: [
7876
8084
  error.message,
7877
8085
  " ",
7878
- /* @__PURE__ */ jsx21("button", { className: "mbow-button", type: "button", onClick: () => void load(), children: "Retry" })
7879
- ] }) : result?.items.length === 0 ? /* @__PURE__ */ jsx21("div", { className: "mbow-state", children: "No bills match these filters." }) : /* @__PURE__ */ jsxs21("table", { className: "mbow-table", children: [
7880
- /* @__PURE__ */ jsx21("thead", { children: /* @__PURE__ */ jsxs21("tr", { children: [
7881
- /* @__PURE__ */ jsx21("th", { children: "Bill" }),
7882
- /* @__PURE__ */ jsx21("th", { children: "Patient" }),
7883
- /* @__PURE__ */ jsx21("th", { children: "DOS" }),
7884
- /* @__PURE__ */ jsx21("th", { children: "Codes" }),
7885
- /* @__PURE__ */ jsx21("th", { children: "Claims administrator" }),
7886
- /* @__PURE__ */ jsx21("th", { children: "Status" }),
7887
- /* @__PURE__ */ jsx21("th", { children: "Submitted / A/R age" }),
7888
- /* @__PURE__ */ jsx21("th", { className: "mbow-money", children: "Balance due" })
8086
+ /* @__PURE__ */ jsx22("button", { className: "mbow-button", type: "button", onClick: () => void load(), children: "Retry" })
8087
+ ] }) : result?.items.length === 0 ? /* @__PURE__ */ jsx22("div", { className: "mbow-state", children: "No bills match these filters." }) : /* @__PURE__ */ jsxs22("table", { className: "mbow-table", children: [
8088
+ /* @__PURE__ */ jsx22("thead", { children: /* @__PURE__ */ jsxs22("tr", { children: [
8089
+ /* @__PURE__ */ jsx22("th", { children: "Bill" }),
8090
+ /* @__PURE__ */ jsx22("th", { children: "Patient" }),
8091
+ /* @__PURE__ */ jsx22("th", { children: "DOS" }),
8092
+ /* @__PURE__ */ jsx22("th", { children: "Codes" }),
8093
+ /* @__PURE__ */ jsx22("th", { children: "Claims administrator" }),
8094
+ /* @__PURE__ */ jsx22("th", { children: "Status" }),
8095
+ /* @__PURE__ */ jsx22("th", { children: "Submitted / A/R age" }),
8096
+ /* @__PURE__ */ jsx22("th", { className: "mbow-money", children: "Balance due" })
7889
8097
  ] }) }),
7890
- /* @__PURE__ */ jsx21("tbody", { children: result?.items.map((bill) => /* @__PURE__ */ jsxs21("tr", { className: onSelectBill ? "clickable" : "", onClick: () => onSelectBill?.(bill), children: [
7891
- /* @__PURE__ */ jsxs21("td", { className: "mbow-strong", children: [
8098
+ /* @__PURE__ */ jsx22("tbody", { children: result?.items.map((bill) => /* @__PURE__ */ jsxs22("tr", { className: onSelectBill ? "clickable" : "", onClick: () => onSelectBill?.(bill), children: [
8099
+ /* @__PURE__ */ jsxs22("td", { className: "mbow-strong", children: [
7892
8100
  "#",
7893
8101
  bill.billNumber
7894
8102
  ] }),
7895
- /* @__PURE__ */ jsx21("td", { children: bill.patientName }),
7896
- /* @__PURE__ */ jsx21("td", { children: shortDate(bill.dateOfService) }),
7897
- /* @__PURE__ */ jsx21("td", { children: bill.procedureCodes.join(", ") || "\u2014" }),
7898
- /* @__PURE__ */ jsx21("td", { children: bill.claimsAdministrator || "\u2014" }),
7899
- /* @__PURE__ */ jsx21("td", { children: /* @__PURE__ */ jsx21("span", { className: `mbow-badge ${bill.status.tone ?? ""}`, children: bill.status.label }) }),
7900
- /* @__PURE__ */ jsxs21("td", { children: [
8103
+ /* @__PURE__ */ jsx22("td", { children: bill.patientName }),
8104
+ /* @__PURE__ */ jsx22("td", { children: shortDate(bill.dateOfService) }),
8105
+ /* @__PURE__ */ jsx22("td", { children: bill.procedureCodes.join(", ") || "\u2014" }),
8106
+ /* @__PURE__ */ jsx22("td", { children: bill.claimsAdministrator || "\u2014" }),
8107
+ /* @__PURE__ */ jsx22("td", { children: /* @__PURE__ */ jsx22("span", { className: `mbow-badge ${bill.status.tone ?? ""}`, children: bill.status.label }) }),
8108
+ /* @__PURE__ */ jsxs22("td", { children: [
7901
8109
  shortDate(bill.submittedAt),
7902
- /* @__PURE__ */ jsx21("div", { className: "mbow-muted", children: bill.arAgeDays == null ? "\u2014" : `${bill.arAgeDays} days` })
8110
+ /* @__PURE__ */ jsx22("div", { className: "mbow-muted", children: bill.arAgeDays == null ? "\u2014" : `${bill.arAgeDays} days` })
7903
8111
  ] }),
7904
- /* @__PURE__ */ jsx21("td", { className: "mbow-money mbow-strong", children: money7(bill.balanceDue) })
8112
+ /* @__PURE__ */ jsx22("td", { className: "mbow-money mbow-strong", children: money7(bill.balanceDue) })
7905
8113
  ] }, bill.id)) })
7906
8114
  ] }),
7907
- result && !loading && !error ? /* @__PURE__ */ jsxs21("div", { className: "mbow-pager", children: [
7908
- /* @__PURE__ */ jsxs21("span", { children: [
8115
+ result && !loading && !error ? /* @__PURE__ */ jsxs22("div", { className: "mbow-pager", children: [
8116
+ /* @__PURE__ */ jsxs22("span", { children: [
7909
8117
  "Showing ",
7910
8118
  result.total === 0 ? 0 : (result.page - 1) * result.pageSize + 1,
7911
8119
  "\u2013",
@@ -7913,14 +8121,14 @@ function BillSearchContent({
7913
8121
  " of ",
7914
8122
  result.total
7915
8123
  ] }),
7916
- /* @__PURE__ */ jsxs21("span", { children: [
7917
- /* @__PURE__ */ jsx21("button", { className: "mbow-button", type: "button", disabled: result.page <= 1, onClick: () => update({ page: result.page - 1 }), children: "Previous" }),
8124
+ /* @__PURE__ */ jsxs22("span", { children: [
8125
+ /* @__PURE__ */ jsx22("button", { className: "mbow-button", type: "button", disabled: result.page <= 1, onClick: () => update({ page: result.page - 1 }), children: "Previous" }),
7918
8126
  " ",
7919
8127
  result.page,
7920
8128
  " / ",
7921
8129
  pageCount,
7922
8130
  " ",
7923
- /* @__PURE__ */ jsx21("button", { className: "mbow-button", type: "button", disabled: result.page >= pageCount, onClick: () => update({ page: result.page + 1 }), children: "Next" })
8131
+ /* @__PURE__ */ jsx22("button", { className: "mbow-button", type: "button", disabled: result.page >= pageCount, onClick: () => update({ page: result.page + 1 }), children: "Next" })
7924
8132
  ] })
7925
8133
  ] }) : null
7926
8134
  ] })
@@ -7928,7 +8136,7 @@ function BillSearchContent({
7928
8136
  }
7929
8137
  function ConnectedBillSearch({ appearance, className, style, initialQuery, onSelectBill, heading = "All bills", ...options }) {
7930
8138
  const client = useClient(options);
7931
- return /* @__PURE__ */ jsx21(Surface, { appearance, className, style, children: /* @__PURE__ */ jsx21(BillSearchContent, { client, initialQuery, onSelectBill, heading }) });
8139
+ return /* @__PURE__ */ jsx22(Surface, { appearance, className, style, children: /* @__PURE__ */ jsx22(BillSearchContent, { client, initialQuery, onSelectBill, heading }) });
7932
8140
  }
7933
8141
  function taskQuery(cell) {
7934
8142
  const [taskType, taskLabel] = cell.rowId.split("::", 2);
@@ -7939,11 +8147,11 @@ function taskQuery(cell) {
7939
8147
  return { status: "all", taskSection: cell.sectionId, ...taskType ? { taskType } : {}, ...taskLabel ? { taskLabel } : {}, ...age ? { age } : {} };
7940
8148
  }
7941
8149
  function BillTasksContent({ client, onDrillDown, appearance }) {
7942
- const [claimsAdminId, setClaimsAdminId] = useState17("");
7943
- const [renderingProviderId, setRenderingProviderId] = useState17("");
7944
- const [result, setResult] = useState17(null);
7945
- const [error, setError] = useState17(null);
7946
- const [loading, setLoading] = useState17(true);
8150
+ const [claimsAdminId, setClaimsAdminId] = useState18("");
8151
+ const [renderingProviderId, setRenderingProviderId] = useState18("");
8152
+ const [result, setResult] = useState18(null);
8153
+ const [error, setError] = useState18(null);
8154
+ const [loading, setLoading] = useState18(true);
7947
8155
  const load = useCallback5(async (signal) => {
7948
8156
  setLoading(true);
7949
8157
  setError(null);
@@ -7955,32 +8163,32 @@ function BillTasksContent({ client, onDrillDown, appearance }) {
7955
8163
  if (!signal?.aborted) setLoading(false);
7956
8164
  }
7957
8165
  }, [claimsAdminId, renderingProviderId, client]);
7958
- useEffect14(() => {
8166
+ useEffect15(() => {
7959
8167
  const controller = new AbortController();
7960
8168
  void load(controller.signal);
7961
8169
  return () => controller.abort();
7962
8170
  }, [load]);
7963
- if (loading && !result) return /* @__PURE__ */ jsx21("div", { className: "mbow-state", children: "Loading bill tasks\u2026" });
7964
- if (error && !result) return /* @__PURE__ */ jsx21("div", { className: "mbow-state mbow-error", children: error.message });
7965
- if (!result) return /* @__PURE__ */ jsx21(Fragment16, {});
8171
+ if (loading && !result) return /* @__PURE__ */ jsx22("div", { className: "mbow-state", children: "Loading bill tasks\u2026" });
8172
+ if (error && !result) return /* @__PURE__ */ jsx22("div", { className: "mbow-state mbow-error", children: error.message });
8173
+ if (!result) return /* @__PURE__ */ jsx22(Fragment16, {});
7966
8174
  const selectionProps = loading || error ? {} : {
7967
8175
  onSelectCell: (cell) => onDrillDown?.({ ...taskQuery(cell), ...claimsAdminId ? { claimsAdministrator: claimsAdminId } : {}, ...renderingProviderId ? { renderingProviderId } : {} })
7968
8176
  };
7969
- return /* @__PURE__ */ jsxs21(Fragment16, { children: [
7970
- /* @__PURE__ */ jsxs21("p", { className: "mbow-task-note", children: [
8177
+ return /* @__PURE__ */ jsxs22(Fragment16, { children: [
8178
+ /* @__PURE__ */ jsxs22("p", { className: "mbow-task-note", children: [
7971
8179
  "Open follow-up work grouped by task and age. ",
7972
8180
  result.waiting ? "Sent and accepted bills waiting for a payer are shown below." : "Find sent and accepted bills in All bills."
7973
8181
  ] }),
7974
- loading ? /* @__PURE__ */ jsx21("p", { role: "status", children: "Updating bill tasks\u2026" }) : null,
7975
- error ? /* @__PURE__ */ jsx21("p", { role: "alert", className: "mbow-error", children: error.message }) : null,
7976
- /* @__PURE__ */ jsx21(BillTasksDashboard, { data: result.dashboard, appearance: appearance ?? { preset: "mindbill" }, toolbar: /* @__PURE__ */ jsxs21("div", { className: "mbow-toolbar", children: [
7977
- /* @__PURE__ */ jsxs21("select", { "aria-label": "Claims administrator filter", className: "mbow-select", value: claimsAdminId, onChange: (event) => setClaimsAdminId(event.target.value), children: [
7978
- /* @__PURE__ */ jsx21("option", { value: "", children: "All claims administrators" }),
7979
- result.filters.claimsAdministrators.map((item) => /* @__PURE__ */ jsx21("option", { value: item.id, children: item.name }, item.id))
8182
+ loading ? /* @__PURE__ */ jsx22("p", { role: "status", children: "Updating bill tasks\u2026" }) : null,
8183
+ error ? /* @__PURE__ */ jsx22("p", { role: "alert", className: "mbow-error", children: error.message }) : null,
8184
+ /* @__PURE__ */ jsx22(BillTasksDashboard, { data: result.dashboard, appearance: appearance ?? { preset: "mindbill" }, toolbar: /* @__PURE__ */ jsxs22("div", { className: "mbow-toolbar", children: [
8185
+ /* @__PURE__ */ jsxs22("select", { "aria-label": "Claims administrator filter", className: "mbow-select", value: claimsAdminId, onChange: (event) => setClaimsAdminId(event.target.value), children: [
8186
+ /* @__PURE__ */ jsx22("option", { value: "", children: "All claims administrators" }),
8187
+ result.filters.claimsAdministrators.map((item) => /* @__PURE__ */ jsx22("option", { value: item.id, children: item.name }, item.id))
7980
8188
  ] }),
7981
- /* @__PURE__ */ jsx21(RenderingProviderFilter, { value: renderingProviderId, options: result.filters.renderingProviders, onChange: setRenderingProviderId })
8189
+ /* @__PURE__ */ jsx22(RenderingProviderFilter, { value: renderingProviderId, options: result.filters.renderingProviders, onChange: setRenderingProviderId })
7982
8190
  ] }), ...selectionProps }),
7983
- result.waiting ? /* @__PURE__ */ jsx21(
8191
+ result.waiting ? /* @__PURE__ */ jsx22(
7984
8192
  BillTasksDashboard,
7985
8193
  {
7986
8194
  data: result.waiting,
@@ -7998,28 +8206,28 @@ function BillTasksContent({ client, onDrillDown, appearance }) {
7998
8206
  }
7999
8207
  function ConnectedBillTasksDashboard({ appearance, className, style, onDrillDown, ...options }) {
8000
8208
  const client = useClient(options);
8001
- return /* @__PURE__ */ jsx21(Surface, { appearance, className, style, children: /* @__PURE__ */ jsx21(BillTasksContent, { client, onDrillDown, appearance }) });
8209
+ return /* @__PURE__ */ jsx22(Surface, { appearance, className, style, children: /* @__PURE__ */ jsx22(BillTasksContent, { client, onDrillDown, appearance }) });
8002
8210
  }
8003
8211
  function RangeToolbar({ from, to, setFrom, setTo }) {
8004
- return /* @__PURE__ */ jsxs21("div", { className: "mbow-toolbar", children: [
8005
- /* @__PURE__ */ jsxs21("label", { children: [
8212
+ return /* @__PURE__ */ jsxs22("div", { className: "mbow-toolbar", children: [
8213
+ /* @__PURE__ */ jsxs22("label", { children: [
8006
8214
  "From ",
8007
- /* @__PURE__ */ jsx21("input", { className: "mbow-input", type: "date", value: from, onChange: (event) => setFrom(event.target.value) })
8215
+ /* @__PURE__ */ jsx22("input", { className: "mbow-input", type: "date", value: from, onChange: (event) => setFrom(event.target.value) })
8008
8216
  ] }),
8009
- /* @__PURE__ */ jsxs21("label", { children: [
8217
+ /* @__PURE__ */ jsxs22("label", { children: [
8010
8218
  "To ",
8011
- /* @__PURE__ */ jsx21("input", { className: "mbow-input", type: "date", value: to, onChange: (event) => setTo(event.target.value) })
8219
+ /* @__PURE__ */ jsx22("input", { className: "mbow-input", type: "date", value: to, onChange: (event) => setTo(event.target.value) })
8012
8220
  ] })
8013
8221
  ] });
8014
8222
  }
8015
8223
  function ConnectedServiceLineItemsReport({ appearance, className, style, initialFrom, initialTo, onSelectBill, ...options }) {
8016
8224
  const defaults = useMemo11(() => defaultRange(), []);
8017
8225
  const client = useClient(options);
8018
- const [from, setFrom] = useState17(initialFrom ?? defaults.from);
8019
- const [to, setTo] = useState17(initialTo ?? defaults.to);
8020
- const [data, setData] = useState17(null);
8021
- const [error, setError] = useState17(null);
8022
- useEffect14(() => {
8226
+ const [from, setFrom] = useState18(initialFrom ?? defaults.from);
8227
+ const [to, setTo] = useState18(initialTo ?? defaults.to);
8228
+ const [data, setData] = useState18(null);
8229
+ const [error, setError] = useState18(null);
8230
+ useEffect15(() => {
8023
8231
  const controller = new AbortController();
8024
8232
  setError(null);
8025
8233
  void client.getServiceLineItems({ from, to }, controller.signal).then(setData).catch((cause) => {
@@ -8027,64 +8235,64 @@ function ConnectedServiceLineItemsReport({ appearance, className, style, initial
8027
8235
  });
8028
8236
  return () => controller.abort();
8029
8237
  }, [client, from, to]);
8030
- return /* @__PURE__ */ jsxs21(Surface, { appearance, className, style, children: [
8031
- /* @__PURE__ */ jsx21("div", { className: "mbow-head", children: /* @__PURE__ */ jsxs21("div", { children: [
8032
- /* @__PURE__ */ jsx21("h2", { children: "Original submissions by procedure" }),
8033
- /* @__PURE__ */ jsx21("p", { className: "mbow-sub", children: "First payer submission for each patient and date of service." })
8238
+ return /* @__PURE__ */ jsxs22(Surface, { appearance, className, style, children: [
8239
+ /* @__PURE__ */ jsx22("div", { className: "mbow-head", children: /* @__PURE__ */ jsxs22("div", { children: [
8240
+ /* @__PURE__ */ jsx22("h2", { children: "Original submissions by procedure" }),
8241
+ /* @__PURE__ */ jsx22("p", { className: "mbow-sub", children: "First payer submission for each patient and date of service." })
8034
8242
  ] }) }),
8035
- /* @__PURE__ */ jsx21(RangeToolbar, { from, to, setFrom, setTo }),
8036
- error ? /* @__PURE__ */ jsx21("div", { className: "mbow-state mbow-error", children: error.message }) : !data ? /* @__PURE__ */ jsx21("div", { className: "mbow-state", children: "Loading report\u2026" }) : /* @__PURE__ */ jsxs21(Fragment16, { children: [
8037
- /* @__PURE__ */ jsxs21("div", { className: "mbow-metrics", children: [
8038
- /* @__PURE__ */ jsx21(Metric, { label: "Original bills", value: String(data.totalBills) }),
8039
- /* @__PURE__ */ jsx21(Metric, { label: "Service lines", value: String(data.totalLines) }),
8040
- /* @__PURE__ */ jsx21(Metric, { label: "Total billed", value: money7(data.totalBilled) }),
8041
- /* @__PURE__ */ jsx21(Metric, { label: "Report window", value: data.windowLabel })
8243
+ /* @__PURE__ */ jsx22(RangeToolbar, { from, to, setFrom, setTo }),
8244
+ error ? /* @__PURE__ */ jsx22("div", { className: "mbow-state mbow-error", children: error.message }) : !data ? /* @__PURE__ */ jsx22("div", { className: "mbow-state", children: "Loading report\u2026" }) : /* @__PURE__ */ jsxs22(Fragment16, { children: [
8245
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-metrics", children: [
8246
+ /* @__PURE__ */ jsx22(Metric, { label: "Original bills", value: String(data.totalBills) }),
8247
+ /* @__PURE__ */ jsx22(Metric, { label: "Service lines", value: String(data.totalLines) }),
8248
+ /* @__PURE__ */ jsx22(Metric, { label: "Total billed", value: money7(data.totalBilled) }),
8249
+ /* @__PURE__ */ jsx22(Metric, { label: "Report window", value: data.windowLabel })
8042
8250
  ] }),
8043
- /* @__PURE__ */ jsxs21("div", { className: "mbow-card mbow-scroll", children: [
8044
- /* @__PURE__ */ jsx21("div", { className: "mbow-section-head", children: /* @__PURE__ */ jsx21("h3", { children: "Procedure summary" }) }),
8045
- /* @__PURE__ */ jsxs21("table", { className: "mbow-table", children: [
8046
- /* @__PURE__ */ jsx21("thead", { children: /* @__PURE__ */ jsxs21("tr", { children: [
8047
- /* @__PURE__ */ jsx21("th", { children: "Procedure code" }),
8048
- /* @__PURE__ */ jsx21("th", { children: "Bills" }),
8049
- /* @__PURE__ */ jsx21("th", { children: "Service lines" }),
8050
- /* @__PURE__ */ jsx21("th", { className: "mbow-money", children: "Total billed" })
8251
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-card mbow-scroll", children: [
8252
+ /* @__PURE__ */ jsx22("div", { className: "mbow-section-head", children: /* @__PURE__ */ jsx22("h3", { children: "Procedure summary" }) }),
8253
+ /* @__PURE__ */ jsxs22("table", { className: "mbow-table", children: [
8254
+ /* @__PURE__ */ jsx22("thead", { children: /* @__PURE__ */ jsxs22("tr", { children: [
8255
+ /* @__PURE__ */ jsx22("th", { children: "Procedure code" }),
8256
+ /* @__PURE__ */ jsx22("th", { children: "Bills" }),
8257
+ /* @__PURE__ */ jsx22("th", { children: "Service lines" }),
8258
+ /* @__PURE__ */ jsx22("th", { className: "mbow-money", children: "Total billed" })
8051
8259
  ] }) }),
8052
- /* @__PURE__ */ jsx21("tbody", { children: data.cptRows.map((row) => /* @__PURE__ */ jsxs21("tr", { children: [
8053
- /* @__PURE__ */ jsx21("td", { className: "mbow-strong", children: row.code }),
8054
- /* @__PURE__ */ jsx21("td", { children: row.bills }),
8055
- /* @__PURE__ */ jsx21("td", { children: row.lines }),
8056
- /* @__PURE__ */ jsx21("td", { className: "mbow-money", children: money7(row.billed) })
8260
+ /* @__PURE__ */ jsx22("tbody", { children: data.cptRows.map((row) => /* @__PURE__ */ jsxs22("tr", { children: [
8261
+ /* @__PURE__ */ jsx22("td", { className: "mbow-strong", children: row.code }),
8262
+ /* @__PURE__ */ jsx22("td", { children: row.bills }),
8263
+ /* @__PURE__ */ jsx22("td", { children: row.lines }),
8264
+ /* @__PURE__ */ jsx22("td", { className: "mbow-money", children: money7(row.billed) })
8057
8265
  ] }, row.code)) })
8058
8266
  ] })
8059
8267
  ] }),
8060
- /* @__PURE__ */ jsxs21("div", { className: "mbow-card mbow-scroll", style: { marginTop: 16 }, children: [
8061
- /* @__PURE__ */ jsx21("div", { className: "mbow-section-head", children: /* @__PURE__ */ jsx21("h3", { children: "All original bills" }) }),
8062
- /* @__PURE__ */ jsxs21("table", { className: "mbow-table", children: [
8063
- /* @__PURE__ */ jsx21("thead", { children: /* @__PURE__ */ jsxs21("tr", { children: [
8064
- /* @__PURE__ */ jsx21("th", { children: "Bill" }),
8065
- /* @__PURE__ */ jsx21("th", { children: "First submitted" }),
8066
- /* @__PURE__ */ jsx21("th", { children: "Patient \xB7 Claim" }),
8067
- /* @__PURE__ */ jsx21("th", { children: "DOS" }),
8068
- /* @__PURE__ */ jsx21("th", { children: "Claims administrator" }),
8069
- /* @__PURE__ */ jsx21("th", { children: "Codes" }),
8070
- /* @__PURE__ */ jsx21("th", { className: "mbow-money", children: "Billed" }),
8071
- /* @__PURE__ */ jsx21("th", { children: "Status" })
8268
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-card mbow-scroll", style: { marginTop: 16 }, children: [
8269
+ /* @__PURE__ */ jsx22("div", { className: "mbow-section-head", children: /* @__PURE__ */ jsx22("h3", { children: "All original bills" }) }),
8270
+ /* @__PURE__ */ jsxs22("table", { className: "mbow-table", children: [
8271
+ /* @__PURE__ */ jsx22("thead", { children: /* @__PURE__ */ jsxs22("tr", { children: [
8272
+ /* @__PURE__ */ jsx22("th", { children: "Bill" }),
8273
+ /* @__PURE__ */ jsx22("th", { children: "First submitted" }),
8274
+ /* @__PURE__ */ jsx22("th", { children: "Patient \xB7 Claim" }),
8275
+ /* @__PURE__ */ jsx22("th", { children: "DOS" }),
8276
+ /* @__PURE__ */ jsx22("th", { children: "Claims administrator" }),
8277
+ /* @__PURE__ */ jsx22("th", { children: "Codes" }),
8278
+ /* @__PURE__ */ jsx22("th", { className: "mbow-money", children: "Billed" }),
8279
+ /* @__PURE__ */ jsx22("th", { children: "Status" })
8072
8280
  ] }) }),
8073
- /* @__PURE__ */ jsx21("tbody", { children: data.billRows.map((row) => /* @__PURE__ */ jsxs21("tr", { className: onSelectBill ? "clickable" : "", onClick: () => onSelectBill?.(row.billId), children: [
8074
- /* @__PURE__ */ jsxs21("td", { className: "mbow-strong", children: [
8281
+ /* @__PURE__ */ jsx22("tbody", { children: data.billRows.map((row) => /* @__PURE__ */ jsxs22("tr", { className: onSelectBill ? "clickable" : "", onClick: () => onSelectBill?.(row.billId), children: [
8282
+ /* @__PURE__ */ jsxs22("td", { className: "mbow-strong", children: [
8075
8283
  "#",
8076
8284
  row.billNumber
8077
8285
  ] }),
8078
- /* @__PURE__ */ jsx21("td", { children: shortDate(row.submittedDate) }),
8079
- /* @__PURE__ */ jsxs21("td", { children: [
8286
+ /* @__PURE__ */ jsx22("td", { children: shortDate(row.submittedDate) }),
8287
+ /* @__PURE__ */ jsxs22("td", { children: [
8080
8288
  row.patient,
8081
- /* @__PURE__ */ jsx21("div", { className: "mbow-muted", children: row.claim })
8289
+ /* @__PURE__ */ jsx22("div", { className: "mbow-muted", children: row.claim })
8082
8290
  ] }),
8083
- /* @__PURE__ */ jsx21("td", { children: shortDate(row.dos) }),
8084
- /* @__PURE__ */ jsx21("td", { children: row.claimsAdmin }),
8085
- /* @__PURE__ */ jsx21("td", { children: row.codes.join(", ") }),
8086
- /* @__PURE__ */ jsx21("td", { className: "mbow-money", children: money7(row.billed) }),
8087
- /* @__PURE__ */ jsx21("td", { children: row.status })
8291
+ /* @__PURE__ */ jsx22("td", { children: shortDate(row.dos) }),
8292
+ /* @__PURE__ */ jsx22("td", { children: row.claimsAdmin }),
8293
+ /* @__PURE__ */ jsx22("td", { children: row.codes.join(", ") }),
8294
+ /* @__PURE__ */ jsx22("td", { className: "mbow-money", children: money7(row.billed) }),
8295
+ /* @__PURE__ */ jsx22("td", { children: row.status })
8088
8296
  ] }, row.billId)) })
8089
8297
  ] })
8090
8298
  ] })
@@ -8092,19 +8300,19 @@ function ConnectedServiceLineItemsReport({ appearance, className, style, initial
8092
8300
  ] });
8093
8301
  }
8094
8302
  function Metric({ label, value }) {
8095
- return /* @__PURE__ */ jsxs21("div", { className: "mbow-metric", children: [
8096
- /* @__PURE__ */ jsx21("span", { children: label }),
8097
- /* @__PURE__ */ jsx21("strong", { children: value })
8303
+ return /* @__PURE__ */ jsxs22("div", { className: "mbow-metric", children: [
8304
+ /* @__PURE__ */ jsx22("span", { children: label }),
8305
+ /* @__PURE__ */ jsx22("strong", { children: value })
8098
8306
  ] });
8099
8307
  }
8100
8308
  function ConnectedProductivityReport({ appearance, className, style, initialFrom, initialTo, ...options }) {
8101
8309
  const defaults = useMemo11(() => defaultRange(13), []);
8102
8310
  const client = useClient(options);
8103
- const [from, setFrom] = useState17(initialFrom ?? defaults.from);
8104
- const [to, setTo] = useState17(initialTo ?? defaults.to);
8105
- const [data, setData] = useState17(null);
8106
- const [error, setError] = useState17(null);
8107
- useEffect14(() => {
8311
+ const [from, setFrom] = useState18(initialFrom ?? defaults.from);
8312
+ const [to, setTo] = useState18(initialTo ?? defaults.to);
8313
+ const [data, setData] = useState18(null);
8314
+ const [error, setError] = useState18(null);
8315
+ useEffect15(() => {
8108
8316
  const controller = new AbortController();
8109
8317
  setError(null);
8110
8318
  void client.getProductivity({ from, to }, controller.signal).then(setData).catch((cause) => {
@@ -8113,41 +8321,41 @@ function ConnectedProductivityReport({ appearance, className, style, initialFrom
8113
8321
  return () => controller.abort();
8114
8322
  }, [client, from, to]);
8115
8323
  const maxSent = data ? Math.max(1, ...Object.values(data.sentTotal)) : 1;
8116
- return /* @__PURE__ */ jsxs21(Surface, { appearance, className, style, children: [
8117
- /* @__PURE__ */ jsx21("div", { className: "mbow-head", children: /* @__PURE__ */ jsxs21("div", { children: [
8118
- /* @__PURE__ */ jsx21("h2", { children: "Productivity" }),
8119
- /* @__PURE__ */ jsx21("p", { className: "mbow-sub", children: "Bills created and sent per biller, plus accepted-first-try rate." })
8324
+ return /* @__PURE__ */ jsxs22(Surface, { appearance, className, style, children: [
8325
+ /* @__PURE__ */ jsx22("div", { className: "mbow-head", children: /* @__PURE__ */ jsxs22("div", { children: [
8326
+ /* @__PURE__ */ jsx22("h2", { children: "Productivity" }),
8327
+ /* @__PURE__ */ jsx22("p", { className: "mbow-sub", children: "Bills created and sent per biller, plus accepted-first-try rate." })
8120
8328
  ] }) }),
8121
- /* @__PURE__ */ jsx21(RangeToolbar, { from, to, setFrom, setTo }),
8122
- error ? /* @__PURE__ */ jsx21("div", { className: "mbow-state mbow-error", children: error.message }) : !data ? /* @__PURE__ */ jsx21("div", { className: "mbow-state", children: "Loading report\u2026" }) : /* @__PURE__ */ jsxs21(Fragment16, { children: [
8123
- /* @__PURE__ */ jsxs21("div", { className: "mbow-metrics", children: [
8124
- /* @__PURE__ */ jsx21(Metric, { label: "Bills created", value: String(data.totalCreated) }),
8125
- /* @__PURE__ */ jsx21(Metric, { label: "Transmissions", value: String(data.totalSent) }),
8126
- /* @__PURE__ */ jsx21(Metric, { label: "Bills submitted", value: String(data.totalSubmitted) }),
8127
- /* @__PURE__ */ jsx21(Metric, { label: "Accepted first try", value: data.totalSubmitted ? `${Math.round(data.totalClean / data.totalSubmitted * 100)}%` : "\u2014" })
8329
+ /* @__PURE__ */ jsx22(RangeToolbar, { from, to, setFrom, setTo }),
8330
+ error ? /* @__PURE__ */ jsx22("div", { className: "mbow-state mbow-error", children: error.message }) : !data ? /* @__PURE__ */ jsx22("div", { className: "mbow-state", children: "Loading report\u2026" }) : /* @__PURE__ */ jsxs22(Fragment16, { children: [
8331
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-metrics", children: [
8332
+ /* @__PURE__ */ jsx22(Metric, { label: "Bills created", value: String(data.totalCreated) }),
8333
+ /* @__PURE__ */ jsx22(Metric, { label: "Transmissions", value: String(data.totalSent) }),
8334
+ /* @__PURE__ */ jsx22(Metric, { label: "Bills submitted", value: String(data.totalSubmitted) }),
8335
+ /* @__PURE__ */ jsx22(Metric, { label: "Accepted first try", value: data.totalSubmitted ? `${Math.round(data.totalClean / data.totalSubmitted * 100)}%` : "\u2014" })
8128
8336
  ] }),
8129
- /* @__PURE__ */ jsxs21("div", { className: "mbow-card mbow-scroll", children: [
8130
- /* @__PURE__ */ jsx21("div", { className: "mbow-section-head", children: /* @__PURE__ */ jsx21("h3", { children: "Per-biller summary" }) }),
8131
- /* @__PURE__ */ jsxs21("table", { className: "mbow-table", children: [
8132
- /* @__PURE__ */ jsx21("thead", { children: /* @__PURE__ */ jsxs21("tr", { children: [
8133
- /* @__PURE__ */ jsx21("th", { children: "Biller" }),
8134
- /* @__PURE__ */ jsx21("th", { children: "Created" }),
8135
- /* @__PURE__ */ jsx21("th", { children: "Transmissions" }),
8136
- /* @__PURE__ */ jsx21("th", { children: "Submitted" }),
8137
- /* @__PURE__ */ jsx21("th", { children: "Accepted first try" }),
8138
- /* @__PURE__ */ jsx21("th", { children: "Volume" })
8337
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-card mbow-scroll", children: [
8338
+ /* @__PURE__ */ jsx22("div", { className: "mbow-section-head", children: /* @__PURE__ */ jsx22("h3", { children: "Per-biller summary" }) }),
8339
+ /* @__PURE__ */ jsxs22("table", { className: "mbow-table", children: [
8340
+ /* @__PURE__ */ jsx22("thead", { children: /* @__PURE__ */ jsxs22("tr", { children: [
8341
+ /* @__PURE__ */ jsx22("th", { children: "Biller" }),
8342
+ /* @__PURE__ */ jsx22("th", { children: "Created" }),
8343
+ /* @__PURE__ */ jsx22("th", { children: "Transmissions" }),
8344
+ /* @__PURE__ */ jsx22("th", { children: "Submitted" }),
8345
+ /* @__PURE__ */ jsx22("th", { children: "Accepted first try" }),
8346
+ /* @__PURE__ */ jsx22("th", { children: "Volume" })
8139
8347
  ] }) }),
8140
- /* @__PURE__ */ jsx21("tbody", { children: data.billers.map((biller) => {
8348
+ /* @__PURE__ */ jsx22("tbody", { children: data.billers.map((biller) => {
8141
8349
  const sent = data.sentTotal[biller.name] ?? 0;
8142
8350
  const submitted = data.submittedTotal[biller.name] ?? 0;
8143
8351
  const clean = data.cleanTotal[biller.name] ?? 0;
8144
- return /* @__PURE__ */ jsxs21("tr", { children: [
8145
- /* @__PURE__ */ jsx21("td", { className: "mbow-strong", children: biller.name }),
8146
- /* @__PURE__ */ jsx21("td", { children: data.createdTotal[biller.name] ?? 0 }),
8147
- /* @__PURE__ */ jsx21("td", { children: sent }),
8148
- /* @__PURE__ */ jsx21("td", { children: submitted }),
8149
- /* @__PURE__ */ jsx21("td", { children: submitted ? `${Math.round(clean / submitted * 100)}%` : "\u2014" }),
8150
- /* @__PURE__ */ jsx21("td", { children: /* @__PURE__ */ jsx21("div", { className: "mbow-bar", children: /* @__PURE__ */ jsx21("i", { style: { width: `${sent / maxSent * 100}%` } }) }) })
8352
+ return /* @__PURE__ */ jsxs22("tr", { children: [
8353
+ /* @__PURE__ */ jsx22("td", { className: "mbow-strong", children: biller.name }),
8354
+ /* @__PURE__ */ jsx22("td", { children: data.createdTotal[biller.name] ?? 0 }),
8355
+ /* @__PURE__ */ jsx22("td", { children: sent }),
8356
+ /* @__PURE__ */ jsx22("td", { children: submitted }),
8357
+ /* @__PURE__ */ jsx22("td", { children: submitted ? `${Math.round(clean / submitted * 100)}%` : "\u2014" }),
8358
+ /* @__PURE__ */ jsx22("td", { children: /* @__PURE__ */ jsx22("div", { className: "mbow-bar", children: /* @__PURE__ */ jsx22("i", { style: { width: `${sent / maxSent * 100}%` } }) }) })
8151
8359
  ] }, biller.name);
8152
8360
  }) })
8153
8361
  ] })
@@ -8157,43 +8365,43 @@ function ConnectedProductivityReport({ appearance, className, style, initialFrom
8157
8365
  }
8158
8366
  function ConnectedBillingWorkspace({ appearance, className, style, initialView = "tasks", onCreateBill, onPostPayment, sandboxControls = false, getCourtesyCopyRecipientOptions, ...options }) {
8159
8367
  const client = useClient(options);
8160
- const [view, setView] = useState17(initialView);
8161
- const [billQuery, setBillQuery] = useState17({ status: "all" });
8162
- const [selectedBillId, setSelectedBillId] = useState17(null);
8368
+ const [view, setView] = useState18(initialView);
8369
+ const [billQuery, setBillQuery] = useState18({ status: "all" });
8370
+ const [selectedBillId, setSelectedBillId] = useState18(null);
8163
8371
  const { workspaceRef, availableHeight } = useAvailableViewportHeight();
8164
8372
  const workspaceClassName = ["mbow-workspace", className].filter(Boolean).join(" ");
8165
8373
  const hasExplicitHeight = style?.height != null || style?.maxHeight != null;
8166
8374
  const workspaceStyle = availableHeight == null || hasExplicitHeight ? style : { ...style, maxHeight: availableHeight };
8167
- if (selectedBillId) return /* @__PURE__ */ jsxs21(Surface, { surfaceRef: workspaceRef, appearance, className: workspaceClassName, style: workspaceStyle, children: [
8168
- /* @__PURE__ */ jsx21("button", { className: "mbow-button mbow-back", type: "button", onClick: () => setSelectedBillId(null), children: "\u2190 Back to bills" }),
8169
- /* @__PURE__ */ jsx21(ConnectedBillLifecycle, { billId: selectedBillId, sandboxControls, courtesyCopyRecipientOptions: getCourtesyCopyRecipientOptions?.(selectedBillId) ?? [], ...options, ...appearance ? { appearance } : {} })
8375
+ if (selectedBillId) return /* @__PURE__ */ jsxs22(Surface, { surfaceRef: workspaceRef, appearance, className: workspaceClassName, style: workspaceStyle, children: [
8376
+ /* @__PURE__ */ jsx22("button", { className: "mbow-button mbow-back", type: "button", onClick: () => setSelectedBillId(null), children: "\u2190 Back to bills" }),
8377
+ /* @__PURE__ */ jsx22(ConnectedBillLifecycle, { billId: selectedBillId, sandboxControls, courtesyCopyRecipientOptions: getCourtesyCopyRecipientOptions?.(selectedBillId) ?? [], ...options, ...appearance ? { appearance } : {} })
8170
8378
  ] });
8171
8379
  const selectView = (next) => {
8172
8380
  setView(next);
8173
8381
  setSelectedBillId(null);
8174
8382
  };
8175
8383
  const appearanceProps = appearance ? { appearance } : {};
8176
- return /* @__PURE__ */ jsxs21(Surface, { surfaceRef: workspaceRef, appearance, className: workspaceClassName, style: workspaceStyle, children: [
8177
- /* @__PURE__ */ jsxs21("div", { className: "mbow-head", children: [
8178
- /* @__PURE__ */ jsxs21("div", { children: [
8179
- /* @__PURE__ */ jsx21("h2", { children: "Billing" }),
8180
- /* @__PURE__ */ jsx21("p", { className: "mbow-sub", children: "Follow up on open work or find any bill and its current status." })
8384
+ return /* @__PURE__ */ jsxs22(Surface, { surfaceRef: workspaceRef, appearance, className: workspaceClassName, style: workspaceStyle, children: [
8385
+ /* @__PURE__ */ jsxs22("div", { className: "mbow-head", children: [
8386
+ /* @__PURE__ */ jsxs22("div", { children: [
8387
+ /* @__PURE__ */ jsx22("h2", { children: "Billing" }),
8388
+ /* @__PURE__ */ jsx22("p", { className: "mbow-sub", children: "Follow up on open work or find any bill and its current status." })
8181
8389
  ] }),
8182
- onCreateBill ? /* @__PURE__ */ jsx21("div", { className: "mbow-actions", children: /* @__PURE__ */ jsx21("button", { className: "mbow-button primary", type: "button", onClick: onCreateBill, children: "+ Add bill" }) }) : null
8390
+ onCreateBill ? /* @__PURE__ */ jsx22("div", { className: "mbow-actions", children: /* @__PURE__ */ jsx22("button", { className: "mbow-button primary", type: "button", onClick: onCreateBill, children: "+ Add bill" }) }) : null
8183
8391
  ] }),
8184
- /* @__PURE__ */ jsx21("div", { className: "mbow-tabs", role: "tablist", children: [["tasks", "Bill tasks"], ["bills", "All bills"], ["procedures", "Procedures"], ["productivity", "Productivity"], ["payments", "Payment review"]].map(([id, label]) => /* @__PURE__ */ jsx21("button", { className: `mbow-tab ${view === id ? "active" : ""}`, type: "button", role: "tab", "aria-selected": view === id, onClick: () => selectView(id), children: label }, id)) }),
8185
- view === "tasks" ? /* @__PURE__ */ jsx21(BillTasksContent, { client, onDrillDown: (query) => {
8392
+ /* @__PURE__ */ jsx22("div", { className: "mbow-tabs", role: "tablist", children: [["tasks", "Bill tasks"], ["bills", "All bills"], ["procedures", "Procedures"], ["productivity", "Productivity"], ["payments", "Payment review"]].map(([id, label]) => /* @__PURE__ */ jsx22("button", { className: `mbow-tab ${view === id ? "active" : ""}`, type: "button", role: "tab", "aria-selected": view === id, onClick: () => selectView(id), children: label }, id)) }),
8393
+ view === "tasks" ? /* @__PURE__ */ jsx22(BillTasksContent, { client, onDrillDown: (query) => {
8186
8394
  setBillQuery(query);
8187
8395
  setView("bills");
8188
- }, appearance }) : view === "bills" ? /* @__PURE__ */ jsx21(BillSearchContent, { client, initialQuery: billQuery, onSelectBill: (bill) => setSelectedBillId(bill.id) }) : view === "procedures" ? /* @__PURE__ */ jsx21(ConnectedServiceLineItemsReport, { ...options, ...appearanceProps, onSelectBill: setSelectedBillId }) : view === "payments" ? /* @__PURE__ */ jsx21(ConnectedPaymentReview, { ...options, ...appearanceProps, ...onPostPayment ? { onPostPayment } : {}, onSelectBill: setSelectedBillId }) : /* @__PURE__ */ jsx21(ConnectedProductivityReport, { ...options, ...appearanceProps })
8396
+ }, appearance }) : view === "bills" ? /* @__PURE__ */ jsx22(BillSearchContent, { client, initialQuery: billQuery, onSelectBill: (bill) => setSelectedBillId(bill.id) }) : view === "procedures" ? /* @__PURE__ */ jsx22(ConnectedServiceLineItemsReport, { ...options, ...appearanceProps, onSelectBill: setSelectedBillId }) : view === "payments" ? /* @__PURE__ */ jsx22(ConnectedPaymentReview, { ...options, ...appearanceProps, ...onPostPayment ? { onPostPayment } : {}, onSelectBill: setSelectedBillId }) : /* @__PURE__ */ jsx22(ConnectedProductivityReport, { ...options, ...appearanceProps })
8189
8397
  ] });
8190
8398
  }
8191
8399
 
8192
8400
  // src/index.tsx
8193
8401
  function widget(tagName, props) {
8194
- const ref = useRef10(null);
8402
+ const ref = useRef11(null);
8195
8403
  const { onMindBill, onMindBillError } = props;
8196
- useEffect15(() => {
8404
+ useEffect16(() => {
8197
8405
  const element = ref.current;
8198
8406
  if (!element) return;
8199
8407
  const handleEvent = (event) => onMindBill?.(event);
@@ -8272,6 +8480,7 @@ export {
8272
8480
  ConnectedBillStatus,
8273
8481
  ConnectedBillTasksDashboard,
8274
8482
  ConnectedBillingWorkspace,
8483
+ ConnectedNotificationRecipientsSettings,
8275
8484
  ConnectedNotificationSettings,
8276
8485
  ConnectedPaymentReview,
8277
8486
  ConnectedProductivityReport,
@@ -8282,6 +8491,7 @@ export {
8282
8491
  MED_LEGAL_REPORT_TYPE_CODE,
8283
8492
  MindBillBillReview,
8284
8493
  MindBillBillTimeline,
8494
+ NotificationRecipientsSettings,
8285
8495
  NotificationSettings,
8286
8496
  OrganizationOnboarding,
8287
8497
  PSYCH_QME_DEFAULT_DIAGNOSIS,