@paro.io/expert-shared-components 1.14.62 → 1.14.64

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.
Files changed (35) hide show
  1. package/lib/components/TaxAxis/TaxAxisShell.js +31 -5
  2. package/lib/tax-axis/components/dashboard/TaxAxisDashboard.d.ts +2 -1
  3. package/lib/tax-axis/components/dashboard/TaxAxisDashboard.js +74 -9
  4. package/lib/tax-axis/components/documents/DocumentCard.d.ts +3 -1
  5. package/lib/tax-axis/components/documents/DocumentCard.js +15 -3
  6. package/lib/tax-axis/components/documents/DocumentReviewModal.d.ts +1 -3
  7. package/lib/tax-axis/components/documents/DocumentReviewModal.js +263 -113
  8. package/lib/tax-axis/components/documents/DocumentTier.d.ts +3 -1
  9. package/lib/tax-axis/components/documents/DocumentTier.js +2 -2
  10. package/lib/tax-axis/components/documents/TaxAxisDocuments.js +21 -2
  11. package/lib/tax-axis/components/extractionReview/TaxAxisExtractionReview.js +17 -17
  12. package/lib/tax-axis/components/intake/TaxAxisIntake.js +11 -23
  13. package/lib/tax-axis/index.d.ts +2 -0
  14. package/lib/tax-axis/index.js +5 -1
  15. package/package.json +1 -1
  16. package/lib/tax-axis/components/documents/qbo/QboAvailableReportsModal.d.ts +0 -13
  17. package/lib/tax-axis/components/documents/qbo/QboAvailableReportsModal.js +0 -180
  18. package/lib/tax-axis/components/documents/qbo/QboClientSelectorModal.d.ts +0 -10
  19. package/lib/tax-axis/components/documents/qbo/QboClientSelectorModal.js +0 -155
  20. package/lib/tax-axis/components/documents/qbo/QboConnectBanner.d.ts +0 -9
  21. package/lib/tax-axis/components/documents/qbo/QboConnectBanner.js +0 -55
  22. package/lib/tax-axis/components/documents/qbo/QboDocumentMappingModal.d.ts +0 -10
  23. package/lib/tax-axis/components/documents/qbo/QboDocumentMappingModal.js +0 -202
  24. package/lib/tax-axis/components/documents/qbo/QboImportingModal.d.ts +0 -8
  25. package/lib/tax-axis/components/documents/qbo/QboImportingModal.js +0 -75
  26. package/lib/tax-axis/components/documents/qbo/QboPermissionsModal.d.ts +0 -8
  27. package/lib/tax-axis/components/documents/qbo/QboPermissionsModal.js +0 -126
  28. package/lib/tax-axis/components/documents/qbo/index.d.ts +0 -8
  29. package/lib/tax-axis/components/documents/qbo/index.js +0 -17
  30. package/lib/tax-axis/components/documents/qbo/qboConstants.d.ts +0 -24
  31. package/lib/tax-axis/components/documents/qbo/qboConstants.js +0 -71
  32. package/lib/tax-axis/components/documents/qbo/types.d.ts +0 -43
  33. package/lib/tax-axis/components/documents/qbo/types.js +0 -3
  34. package/lib/tax-axis/components/documents/qbo/useQboFlow.d.ts +0 -19
  35. package/lib/tax-axis/components/documents/qbo/useQboFlow.js +0 -207
@@ -113,6 +113,36 @@ function entityTypeKey(entity) {
113
113
  return undefined;
114
114
  return (_a = ENTITY_DISPLAY_TO_KEY[entity]) !== null && _a !== void 0 ? _a : entity;
115
115
  }
116
+ const GENERATING_STAGES = [
117
+ 'Analyzing entity structure…',
118
+ 'Evaluating deduction strategies…',
119
+ 'Modeling tax scenarios…',
120
+ 'Scoring strategy opportunities…',
121
+ 'Generating prospect insights…',
122
+ ];
123
+ function GeneratingOverlay() {
124
+ const [elapsed, setElapsed] = (0, react_1.useState)(0);
125
+ const [mounted, setMounted] = (0, react_1.useState)(false);
126
+ (0, react_1.useEffect)(() => { setMounted(true); }, []);
127
+ (0, react_1.useEffect)(() => {
128
+ const id = setInterval(() => setElapsed((s) => s + 1), 1000);
129
+ return () => clearInterval(id);
130
+ }, []);
131
+ const stageIdx = Math.min(Math.floor(elapsed / 9), GENERATING_STAGES.length - 1);
132
+ return (react_1.default.createElement("div", { className: 'fixed inset-0 z-[180] bg-black/25' },
133
+ react_1.default.createElement("div", { className: 'absolute left-1/2 top-1/3 -translate-x-1/2 rounded-xl bg-tax-axis-surface px-8 py-6 text-center shadow-lg border border-tax-axis-border', style: { maxWidth: 360, width: '100%' } },
134
+ react_1.default.createElement("div", { className: 'w-full h-1.5 rounded-full bg-tax-axis-border mb-4 overflow-hidden' },
135
+ react_1.default.createElement("div", { className: 'h-full rounded-full', style: {
136
+ background: 'linear-gradient(90deg, #248384, #2dd4bf)',
137
+ width: mounted ? '95%' : '0%',
138
+ transition: 'width 45s ease-out',
139
+ } })),
140
+ react_1.default.createElement("div", { className: 'text-sm font-semibold text-white mb-1 font-tax-axis-body' }, "Generating Prospect Report"),
141
+ react_1.default.createElement("div", { className: 'text-xs text-tax-axis-text-3 font-tax-axis-body mb-2', style: { minHeight: 18 } }, GENERATING_STAGES[stageIdx]),
142
+ react_1.default.createElement("div", { className: 'text-[10px] text-tax-axis-text-4 font-tax-axis-mono' },
143
+ elapsed,
144
+ "s elapsed"))));
145
+ }
116
146
  function buildSessionInput(profile) {
117
147
  const taxYear = Number(profile.year) || new Date().getFullYear();
118
148
  return {
@@ -574,11 +604,7 @@ const TaxAxisShell = ({ taxAxisApi, userContext = 'expert', initialSessionId, in
574
604
  react_1.default.createElement("div", { className: 'flex items-center gap-2' },
575
605
  react_1.default.createElement("div", { className: 'w-3 h-3 rounded-full animate-spin flex-shrink-0', style: { border: '2px solid transparent', borderTopColor: '#248384' } }),
576
606
  busyMessage)))),
577
- generating && (react_1.default.createElement("div", { className: 'fixed inset-0 z-[180] bg-black/25' },
578
- react_1.default.createElement("div", { className: 'absolute left-1/2 top-1/3 -translate-x-1/2 rounded-xl bg-tax-axis-surface px-8 py-6 text-center shadow-lg border border-tax-axis-border', style: { maxWidth: 360 } },
579
- react_1.default.createElement("div", { className: 'w-6 h-6 rounded-full animate-spin mx-auto mb-3', style: { border: '2.5px solid transparent', borderTopColor: '#248384' } }),
580
- react_1.default.createElement("div", { className: 'text-sm font-semibold text-white mb-1 font-tax-axis-body' }, "Generating Prospect Report"),
581
- react_1.default.createElement("div", { className: 'text-xs text-tax-axis-text-3 font-tax-axis-body' }, "Analyzing strategies and generating insights...")))),
607
+ generating && react_1.default.createElement(GeneratingOverlay, null),
582
608
  currentView));
583
609
  };
584
610
  exports.TaxAxisShell = TaxAxisShell;
@@ -10,5 +10,6 @@ export interface TaxAxisDashboardProps extends TaxAxisScreenProps {
10
10
  onReviewData?: () => void;
11
11
  llmResult?: any;
12
12
  parsedDocuments?: any[];
13
+ onUploadMore?: () => void;
13
14
  }
14
- export declare function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPresent, onSend, onReset, onReviewData, userContext: _userContext, }: TaxAxisDashboardProps): React.JSX.Element;
15
+ export declare function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPresent, onSend, onReset, onReviewData, onUploadMore, userContext: _userContext, }: TaxAxisDashboardProps): React.JSX.Element;
@@ -42,7 +42,7 @@ const BUCKETS = [
42
42
  { key: "30d", label: "Within 30 Days", desc: "Documentation or payroll changes" },
43
43
  { key: "90d", label: "Within 90 Days", desc: "Structural changes — new accounts or plan setup" },
44
44
  ];
45
- function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPresent, onSend, onReset, onReviewData, userContext: _userContext = "expert", }) {
45
+ function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPresent, onSend, onReset, onReviewData, onUploadMore, userContext: _userContext = "expert", }) {
46
46
  // ─── Derived data ──────────────────────────────────────────────
47
47
  const computed = (0, react_1.useMemo)(() => (0, compute_1.computeAllStrategies)(profile), [profile]);
48
48
  const dashEligible = (0, react_1.useMemo)(() => (0, compute_1.filterEligibleStrategies)(profile), [profile]);
@@ -77,8 +77,23 @@ function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPre
77
77
  const c = computed.get(selected.rank);
78
78
  return Object.assign(Object.assign({}, selected), { lo: (_a = c === null || c === void 0 ? void 0 : c.lo) !== null && _a !== void 0 ? _a : selected.lo, hi: (_b = c === null || c === void 0 ? void 0 : c.hi) !== null && _b !== void 0 ? _b : selected.hi, sources: (_c = c === null || c === void 0 ? void 0 : c.sources) !== null && _c !== void 0 ? _c : selected.sources, trace: (_d = c === null || c === void 0 ? void 0 : c.trace) !== null && _d !== void 0 ? _d : selected.trace });
79
79
  }, [selected, computed]);
80
- // Sorted strategies for impact distribution
81
- const sortedByImpact = (0, react_1.useMemo)(() => [...dashEligible].sort((a, b) => { var _a, _b, _c, _d; return ((_b = (_a = computed.get(b.rank)) === null || _a === void 0 ? void 0 : _a.hi) !== null && _b !== void 0 ? _b : b.hi) - ((_d = (_c = computed.get(a.rank)) === null || _c === void 0 ? void 0 : _c.hi) !== null && _d !== void 0 ? _d : a.hi); }), [dashEligible, computed]);
80
+ // Split eligible strategies into calculable (hi > 0) vs uncalculated ($0K)
81
+ const calculable = (0, react_1.useMemo)(() => dashEligible.filter((s) => { var _a, _b; return ((_b = (_a = computed.get(s.rank)) === null || _a === void 0 ? void 0 : _a.hi) !== null && _b !== void 0 ? _b : s.hi) > 0; }), [dashEligible, computed]);
82
+ const uncalculated = (0, react_1.useMemo)(() => dashEligible.filter((s) => { var _a, _b; return ((_b = (_a = computed.get(s.rank)) === null || _a === void 0 ? void 0 : _a.hi) !== null && _b !== void 0 ? _b : s.hi) === 0; }), [dashEligible, computed]);
83
+ // Sorted calculable strategies for impact distribution
84
+ const sortedByImpact = (0, react_1.useMemo)(() => [...calculable].sort((a, b) => { var _a, _b, _c, _d; return ((_b = (_a = computed.get(b.rank)) === null || _a === void 0 ? void 0 : _a.hi) !== null && _b !== void 0 ? _b : b.hi) - ((_d = (_c = computed.get(a.rank)) === null || _c === void 0 ? void 0 : _c.hi) !== null && _d !== void 0 ? _d : a.hi); }), [calculable, computed]);
85
+ // Reverse-map: strategy name → document names needed (from DOC_SPECS_BASE)
86
+ const strategyDocNeeds = (0, react_1.useMemo)(() => {
87
+ const map = new Map();
88
+ uncalculated.forEach((s) => {
89
+ const docs = data_1.DOC_SPECS_BASE
90
+ .filter((d) => d.strategies.some((st) => s.name.includes(st) || st.includes(s.code)))
91
+ .map((d) => d.name);
92
+ map.set(s.name, docs.length > 0 ? docs : ["Upload additional documents"]);
93
+ });
94
+ return map;
95
+ }, [uncalculated]);
96
+ const [uncalcExpanded, setUncalcExpanded] = (0, react_1.useState)(false);
82
97
  return (react_1.default.createElement("div", null,
83
98
  react_1.default.createElement(DashboardSummary_1.DashboardSummary, { profile: profile, dashEligible: dashEligible, computed: computed, dataConfirmed: dataConfirmed, reviewUnreviewed: reviewStatus.unreviewed }),
84
99
  react_1.default.createElement(DashboardTopBar_1.DashboardTopBar, { topTab: topTab, setTopTab: setTopTab, dataConfirmed: dataConfirmed, reviewUnreviewed: reviewStatus.unreviewed }),
@@ -139,6 +154,23 @@ function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPre
139
154
  marginBottom: "-1px",
140
155
  } }, lbl)))),
141
156
  reportTab === "report" ? (react_1.default.createElement("div", null,
157
+ reviewStatus.unreviewed > 0 && (react_1.default.createElement("div", { className: "rounded-[14px] mb-4 flex items-center gap-3", style: {
158
+ background: "rgba(251,154,29,0.06)",
159
+ border: "1px solid rgba(251,154,29,0.20)",
160
+ borderLeft: "4px solid #FB9A1D",
161
+ padding: "14px 20px",
162
+ } },
163
+ react_1.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", className: "flex-shrink-0" },
164
+ react_1.default.createElement("path", { d: "M8 1.5l6.5 12H1.5L8 1.5z", stroke: "#FB9A1D", strokeWidth: "1.3", fill: "none" }),
165
+ react_1.default.createElement("path", { d: "M8 6.5v3M8 11h.005", stroke: "#FB9A1D", strokeWidth: "1.3", strokeLinecap: "round" })),
166
+ react_1.default.createElement("div", { className: "flex-1" },
167
+ react_1.default.createElement("span", { className: "text-[13px] font-semibold text-white font-tax-axis-body" },
168
+ reviewStatus.unreviewed,
169
+ " extracted value",
170
+ reviewStatus.unreviewed > 1 ? "s" : "",
171
+ " flagged for review"),
172
+ react_1.default.createElement("span", { className: "text-[12px] text-tax-axis-text-2 font-tax-axis-body ml-2" }, "\u2014 strategy savings may shift after corrections")),
173
+ onReviewData && (react_1.default.createElement(TaxAxisButton_1.TaxAxisButton, { variant: "secondary", onClick: onReviewData, className: "flex-shrink-0" }, "Review Extracted Values")))),
142
174
  react_1.default.createElement("div", { className: "rounded-[14px] mb-4", style: {
143
175
  background: "#0E1132",
144
176
  border: "1px solid rgba(36,131,132,0.12)",
@@ -154,7 +186,7 @@ function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPre
154
186
  color: "#9498B8",
155
187
  } }, chartExpanded ? "Collapse \u2191" : "Expand \u2193")),
156
188
  sortedByImpact
157
- .slice(0, chartExpanded ? dashEligible.length : 12)
189
+ .slice(0, chartExpanded ? calculable.length : 12)
158
190
  .map((s, i) => {
159
191
  var _a, _b, _c, _d;
160
192
  const chi = (_b = (_a = computed.get(s.rank)) === null || _a === void 0 ? void 0 : _a.hi) !== null && _b !== void 0 ? _b : s.hi;
@@ -179,24 +211,57 @@ function TaxAxisDashboard({ profile, onDownloadClient, onDownloadPreparer, onPre
179
211
  "\u2013",
180
212
  fmtK(chi))));
181
213
  }),
182
- !chartExpanded && dashEligible.length > 12 && (react_1.default.createElement("div", { onClick: () => setChartExpanded(true), className: "text-[11px] text-tax-axis-teal-light font-tax-axis-mono mt-1 cursor-pointer hover:underline" },
214
+ !chartExpanded && calculable.length > 12 && (react_1.default.createElement("div", { onClick: () => setChartExpanded(true), className: "text-[11px] text-tax-axis-teal-light font-tax-axis-mono mt-1 cursor-pointer hover:underline" },
183
215
  "+ ",
184
- dashEligible.length - 12,
216
+ calculable.length - 12,
185
217
  " more strategies \u2014 click to view all")),
186
218
  chartExpanded && (react_1.default.createElement("div", { onClick: () => setChartExpanded(false), className: "text-[11px] text-tax-axis-text-3 font-tax-axis-mono mt-1 cursor-pointer hover:text-tax-axis-teal" },
187
219
  "Showing all ",
188
- dashEligible.length,
220
+ calculable.length,
189
221
  " strategies \u2014 click to collapse"))),
190
222
  react_1.default.createElement("div", { className: "text-[13px] font-bold text-white uppercase tracking-widest mb-2.5 font-tax-axis-head flex justify-between items-center" },
191
223
  react_1.default.createElement("span", null,
192
- dashEligible.length,
224
+ calculable.length,
193
225
  " Strategies"),
194
226
  react_1.default.createElement("span", { className: "font-normal normal-case tracking-normal text-tax-axis-text-2 text-xs font-tax-axis-body" }, "Click to explore")),
195
- react_1.default.createElement("div", { className: "grid grid-cols-2 gap-2.5 mb-4" }, dashEligible.map((s, i) => {
227
+ react_1.default.createElement("div", { className: "grid grid-cols-2 gap-2.5 mb-4" }, calculable.map((s, i) => {
196
228
  var _a, _b;
197
229
  const c = computed.get(s.rank);
198
230
  return (react_1.default.createElement(StrategyTile_1.StrategyTile, { key: s.rank, s: Object.assign(Object.assign({}, s), { lo: (_a = c === null || c === void 0 ? void 0 : c.lo) !== null && _a !== void 0 ? _a : s.lo, hi: (_b = c === null || c === void 0 ? void 0 : c.hi) !== null && _b !== void 0 ? _b : s.hi }), delay: 0.2 + i * 0.06, onClick: () => setSelected(s), maxSavings: maxSavings }));
199
231
  })),
232
+ uncalculated.length > 0 && (react_1.default.createElement("div", { className: "rounded-[14px] overflow-hidden mb-4", style: {
233
+ background: "#0E1132",
234
+ border: "1px solid rgba(251,154,29,0.15)",
235
+ boxShadow: "0 2px 8px rgba(6,8,33,0.3)",
236
+ } },
237
+ react_1.default.createElement("div", { onClick: () => setUncalcExpanded((p) => !p), className: "px-5 py-3.5 flex items-center gap-3 cursor-pointer" },
238
+ react_1.default.createElement("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", className: "flex-shrink-0" },
239
+ react_1.default.createElement("circle", { cx: "7", cy: "7", r: "5.5", stroke: "#FB9A1D", strokeWidth: "1.2" }),
240
+ react_1.default.createElement("path", { d: "M7 4.5v3M7 9.5h.005", stroke: "#FB9A1D", strokeWidth: "1.2", strokeLinecap: "round" })),
241
+ react_1.default.createElement("span", { className: "text-[13px] font-semibold text-white font-tax-axis-body flex-1" },
242
+ uncalculated.length,
243
+ " strateg",
244
+ uncalculated.length > 1 ? "ies" : "y",
245
+ " need more data to calculate savings"),
246
+ react_1.default.createElement("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", style: {
247
+ transform: uncalcExpanded ? "rotate(180deg)" : "none",
248
+ transition: "transform .2s",
249
+ } },
250
+ react_1.default.createElement("path", { d: "M3 4.5l3 3 3-3", stroke: "#9498B8", strokeWidth: "1.5", strokeLinecap: "round" }))),
251
+ uncalcExpanded && (react_1.default.createElement("div", { style: { borderTop: "1px solid rgba(251,154,29,0.12)", padding: "12px 20px" } },
252
+ uncalculated.map((s, i) => (react_1.default.createElement("div", { key: s.rank, className: "py-2.5", style: {
253
+ borderBottom: i < uncalculated.length - 1
254
+ ? "1px solid rgba(36,131,132,0.08)"
255
+ : "none",
256
+ } },
257
+ react_1.default.createElement("div", { className: "flex items-center gap-2.5 mb-1" },
258
+ react_1.default.createElement("span", { className: "text-[11px] font-tax-axis-mono px-2 py-0.5 rounded", style: { color: "#FB9A1D", background: "rgba(251,154,29,0.08)", border: "1px solid rgba(251,154,29,0.15)" } }, s.code),
259
+ react_1.default.createElement("span", { className: "text-[13px] text-white font-tax-axis-body font-semibold" }, s.name)),
260
+ react_1.default.createElement("div", { className: "text-[11px] text-tax-axis-text-2 font-tax-axis-body pl-0.5" },
261
+ "Needs: ",
262
+ (strategyDocNeeds.get(s.name) || ["Upload additional documents"]).join(", "))))),
263
+ onUploadMore && (react_1.default.createElement("div", { className: "pt-3 mt-1", style: { borderTop: "1px solid rgba(251,154,29,0.12)" } },
264
+ react_1.default.createElement(TaxAxisButton_1.TaxAxisButton, { variant: "secondary", onClick: onUploadMore }, "Upload Documents"))))))),
200
265
  react_1.default.createElement("div", { className: "rounded-[14px] overflow-hidden mb-4", style: {
201
266
  background: "#0E1132",
202
267
  border: "1px solid rgba(36,131,132,0.12)",
@@ -11,8 +11,10 @@ interface DocumentCardProps {
11
11
  tierBadgeColor: "red" | "orange" | "neutral";
12
12
  tierBadgeText: string;
13
13
  helpOverride?: string;
14
+ fieldCount?: number;
14
15
  onUpload: () => void;
15
16
  onClear: () => void;
17
+ onReview?: () => void;
16
18
  }
17
- export declare function DocumentCard({ doc, tierBorderColor, tierBadgeColor, tierBadgeText, helpOverride, onUpload, onClear, }: DocumentCardProps): React.JSX.Element;
19
+ export declare function DocumentCard({ doc, tierBorderColor, tierBadgeColor, tierBadgeText, helpOverride, fieldCount, onUpload, onClear, onReview, }: DocumentCardProps): React.JSX.Element;
18
20
  export {};
@@ -25,7 +25,7 @@ const STATUS_STYLES = {
25
25
  cardBorder: "rgba(15,110,86,0.25)",
26
26
  },
27
27
  };
28
- function DocumentCard({ doc, tierBorderColor, tierBadgeColor, tierBadgeText, helpOverride, onUpload, onClear, }) {
28
+ function DocumentCard({ doc, tierBorderColor, tierBadgeColor, tierBadgeText, helpOverride, fieldCount, onUpload, onClear, onReview, }) {
29
29
  var _a;
30
30
  const ss = STATUS_STYLES[doc.status];
31
31
  const leftBorder = doc.status === "valid" ? "rgba(15,110,86,0.6)" : tierBorderColor;
@@ -49,10 +49,22 @@ function DocumentCard({ doc, tierBorderColor, tierBadgeColor, tierBadgeText, hel
49
49
  react_1.default.createElement("div", { className: "flex items-center gap-1.5" },
50
50
  react_1.default.createElement("span", { className: "text-[13px] font-medium text-white font-tax-axis-body" }, doc.name),
51
51
  doc.status === "empty" && (react_1.default.createElement(TaxAxisBadge_1.TaxAxisBadge, { color: tierBadgeColor, size: "xs" }, tierBadgeText))),
52
- react_1.default.createElement("div", { className: "text-[11px] text-tax-axis-text-3 font-tax-axis-body mt-0.5" }, (_a = doc.fileName) !== null && _a !== void 0 ? _a : (helpOverride !== null && helpOverride !== void 0 ? helpOverride : doc.help))),
52
+ react_1.default.createElement("div", { className: "text-[11px] text-tax-axis-text-3 font-tax-axis-body mt-0.5" }, doc.status === "valid" && doc.fileName
53
+ ? `${doc.fileName}${fieldCount ? ` \u00b7 ${fieldCount} fields extracted` : ""}`
54
+ : ((_a = doc.fileName) !== null && _a !== void 0 ? _a : (helpOverride !== null && helpOverride !== void 0 ? helpOverride : doc.help)))),
53
55
  react_1.default.createElement("div", { className: "flex items-center gap-2 flex-shrink-0" },
54
56
  doc.status === "valid" && (react_1.default.createElement(react_1.default.Fragment, null,
55
- react_1.default.createElement("span", { className: "text-[10px] font-semibold font-tax-axis-mono", style: { color: "#0F6E56" } }, "Done"),
57
+ react_1.default.createElement("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none" },
58
+ react_1.default.createElement("path", { d: "M2.5 7l3.5 3.5 5.5-6", stroke: "#0F6E56", strokeWidth: "2", strokeLinecap: "round" })),
59
+ react_1.default.createElement("button", { onClick: onReview, className: "rounded-md px-3 py-1 text-[11px] font-semibold font-tax-axis-mono cursor-pointer flex items-center gap-1.5", style: {
60
+ background: "rgba(99,102,241,0.12)",
61
+ border: "1px solid rgba(99,102,241,0.30)",
62
+ color: "#a5b4fc",
63
+ } },
64
+ react_1.default.createElement("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" },
65
+ react_1.default.createElement("rect", { x: "2", y: "1.5", width: "8", height: "9", rx: "1.5", stroke: "#a5b4fc", strokeWidth: "1.2" }),
66
+ react_1.default.createElement("path", { d: "M4 4.5h4M4 6.5h4M4 8.5h2", stroke: "#a5b4fc", strokeWidth: "0.9", strokeLinecap: "round" })),
67
+ "Review"),
56
68
  react_1.default.createElement("button", { onClick: onClear, className: "bg-transparent border-none p-1 text-tax-axis-text-4 text-sm cursor-pointer" }, "\u00D7"))),
57
69
  doc.status === "empty" && (react_1.default.createElement("button", { onClick: onUpload, className: "rounded-md px-3.5 py-1.5 text-[11px] font-semibold text-tax-axis-teal-light font-tax-axis-mono cursor-pointer", style: {
58
70
  background: "rgba(36,131,132,0.10)",
@@ -6,8 +6,6 @@ export interface DocumentReviewModalProps {
6
6
  documentName: string;
7
7
  fileName: string;
8
8
  jobId: string;
9
- parsedData?: Record<string, unknown> | null;
10
- onSaveReviewedData?: (fields: Record<string, string>) => Promise<void>;
11
9
  onClose: () => void;
12
10
  }
13
- export declare function DocumentReviewModal({ documentId, documentName, fileName, jobId: _jobId, parsedData, onSaveReviewedData, onClose, }: DocumentReviewModalProps): React.JSX.Element;
11
+ export declare function DocumentReviewModal({ documentId, documentName, fileName, jobId: _jobId, onClose, }: DocumentReviewModalProps): React.JSX.Element;