@mindbill/react 0.9.4 → 0.11.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
@@ -4,6 +4,85 @@
4
4
  import "@mindbill/embed";
5
5
  import { createElement, useEffect as useEffect4, useRef as useRef4 } from "react";
6
6
 
7
+ // src/appearance.ts
8
+ var mindBillThemePresets = {
9
+ mindbill: {
10
+ accentColor: "#238dbd",
11
+ accentTextColor: "#ffffff",
12
+ backgroundColor: "#f3f8fa",
13
+ surfaceColor: "#ffffff",
14
+ inputBackgroundColor: "#ffffff",
15
+ textColor: "#203743",
16
+ mutedColor: "#657982",
17
+ borderColor: "#dbe6ea",
18
+ borderRadius: "14px",
19
+ controlRadius: "8px",
20
+ shadow: "0 8px 24px rgba(28,58,72,.04)",
21
+ dangerColor: "#b63d35",
22
+ successColor: "#217449",
23
+ warningColor: "#8a5c17"
24
+ },
25
+ "qme-companion": {
26
+ accentColor: "#53b5dc",
27
+ accentTextColor: "#173542",
28
+ backgroundColor: "#f2f8fb",
29
+ surfaceColor: "#ffffff",
30
+ inputBackgroundColor: "#ffffff",
31
+ textColor: "#1d3440",
32
+ mutedColor: "#617783",
33
+ borderColor: "#d7e5eb",
34
+ borderRadius: "12px",
35
+ controlRadius: "8px",
36
+ shadow: "0 1px 2px rgba(29,52,64,.05)",
37
+ dangerColor: "#b83f3a",
38
+ successColor: "#21835d",
39
+ warningColor: "#9a6418",
40
+ fontFamily: "Inter, ui-sans-serif, system-ui, sans-serif"
41
+ },
42
+ brighterway: {
43
+ accentColor: "#ff4f0a",
44
+ accentTextColor: "#ffffff",
45
+ backgroundColor: "#fffaf6",
46
+ surfaceColor: "#ffffff",
47
+ inputBackgroundColor: "#ffffff",
48
+ textColor: "#111827",
49
+ mutedColor: "#626a73",
50
+ borderColor: "#e5e1dc",
51
+ borderRadius: "8px",
52
+ controlRadius: "6px",
53
+ shadow: "0 4px 18px rgba(17,24,39,.06)",
54
+ dangerColor: "#b42318",
55
+ successColor: "#16794f",
56
+ warningColor: "#9a5b13",
57
+ fontFamily: "Inter, ui-sans-serif, system-ui, sans-serif"
58
+ }
59
+ };
60
+ function resolveMindBillAppearance(appearance) {
61
+ const preset = appearance?.preset ?? "mindbill";
62
+ return { ...mindBillThemePresets[preset], ...appearance, preset };
63
+ }
64
+ function mindBillAppearanceStyle(appearance, style) {
65
+ const resolved = resolveMindBillAppearance(appearance);
66
+ return {
67
+ "--mb-accent": resolved.accentColor,
68
+ "--mb-accent-contrast": resolved.accentTextColor,
69
+ "--mb-text": resolved.textColor,
70
+ "--mb-muted": resolved.mutedColor,
71
+ "--mb-border": resolved.borderColor,
72
+ "--mb-soft": resolved.backgroundColor,
73
+ "--mb-surface": resolved.surfaceColor,
74
+ "--mb-input": resolved.inputBackgroundColor,
75
+ "--mb-font": resolved.fontFamily,
76
+ "--mb-radius": resolved.borderRadius,
77
+ "--mb-control-radius": resolved.controlRadius,
78
+ "--mb-shadow": resolved.shadow,
79
+ "--mb-danger": resolved.dangerColor,
80
+ "--mb-success": resolved.successColor,
81
+ "--mb-warning": resolved.warningColor,
82
+ ...style
83
+ };
84
+ }
85
+
7
86
  // src/native-bill-review.tsx
8
87
  import { useEffect, useId, useMemo, useRef, useState } from "react";
9
88
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -66,11 +145,6 @@ var MODIFIER_CODES = {
66
145
  "97": ["ML201", "ML202", "ML203"],
67
146
  "98": ["ML201", "ML202", "ML203"]
68
147
  };
69
- function withoutId(value) {
70
- const result = { ...value };
71
- delete result.id;
72
- return result;
73
- }
74
148
  function toDraft(data) {
75
149
  const snapshot = data.bill.billingSnapshot;
76
150
  const nameParts = data.patient.name.trim().split(/\s+/);
@@ -119,12 +193,9 @@ function buildBillReviewSaveInput(draft) {
119
193
  dos: draft.dos,
120
194
  dosEnd: draft.dosEnd || null,
121
195
  authorizationNumber: draft.authorizationNumber.trim() || null,
122
- ...draft.billingProvider.id ? { billingProviderId: draft.billingProvider.id } : {},
123
- billingProvider: withoutId(draft.billingProvider),
124
- ...draft.clinician.id ? { renderingProviderId: draft.clinician.id } : {},
125
- renderingProvider: withoutId(draft.clinician),
126
- ...draft.location.id ? { placeOfServiceId: draft.location.id } : {},
127
- placeOfService: withoutId(draft.location),
196
+ billingProvider: { ...draft.billingProvider },
197
+ renderingProvider: { ...draft.clinician },
198
+ placeOfService: { ...draft.location },
128
199
  lineItems: draft.lineItems.filter((line) => line.code.trim()).map(({ id, code, modifiers, units }) => ({
129
200
  ...id ? { id } : {},
130
201
  code: code.trim().toUpperCase(),
@@ -139,18 +210,6 @@ function money(value) {
139
210
  currency: "USD"
140
211
  }).format(value);
141
212
  }
142
- function appearanceStyle(appearance, style) {
143
- return {
144
- ...appearance?.accentColor ? { "--mb-accent": appearance.accentColor } : {},
145
- ...appearance?.textColor ? { "--mb-text": appearance.textColor } : {},
146
- ...appearance?.mutedColor ? { "--mb-muted": appearance.mutedColor } : {},
147
- ...appearance?.borderColor ? { "--mb-border": appearance.borderColor } : {},
148
- ...appearance?.backgroundColor ? { "--mb-soft": appearance.backgroundColor } : {},
149
- ...appearance?.surfaceColor ? { "--mb-surface": appearance.surfaceColor } : {},
150
- ...appearance?.fontFamily ? { "--mb-font": appearance.fontFamily } : {},
151
- ...style
152
- };
153
- }
154
213
  function Field({
155
214
  label,
156
215
  value,
@@ -456,10 +515,11 @@ function BillReviewForm({
456
515
  "form",
457
516
  {
458
517
  className: ["mb-native-review", className].filter(Boolean).join(" "),
459
- style: appearanceStyle(appearance, style),
518
+ style: mindBillAppearanceStyle(appearance, style),
460
519
  onSubmit: handleSave,
461
520
  children: [
462
521
  /* @__PURE__ */ jsx("style", { children: NATIVE_BILL_REVIEW_STYLES }),
522
+ /* @__PURE__ */ jsx("style", { children: NATIVE_THEME_OVERRIDE_STYLES }),
463
523
  /* @__PURE__ */ jsxs("header", { className: "mb-native-heading", children: [
464
524
  /* @__PURE__ */ jsxs("div", { children: [
465
525
  /* @__PURE__ */ jsx("span", { className: "mb-native-eyebrow", children: "Billing review" }),
@@ -768,8 +828,9 @@ function BillReviewForm({
768
828
  );
769
829
  }
770
830
  function BillStatusSummary({ status, submittedAt, agingDays, updatedAt, totalCharge, totalPaid, balanceDue, actions = [], className, style, appearance }) {
771
- return /* @__PURE__ */ jsxs("section", { className: ["mb-native-status", className].filter(Boolean).join(" "), style: appearanceStyle(appearance, style), children: [
831
+ return /* @__PURE__ */ jsxs("section", { className: ["mb-native-status", className].filter(Boolean).join(" "), style: mindBillAppearanceStyle(appearance, style), children: [
772
832
  /* @__PURE__ */ jsx("style", { children: NATIVE_BILL_REVIEW_STYLES }),
833
+ /* @__PURE__ */ jsx("style", { children: NATIVE_THEME_OVERRIDE_STYLES }),
773
834
  /* @__PURE__ */ jsxs("div", { className: "mb-native-status-copy", children: [
774
835
  /* @__PURE__ */ jsx("span", { className: "mb-native-eyebrow", children: "Bill status" }),
775
836
  /* @__PURE__ */ jsx("h3", { children: status.replaceAll("_", " ") }),
@@ -824,6 +885,23 @@ var NATIVE_BILL_REVIEW_STYLES = `
824
885
  .mb-native-eams{margin-top:13px!important;font-size:12px}.mb-native-eams a{color:var(--mb-accent);font-weight:750}
825
886
  @media(max-width:620px){.mb-native-review{padding:12px}.mb-native-grid.two{grid-template-columns:1fr}}
826
887
  `;
888
+ var NATIVE_THEME_OVERRIDE_STYLES = `
889
+ .mb-native-review,.mb-native-status{color:var(--mb-text);font-family:var(--mb-font,Inter,ui-sans-serif,system-ui,sans-serif)}
890
+ .mb-native-review{background:var(--mb-soft)}
891
+ .mb-native-heading>div:first-child>p,.mb-native-section>header p,.mb-native-total span,.mb-native-status-copy p,.mb-native-status dt{color:var(--mb-muted)}
892
+ .mb-native-summary,.mb-native-section,.mb-native-status{border-color:var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface);box-shadow:var(--mb-shadow)}
893
+ .mb-native-field input,.mb-native-field select,.mb-native-field textarea,.mb-native-attachment-form input,.mb-native-attachment-form select{border-color:var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-input);color:var(--mb-text)}
894
+ .mb-native-line,.mb-native-note,.mb-native-file,.mb-native-attachment-form,.mb-native-payer-insight,.mb-native-blockers,.mb-native-message{border-radius:var(--mb-control-radius)}
895
+ .mb-native-line,.mb-native-note,.mb-native-attachment-form,.mb-native-payer-insight{border-color:var(--mb-border);background:var(--mb-soft)}
896
+ .mb-native-file{border-color:var(--mb-border);background:var(--mb-surface)}
897
+ .mb-native-button.primary,.mb-native-presets button.active{border-color:var(--mb-accent);background:var(--mb-accent);color:var(--mb-accent-contrast)}
898
+ .mb-native-button.primary:hover,.mb-native-presets button.active:hover{filter:brightness(.96)}
899
+ .mb-native-button.secondary,.mb-native-presets button,.mb-native-chips button{border-color:var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-input);color:var(--mb-text)}
900
+ .mb-native-message.error{background:color-mix(in srgb,var(--mb-danger) 10%,white);color:var(--mb-danger)}
901
+ .mb-native-message.success{background:color-mix(in srgb,var(--mb-success) 10%,white);color:var(--mb-success)}
902
+ .mb-native-blockers{border-color:color-mix(in srgb,var(--mb-warning) 35%,white);background:color-mix(in srgb,var(--mb-warning) 8%,white);color:var(--mb-warning)}
903
+ .mb-native-combo-list{border-color:var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-surface);box-shadow:var(--mb-shadow)}
904
+ `;
827
905
 
828
906
  // src/connected-bill-status.tsx
829
907
  import {
@@ -929,7 +1007,7 @@ function createBillStatusClient({
929
1007
  };
930
1008
  const requestStatus = async (browserSession, signal) => {
931
1009
  const baseUrl = (browserSession.apiBaseUrl ?? apiBaseUrl).replace(/\/$/, "");
932
- return fetcher(`${baseUrl}/embed/api/bill-timeline`, {
1010
+ return fetcher(`${baseUrl}/partner/v2/browser/status`, {
933
1011
  headers: { authorization: `Bearer ${browserSession.token}` },
934
1012
  signal
935
1013
  });
@@ -1201,7 +1279,7 @@ function createBillLifecycleClient({
1201
1279
  return response;
1202
1280
  };
1203
1281
  const loadLifecycle = async (signal) => {
1204
- const response = await request("/embed/api/bill-lifecycle", {}, signal);
1282
+ const response = await request("/partner/v2/browser/bill", {}, signal);
1205
1283
  if (!response.ok) {
1206
1284
  throw await responseError2(response, "Bill lifecycle could not be loaded.");
1207
1285
  }
@@ -1213,7 +1291,7 @@ function createBillLifecycleClient({
1213
1291
  if (query.trim()) params.set("q", query.trim());
1214
1292
  if (claimNumber?.trim()) params.set("claimNumber", claimNumber.trim());
1215
1293
  const response = await request(
1216
- `/embed/api/bill-review/payers?${params.toString()}`
1294
+ `/partner/v2/browser/claims-administrators?${params.toString()}`
1217
1295
  );
1218
1296
  if (!response.ok) {
1219
1297
  throw await responseError2(
@@ -1264,7 +1342,7 @@ function createBillLifecycleClient({
1264
1342
  };
1265
1343
  const action = async (input, fallback) => {
1266
1344
  const response = await mutation(
1267
- "/embed/api/bill-lifecycle/actions",
1345
+ "/partner/v2/browser/actions",
1268
1346
  {
1269
1347
  method: "POST",
1270
1348
  headers: { "content-type": "application/json" },
@@ -1277,7 +1355,7 @@ function createBillLifecycleClient({
1277
1355
  };
1278
1356
  const saveReview = async (input) => {
1279
1357
  await mutation(
1280
- "/embed/api/bill-review",
1358
+ "/partner/v2/browser/bill",
1281
1359
  {
1282
1360
  method: "PATCH",
1283
1361
  headers: { "content-type": "application/json" },
@@ -1298,7 +1376,7 @@ function createBillLifecycleClient({
1298
1376
  async submitBill(input, route) {
1299
1377
  await saveReview(input);
1300
1378
  await mutation(
1301
- "/embed/api/bill-review/submit",
1379
+ "/partner/v2/browser/submissions",
1302
1380
  {
1303
1381
  method: "POST",
1304
1382
  headers: { "content-type": "application/json" },
@@ -1314,7 +1392,7 @@ function createBillLifecycleClient({
1314
1392
  body.set("documentType", documentType);
1315
1393
  if (description) body.set("description", description);
1316
1394
  await mutation(
1317
- "/embed/api/bill-review/attachments",
1395
+ "/partner/v2/browser/documents",
1318
1396
  { method: "POST", body },
1319
1397
  "Document could not be attached."
1320
1398
  );
@@ -1322,7 +1400,7 @@ function createBillLifecycleClient({
1322
1400
  },
1323
1401
  async removeAttachment(attachmentId) {
1324
1402
  await mutation(
1325
- `/embed/api/bill-review/attachments/${encodeURIComponent(attachmentId)}`,
1403
+ `/partner/v2/browser/documents/${encodeURIComponent(attachmentId)}`,
1326
1404
  { method: "DELETE" },
1327
1405
  "Document could not be removed."
1328
1406
  );
@@ -1330,7 +1408,7 @@ function createBillLifecycleClient({
1330
1408
  },
1331
1409
  async getAttachment(attachmentId) {
1332
1410
  const response = await request(
1333
- `/embed/api/bill-review/attachments/${encodeURIComponent(attachmentId)}`
1411
+ `/partner/v2/browser/documents/${encodeURIComponent(attachmentId)}`
1334
1412
  );
1335
1413
  if (!response.ok) {
1336
1414
  throw await responseError2(response, "Document could not be opened.");
@@ -1339,7 +1417,7 @@ function createBillLifecycleClient({
1339
1417
  },
1340
1418
  async getEor(documentId) {
1341
1419
  const response = await request(
1342
- `/embed/api/bill-lifecycle/eor/${encodeURIComponent(documentId)}`
1420
+ `/partner/v2/browser/eors/${encodeURIComponent(documentId)}`
1343
1421
  );
1344
1422
  if (!response.ok) throw await responseError2(response, "EOR could not be opened.");
1345
1423
  return response.blob();
@@ -1361,7 +1439,7 @@ function createBillLifecycleClient({
1361
1439
  },
1362
1440
  async startCorrection() {
1363
1441
  const response = await mutation(
1364
- "/embed/api/bill-lifecycle/actions",
1442
+ "/partner/v2/browser/actions",
1365
1443
  {
1366
1444
  method: "POST",
1367
1445
  headers: { "content-type": "application/json" },
@@ -1553,18 +1631,6 @@ function dateInputValue() {
1553
1631
  const offset = now.getTimezoneOffset() * 6e4;
1554
1632
  return new Date(now.getTime() - offset).toISOString().slice(0, 10);
1555
1633
  }
1556
- function appearanceStyle2(appearance, style) {
1557
- return {
1558
- ...appearance?.accentColor ? { "--mb-accent": appearance.accentColor } : {},
1559
- ...appearance?.textColor ? { "--mb-text": appearance.textColor } : {},
1560
- ...appearance?.mutedColor ? { "--mb-muted": appearance.mutedColor } : {},
1561
- ...appearance?.borderColor ? { "--mb-border": appearance.borderColor } : {},
1562
- ...appearance?.backgroundColor ? { "--mb-soft": appearance.backgroundColor } : {},
1563
- ...appearance?.surfaceColor ? { "--mb-surface": appearance.surfaceColor } : {},
1564
- ...appearance?.fontFamily ? { "--mb-font": appearance.fontFamily } : {},
1565
- ...style
1566
- };
1567
- }
1568
1634
  function SupportingDocumentControl({
1569
1635
  disabled,
1570
1636
  onAdd
@@ -1672,8 +1738,9 @@ function ConnectedBillLifecycle({
1672
1738
  disabled: !action.enabled || lifecycle.isMutating
1673
1739
  }));
1674
1740
  const canEditAndSubmit = Boolean(has("edit_and_submit"));
1675
- return /* @__PURE__ */ jsxs3("section", { className: ["mb-connected-lifecycle", className].filter(Boolean).join(" "), style: appearanceStyle2(appearance, style), children: [
1741
+ return /* @__PURE__ */ jsxs3("section", { className: ["mb-connected-lifecycle", className].filter(Boolean).join(" "), style: mindBillAppearanceStyle(appearance, style), children: [
1676
1742
  /* @__PURE__ */ jsx3("style", { children: CONNECTED_LIFECYCLE_STYLES }),
1743
+ /* @__PURE__ */ jsx3("style", { children: CONNECTED_THEME_OVERRIDE_STYLES }),
1677
1744
  canEditAndSubmit ? /* @__PURE__ */ jsx3(
1678
1745
  BillReviewForm,
1679
1746
  {
@@ -1871,6 +1938,22 @@ function ConnectedBillLifecycle({
1871
1938
  var CONNECTED_LIFECYCLE_STYLES = `
1872
1939
  .mb-connected-lifecycle{--mb-accent:#238dbd;--mb-text:#203743;--mb-muted:#657982;--mb-border:#dbe6ea;--mb-soft:#f3f8fa;--mb-surface:#fff;display:grid;gap:14px;color:var(--mb-text);font:14px/1.45 var(--mb-font,Inter,ui-sans-serif,system-ui,sans-serif)}.mb-connected-lifecycle *{box-sizing:border-box}.mb-lifecycle-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--mb-border);border-radius:10px;background:var(--mb-surface)}.mb-lifecycle-toolbar>div:first-child{display:grid;gap:2px}.mb-lifecycle-toolbar span,.mb-lifecycle-card p,.mb-lifecycle-panel p,.mb-lifecycle-info span{color:var(--mb-muted)}.mb-lifecycle-toolbar-actions,.mb-lifecycle-panel-actions{display:flex;justify-content:flex-end;gap:8px}.mb-lifecycle-button{min-height:38px;border:1px solid var(--mb-border);border-radius:8px;background:#fff;color:var(--mb-text);cursor:pointer;font:inherit;font-weight:750;padding:8px 13px}.mb-lifecycle-button.primary{border-color:var(--mb-accent);background:var(--mb-accent);color:#fff}.mb-lifecycle-button.quiet{border-color:transparent;background:transparent;color:var(--mb-muted)}.mb-lifecycle-button.danger{border-color:#b63d35;background:#b63d35;color:#fff}.mb-lifecycle-button:disabled{cursor:not-allowed;opacity:.5}.mb-lifecycle-card,.mb-lifecycle-panel{padding:18px;border:1px solid var(--mb-border);border-radius:12px;background:var(--mb-surface)}.mb-lifecycle-card header{display:flex;align-items:start;justify-content:space-between;gap:16px}.mb-lifecycle-card h3,.mb-lifecycle-panel h3{margin:0;font-size:18px}.mb-lifecycle-card p,.mb-lifecycle-panel p{margin:3px 0 0}.mb-lifecycle-card header>span{padding:5px 8px;border-radius:999px;background:var(--mb-soft);color:var(--mb-muted);font-size:11px;font-weight:800;text-transform:uppercase}.mb-lifecycle-documents{list-style:none;margin:12px 0 0;padding:0}.mb-lifecycle-documents li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--mb-border)}.mb-lifecycle-documents li>div{display:grid}.mb-lifecycle-documents span{color:var(--mb-muted);font-size:12px}.mb-lifecycle-info{display:grid;gap:3px;padding:13px 15px;border:1px solid #cddfe5;border-radius:10px;background:var(--mb-soft)}.mb-lifecycle-panel{display:grid;gap:16px;box-shadow:0 14px 38px rgba(30,56,68,.08)}.mb-lifecycle-panel.danger{border-color:#ecc5c2}.mb-lifecycle-panel label{display:grid;gap:6px;font-size:12px;font-weight:750}.mb-lifecycle-panel label small{color:var(--mb-muted);font-size:inherit;font-weight:500}.mb-lifecycle-panel input,.mb-lifecycle-panel select,.mb-lifecycle-panel textarea,.mb-lifecycle-upload input,.mb-lifecycle-upload select{width:100%;min-height:42px;border:1px solid var(--mb-border);border-radius:8px;background:#fff;color:var(--mb-text);font:inherit;padding:9px 11px}.mb-lifecycle-panel textarea{min-height:100px;resize:vertical}.mb-lifecycle-fields{display:grid;gap:12px}.mb-lifecycle-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.mb-lifecycle-fields .full{grid-column:1/-1}.mb-lifecycle-packet{display:grid;gap:0;margin:0;padding:0;border:0}.mb-lifecycle-packet legend{margin-bottom:7px;font-size:12px;font-weight:800}.mb-lifecycle-packet>label{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px 2px;border-top:1px solid var(--mb-border)}.mb-lifecycle-packet>label>input{width:16px;min-height:16px}.mb-lifecycle-packet>label>span{display:grid}.mb-lifecycle-packet button{border:0;background:transparent;color:var(--mb-accent);cursor:pointer;font:inherit}.mb-lifecycle-upload{display:grid;grid-template-columns:220px 1fr auto;align-items:end;gap:10px;padding:12px;border-radius:9px;background:var(--mb-soft)}.mb-lifecycle-message,.mb-lifecycle-error,.mb-lifecycle-loading{padding:12px 14px;border-radius:9px}.mb-lifecycle-message.success{background:#edf9f2;color:#217449}.mb-lifecycle-message.error,.mb-lifecycle-error{background:#fff0ef;color:#9d3029}.mb-lifecycle-error{display:flex;align-items:center;gap:12px}.mb-lifecycle-error span{flex:1}.mb-lifecycle-error button{border:1px solid currentColor;border-radius:7px;background:transparent;color:inherit;padding:7px 10px}@media(max-width:760px){.mb-lifecycle-toolbar,.mb-lifecycle-card header{align-items:stretch;flex-direction:column}.mb-lifecycle-toolbar-actions,.mb-lifecycle-panel-actions{justify-content:start}.mb-lifecycle-fields.two,.mb-lifecycle-upload{grid-template-columns:1fr}.mb-lifecycle-documents li{align-items:start}.mb-lifecycle-packet>label{grid-template-columns:auto 1fr auto}}
1873
1940
  `;
1941
+ var CONNECTED_THEME_OVERRIDE_STYLES = `
1942
+ .mb-connected-lifecycle{color:var(--mb-text);font-family:var(--mb-font,Inter,ui-sans-serif,system-ui,sans-serif)}
1943
+ .mb-lifecycle-toolbar,.mb-lifecycle-card,.mb-lifecycle-panel{border-color:var(--mb-border);border-radius:var(--mb-radius);background:var(--mb-surface)}
1944
+ .mb-lifecycle-panel{box-shadow:var(--mb-shadow)}
1945
+ .mb-lifecycle-toolbar span,.mb-lifecycle-card p,.mb-lifecycle-panel p,.mb-lifecycle-info span{color:var(--mb-muted)}
1946
+ .mb-lifecycle-button{border-color:var(--mb-border);border-radius:var(--mb-control-radius);background:var(--mb-input);color:var(--mb-text)}
1947
+ .mb-lifecycle-button.primary{border-color:var(--mb-accent);background:var(--mb-accent);color:var(--mb-accent-contrast)}
1948
+ .mb-lifecycle-button.primary:hover{filter:brightness(.96)}
1949
+ .mb-lifecycle-button.danger{border-color:var(--mb-danger);background:var(--mb-danger);color:white}
1950
+ .mb-lifecycle-card header>span,.mb-lifecycle-info,.mb-lifecycle-upload{background:var(--mb-soft)}
1951
+ .mb-lifecycle-info,.mb-lifecycle-panel input,.mb-lifecycle-panel select,.mb-lifecycle-panel textarea,.mb-lifecycle-upload input,.mb-lifecycle-upload select{border-color:var(--mb-border);border-radius:var(--mb-control-radius)}
1952
+ .mb-lifecycle-panel input,.mb-lifecycle-panel select,.mb-lifecycle-panel textarea,.mb-lifecycle-upload input,.mb-lifecycle-upload select{background:var(--mb-input);color:var(--mb-text)}
1953
+ .mb-lifecycle-message,.mb-lifecycle-error,.mb-lifecycle-loading,.mb-lifecycle-upload{border-radius:var(--mb-control-radius)}
1954
+ .mb-lifecycle-message.success{background:color-mix(in srgb,var(--mb-success) 10%,white);color:var(--mb-success)}
1955
+ .mb-lifecycle-message.error,.mb-lifecycle-error{background:color-mix(in srgb,var(--mb-danger) 10%,white);color:var(--mb-danger)}
1956
+ `;
1874
1957
 
1875
1958
  // src/index.tsx
1876
1959
  function widget(tagName, props) {
@@ -1912,38 +1995,19 @@ function MindBillBillTimeline(props) {
1912
1995
  function MindBillBillReview(props) {
1913
1996
  return widget("mindbill-bill-review", props);
1914
1997
  }
1915
- function MindBillBillFromReport(props) {
1916
- return widget("mindbill-bill-from-report", props);
1917
- }
1918
- function MindBillCollections(props) {
1919
- return widget("mindbill-collections", props);
1920
- }
1921
- function MindBillOnboarding(props) {
1922
- return widget("mindbill-onboarding", props);
1923
- }
1924
- var HostedBillTimeline = MindBillBillTimeline;
1925
- var HostedBillReview = MindBillBillReview;
1926
- var HostedBillFromReport = MindBillBillFromReport;
1927
- var HostedCollections = MindBillCollections;
1928
- var HostedOnboarding = MindBillOnboarding;
1929
1998
  export {
1930
1999
  BillReviewForm,
1931
2000
  BillStatusSummary,
1932
2001
  ConnectedBillLifecycle,
1933
2002
  ConnectedBillStatus,
1934
- HostedBillFromReport,
1935
- HostedBillReview,
1936
- HostedBillTimeline,
1937
- HostedCollections,
1938
- HostedOnboarding,
1939
- MindBillBillFromReport,
1940
2003
  MindBillBillReview,
1941
2004
  MindBillBillTimeline,
1942
- MindBillCollections,
1943
- MindBillOnboarding,
1944
2005
  buildBillReviewSaveInput,
1945
2006
  createBillLifecycleClient,
1946
2007
  createBillStatusClient,
2008
+ mindBillAppearanceStyle,
2009
+ mindBillThemePresets,
2010
+ resolveMindBillAppearance,
1947
2011
  useBillLifecycle,
1948
2012
  useBillStatus
1949
2013
  };