@npm-zenwork/tax-remittance-ui 0.2.4 → 0.2.6
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/api/bankAccounts.d.ts +9 -7
- package/dist/api/dashboard.d.ts +3 -1
- package/dist/api/entities.d.ts +10 -7
- package/dist/api/remittancePayments.d.ts +2 -0
- package/dist/api/taxAccounts.d.ts +10 -1
- package/dist/components/dashboard/AddFirstPaymentModal.d.ts +12 -0
- package/dist/components/dashboard/DashboardKpiCards.d.ts +10 -0
- package/dist/components/dashboard/FederalPaymentsChartCard.d.ts +11 -0
- package/dist/components/dashboard/NeedAttentionCarousel.d.ts +6 -0
- package/dist/components/dashboard/PaymentsTypeCard.d.ts +7 -0
- package/dist/components/dashboard/RecentPaymentsCard.d.ts +6 -0
- package/dist/components/dashboard/RowActionsMenu.d.ts +13 -0
- package/dist/components/dashboard/SetupChecklist.d.ts +22 -0
- package/dist/components/dashboard/StatePaymentsChartCard.d.ts +11 -0
- package/dist/components/dashboard/TaxYearSelect.d.ts +9 -0
- package/dist/components/dashboard/UpcomingPaymentsCard.d.ts +6 -0
- package/dist/components/dashboard/dashboardMockData.d.ts +63 -0
- package/dist/components/dashboard/dashboardOverviewMappers.d.ts +15 -0
- package/dist/components/dashboard/dashboardUtils.d.ts +18 -0
- package/dist/components/dashboard/useSetupProgress.d.ts +30 -0
- package/dist/components/entities/EntityActionsMenu.d.ts +3 -1
- package/dist/components/entities/EntityCard.d.ts +8 -0
- package/dist/components/entities/EntityTypeFilter.d.ts +8 -0
- package/dist/components/entities/entityListUtils.d.ts +5 -8
- package/dist/components/forms/PhoneInputGroup.d.ts +5 -7
- package/dist/components/forms/SegmentedControl.d.ts +9 -5
- package/dist/components/icons/BankIcon.d.ts +1 -0
- package/dist/components/icons/BusinessIcon.d.ts +1 -0
- package/dist/components/icons/CheckCircleIcon.d.ts +1 -0
- package/dist/components/icons/EmptyTaxAccountsIllustration.d.ts +5 -0
- package/dist/components/icons/EntitySuccessIllustration.d.ts +2 -0
- package/dist/components/icons/EyeIcon.d.ts +1 -0
- package/dist/components/icons/EyeOffIcon.d.ts +1 -0
- package/dist/components/icons/IndividualEntitySuccessIllustration.d.ts +2 -0
- package/dist/components/icons/PersonIcon.d.ts +1 -0
- package/dist/components/icons/XCircleIcon.d.ts +1 -0
- package/dist/components/onboarding/EntityAccountTypeRow.d.ts +16 -0
- package/dist/components/onboarding/EntityAddressFields.d.ts +17 -0
- package/dist/components/onboarding/EntityBusinessFields.d.ts +17 -0
- package/dist/components/onboarding/EntityCreatedModal.d.ts +14 -0
- package/dist/components/onboarding/EntityForm.d.ts +5 -0
- package/dist/components/onboarding/EntityFormHelpPanel.d.ts +8 -0
- package/dist/components/onboarding/EntityIdNumberInput.d.ts +14 -0
- package/dist/components/onboarding/EntityPhoneField.d.ts +9 -0
- package/dist/components/onboarding/EntityPrimaryTaxpayerFields.d.ts +16 -0
- package/dist/components/onboarding/EntitySuccessModal.d.ts +35 -0
- package/dist/components/onboarding/SecondaryTaxpayerSection.d.ts +23 -0
- package/dist/components/onboarding/SecondaryTaxpayerToggle.d.ts +10 -0
- package/dist/components/onboarding/entityHelpContent.d.ts +123 -0
- package/dist/components/onboarding/useEntityForm.d.ts +80 -0
- package/dist/components/payments/BankAccountCard.d.ts +16 -0
- package/dist/components/payments/BankAccountDrawer.d.ts +15 -0
- package/dist/components/payments/BankConnectionMethodModal.d.ts +11 -0
- package/dist/components/payments/BankConnectionMethodPicker.d.ts +10 -0
- package/dist/components/payments/FederalPaymentReviewPanel.d.ts +14 -0
- package/dist/components/payments/FederalPaymentReviewStep.d.ts +13 -0
- package/dist/components/payments/InlineRowActions.d.ts +17 -0
- package/dist/components/payments/PaymentActionButton.d.ts +9 -0
- package/dist/components/payments/PaymentActionsFooter.d.ts +43 -0
- package/dist/components/payments/PaymentFormSection.d.ts +1 -1
- package/dist/components/payments/PaymentRowMenu.d.ts +14 -0
- package/dist/components/payments/PaymentStatusBadge.d.ts +7 -0
- package/dist/components/payments/PaymentStepper.d.ts +14 -0
- package/dist/components/payments/PaymentTableRow.d.ts +14 -0
- package/dist/components/payments/PaymentsNeedAttention.d.ts +14 -0
- package/dist/components/payments/RecurringPaymentToggle.d.ts +16 -0
- package/dist/components/payments/RecurringPeriodRows.d.ts +34 -0
- package/dist/components/payments/StateBankDetailsForm.d.ts +8 -0
- package/dist/components/payments/StatePaymentReviewPanel.d.ts +14 -0
- package/dist/components/payments/eftpsIndividualEnrollmentConfig.d.ts +3 -3
- package/dist/components/payments/federalPaymentSteps.d.ts +6 -0
- package/dist/components/payments/federalPaymentUtils.d.ts +4 -0
- package/dist/components/payments/paymentsTableConfig.d.ts +20 -9
- package/dist/components/payments/remittancePaymentMappers.d.ts +3 -0
- package/dist/components/payments/statePaymentAuthorizationConfig.d.ts +1 -1
- package/dist/components/payments/useStatePaymentDraftSave.d.ts +11 -0
- package/dist/components/settings/BankAccountActionsMenu.d.ts +3 -1
- package/dist/components/settings/EditEntityForm.d.ts +12 -0
- package/dist/components/settings/TaxAccountDrawer.d.ts +22 -0
- package/dist/components/settings/settingsNavConfig.d.ts +1 -1
- package/dist/components/settings/taxAccountDrawerConfig.d.ts +1 -0
- package/dist/components/tax-forms/TaxFormCard.d.ts +7 -0
- package/dist/components/tax-forms/TaxFormsGrid.d.ts +9 -0
- package/dist/components/tax-forms/states/virginia/VA16Form.d.ts +53 -0
- package/dist/components/tax-forms/states/virginia/VA16Form.preview.d.ts +2 -0
- package/dist/components/ui/SideDrawer.d.ts +18 -0
- package/dist/components/ui/StatusPill.d.ts +10 -0
- package/dist/components/ui/ToastProvider.d.ts +2 -2
- package/dist/embedded/EmbeddedContext.d.ts +4 -1
- package/dist/embedded/EmbeddedWidgetBase.d.ts +3 -1
- package/dist/embedded/TaxRemittanceEmbedded.d.ts +6 -0
- package/dist/embedded/pages/EmbeddedEntityEditPage.d.ts +6 -0
- package/dist/index.cjs +34 -34
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +14305 -11075
- package/dist/index.mjs.map +1 -1
- package/dist/lib/bankAccountInputRules.d.ts +17 -0
- package/dist/lib/entityFormUtils.d.ts +63 -8
- package/dist/lib/fieldRules.d.ts +92 -0
- package/dist/lib/fieldSchemas.d.ts +12 -0
- package/dist/lib/jwt.d.ts +10 -0
- package/dist/lib/paymentFrequency.d.ts +10 -0
- package/dist/lib/paymentStatus.d.ts +7 -0
- package/dist/lib/paymentsNavigation.d.ts +16 -2
- package/dist/lib/useElementWidth.d.ts +9 -0
- package/dist/pages/FederalPaymentReviewPage.d.ts +1 -0
- package/dist/pages/StateBankDetailsPage.d.ts +2 -0
- package/dist/styles.css +1 -1
- package/dist/types/bankAccount.d.ts +2 -0
- package/dist/types/createBankAccount.d.ts +2 -0
- package/dist/types/dashboard.d.ts +59 -0
- package/dist/types/entity.d.ts +27 -2
- package/dist/types/federalPaymentFlow.d.ts +2 -0
- package/dist/types/statePayment.d.ts +7 -0
- package/dist/types/statePaymentFlow.d.ts +3 -0
- package/dist/types/taxAccountDetails.d.ts +31 -29
- package/package.json +1 -1
- package/dist/api/paymentTransactions.d.ts +0 -7
- package/dist/components/dashboard/EmptyPaymentCard.d.ts +0 -9
- package/dist/components/dashboard/MonthlyOverviewSection.d.ts +0 -8
- package/dist/components/dashboard/MyPaymentsTable.d.ts +0 -8
- package/dist/components/dashboard/PaymentSummaryCard.d.ts +0 -21
- package/dist/components/payments/PaymentRowActions.d.ts +0 -13
- package/dist/components/settings/AddBankAccountManualForm.d.ts +0 -7
- package/dist/components/settings/AddBankAccountModal.d.ts +0 -8
- package/dist/components/settings/AddTaxAccountForm.d.ts +0 -32
- package/dist/components/settings/EditBankAccountModal.d.ts +0 -8
- package/dist/components/settings/EditEntityModal.d.ts +0 -8
- package/dist/components/settings/PaymentHistorySection.d.ts +0 -5
- package/dist/components/settings/SettingsPlaceholderSection.d.ts +0 -6
- package/dist/components/settings/taxAccountFormConfig.d.ts +0 -18
- package/dist/components/tax-forms/TaxFormsTable.d.ts +0 -8
- package/dist/pages/AddTaxAccountPage.d.ts +0 -1
- package/dist/pages/StatePaymentEditorPage.d.ts +0 -5
- package/dist/types/paymentHistory.d.ts +0 -26
- package/dist/types/taxAccount.d.ts +0 -9
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FieldErrors, UseFormRegister, UseFormRegisterReturn } from 'react-hook-form';
|
|
2
|
+
import { EntityFormValues } from '../../types/entity';
|
|
3
|
+
interface EntityPrimaryTaxpayerFieldsProps {
|
|
4
|
+
register: UseFormRegister<EntityFormValues>;
|
|
5
|
+
errors: FieldErrors<EntityFormValues>;
|
|
6
|
+
einRegister: UseFormRegisterReturn;
|
|
7
|
+
phoneRegister: UseFormRegisterReturn;
|
|
8
|
+
accountType: string;
|
|
9
|
+
idLabel: string;
|
|
10
|
+
idPlaceholder: string;
|
|
11
|
+
idMaxLength: number;
|
|
12
|
+
resetHelp: () => void;
|
|
13
|
+
}
|
|
14
|
+
/** Individual account fields: the primary taxpayer's name, SSN and contact details. */
|
|
15
|
+
export declare function EntityPrimaryTaxpayerFields({ register, errors, einRegister, phoneRegister, accountType, idLabel, idPlaceholder, idMaxLength, resetHelp, }: EntityPrimaryTaxpayerFieldsProps): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface SuccessDetailRow {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
/**
|
|
6
|
+
* Masked stand-in for a sensitive value (EIN / SSN). When set the row shows
|
|
7
|
+
* this instead of `value`, with a reveal toggle.
|
|
8
|
+
*/
|
|
9
|
+
masked?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SuccessDetailPage {
|
|
12
|
+
/** Section heading — also turns on the pager when there's more than one page. */
|
|
13
|
+
title?: string;
|
|
14
|
+
rows: SuccessDetailRow[];
|
|
15
|
+
}
|
|
16
|
+
interface EntitySuccessModalProps {
|
|
17
|
+
open: boolean;
|
|
18
|
+
entityName: string;
|
|
19
|
+
description: string;
|
|
20
|
+
illustration: ReactNode;
|
|
21
|
+
pages: SuccessDetailPage[];
|
|
22
|
+
onClose: () => void;
|
|
23
|
+
onGoToDashboard: () => void;
|
|
24
|
+
onStartPayment: () => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Confirmation shown right after an entity is created. Business entities get a
|
|
28
|
+
* single details page; individuals filing jointly get a second page for the
|
|
29
|
+
* secondary taxpayer, reachable via the pager.
|
|
30
|
+
*
|
|
31
|
+
* "Go to Dashboard" and "Start Payment" both just go to the dashboard for now —
|
|
32
|
+
* there's no payment flow wired up yet.
|
|
33
|
+
*/
|
|
34
|
+
export declare function EntitySuccessModal({ open, entityName, description, illustration, pages, onClose, onGoToDashboard, onStartPayment, }: EntitySuccessModalProps): import('react').ReactPortal | null;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChangeEvent } from 'react';
|
|
2
|
+
import { AddressParts, SecondaryTaxpayer, SecondaryTaxpayerErrors } from '../../lib/entityFormUtils';
|
|
3
|
+
import { StateOption } from '../../lib/useAddressReference';
|
|
4
|
+
type SecondaryField = keyof Omit<SecondaryTaxpayer, 'sameAsPrimaryAddress'>;
|
|
5
|
+
interface SecondaryTaxpayerSectionProps {
|
|
6
|
+
values: SecondaryTaxpayer;
|
|
7
|
+
/** Address to display — mirrors the primary address while the toggle is on. */
|
|
8
|
+
address: AddressParts & {
|
|
9
|
+
country: string;
|
|
10
|
+
};
|
|
11
|
+
stateOptions: StateOption[];
|
|
12
|
+
/** Per-field messages, populated on submit. */
|
|
13
|
+
errors: SecondaryTaxpayerErrors;
|
|
14
|
+
onFieldChange: (field: SecondaryField) => (event: ChangeEvent<HTMLInputElement | HTMLSelectElement>) => void;
|
|
15
|
+
onSsnChange: (value: string) => void;
|
|
16
|
+
onSameAsPrimaryChange: (checked: boolean) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Joint-filer details, shown for Individual + "Married Filing Jointly".
|
|
20
|
+
* UI-only — nothing here is submitted yet (see SecondaryTaxpayer).
|
|
21
|
+
*/
|
|
22
|
+
export declare function SecondaryTaxpayerSection({ values, address, stateOptions, errors, onFieldChange, onSsnChange, onSameAsPrimaryChange, }: SecondaryTaxpayerSectionProps): import("react").JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface SecondaryTaxpayerToggleProps {
|
|
2
|
+
checked: boolean;
|
|
3
|
+
onChange: (checked: boolean) => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Opt-in for the joint filer's details. Shown for Individual + "Married Filing
|
|
7
|
+
* Jointly"; the fields themselves stay hidden until this is ticked.
|
|
8
|
+
*/
|
|
9
|
+
export declare function SecondaryTaxpayerToggle({ checked, onChange }: SecondaryTaxpayerToggleProps): import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface FieldHelp {
|
|
3
|
+
title: string;
|
|
4
|
+
/** Drives the REQUIRED / OPTIONAL badge in the help panel. */
|
|
5
|
+
required: boolean;
|
|
6
|
+
description: ReactNode;
|
|
7
|
+
tips: ReactNode[];
|
|
8
|
+
correct?: string;
|
|
9
|
+
mistake?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Per-field copy for the "How to fill this" side panel — keyed by a help key
|
|
13
|
+
* set on each input's onFocus. Fields without an entry here fall back to the
|
|
14
|
+
* panel's generic copy.
|
|
15
|
+
*/
|
|
16
|
+
export declare const HELP_CONTENT: {
|
|
17
|
+
accountType: {
|
|
18
|
+
title: string;
|
|
19
|
+
required: true;
|
|
20
|
+
description: string;
|
|
21
|
+
tips: (string | import("react").JSX.Element)[];
|
|
22
|
+
correct: string;
|
|
23
|
+
mistake: string;
|
|
24
|
+
};
|
|
25
|
+
legalBusinessName: {
|
|
26
|
+
title: string;
|
|
27
|
+
required: true;
|
|
28
|
+
description: import("react").JSX.Element;
|
|
29
|
+
tips: (string | import("react").JSX.Element)[];
|
|
30
|
+
correct: string;
|
|
31
|
+
mistake: string;
|
|
32
|
+
};
|
|
33
|
+
businessDisplayName: {
|
|
34
|
+
title: string;
|
|
35
|
+
required: false;
|
|
36
|
+
description: string;
|
|
37
|
+
tips: string[];
|
|
38
|
+
correct: string;
|
|
39
|
+
mistake: string;
|
|
40
|
+
};
|
|
41
|
+
email: {
|
|
42
|
+
title: string;
|
|
43
|
+
required: true;
|
|
44
|
+
description: string;
|
|
45
|
+
tips: string[];
|
|
46
|
+
correct: string;
|
|
47
|
+
mistake: string;
|
|
48
|
+
};
|
|
49
|
+
phoneNumber: {
|
|
50
|
+
title: string;
|
|
51
|
+
required: true;
|
|
52
|
+
description: string;
|
|
53
|
+
tips: string[];
|
|
54
|
+
correct: string;
|
|
55
|
+
mistake: string;
|
|
56
|
+
};
|
|
57
|
+
entityType: {
|
|
58
|
+
title: string;
|
|
59
|
+
required: true;
|
|
60
|
+
description: string;
|
|
61
|
+
tips: string[];
|
|
62
|
+
correct: string;
|
|
63
|
+
mistake: string;
|
|
64
|
+
};
|
|
65
|
+
ein: {
|
|
66
|
+
title: string;
|
|
67
|
+
required: true;
|
|
68
|
+
description: import("react").JSX.Element;
|
|
69
|
+
tips: string[];
|
|
70
|
+
correct: string;
|
|
71
|
+
mistake: string;
|
|
72
|
+
};
|
|
73
|
+
address1: {
|
|
74
|
+
title: string;
|
|
75
|
+
required: true;
|
|
76
|
+
description: string;
|
|
77
|
+
tips: string[];
|
|
78
|
+
correct: string;
|
|
79
|
+
mistake: string;
|
|
80
|
+
};
|
|
81
|
+
address2: {
|
|
82
|
+
title: string;
|
|
83
|
+
required: false;
|
|
84
|
+
description: string;
|
|
85
|
+
tips: string[];
|
|
86
|
+
correct: string;
|
|
87
|
+
mistake: string;
|
|
88
|
+
};
|
|
89
|
+
city: {
|
|
90
|
+
title: string;
|
|
91
|
+
required: true;
|
|
92
|
+
description: string;
|
|
93
|
+
tips: string[];
|
|
94
|
+
correct: string;
|
|
95
|
+
mistake: string;
|
|
96
|
+
};
|
|
97
|
+
state: {
|
|
98
|
+
title: string;
|
|
99
|
+
required: true;
|
|
100
|
+
description: string;
|
|
101
|
+
tips: string[];
|
|
102
|
+
correct: string;
|
|
103
|
+
mistake: string;
|
|
104
|
+
};
|
|
105
|
+
zipCode: {
|
|
106
|
+
title: string;
|
|
107
|
+
required: true;
|
|
108
|
+
description: string;
|
|
109
|
+
tips: string[];
|
|
110
|
+
correct: string;
|
|
111
|
+
mistake: string;
|
|
112
|
+
};
|
|
113
|
+
country: {
|
|
114
|
+
title: string;
|
|
115
|
+
required: true;
|
|
116
|
+
description: string;
|
|
117
|
+
tips: string[];
|
|
118
|
+
correct: string;
|
|
119
|
+
mistake: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
export type HelpKey = keyof typeof HELP_CONTENT;
|
|
123
|
+
export declare const DEFAULT_HELP_TIPS: ReactNode[];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ChangeEvent } from 'react';
|
|
2
|
+
import { SecondaryTaxpayer } from '../../lib/entityFormUtils';
|
|
3
|
+
import { EntityFormValues } from '../../types/entity';
|
|
4
|
+
import { HelpKey } from './entityHelpContent';
|
|
5
|
+
/** What the success modal renders — captured at save time. */
|
|
6
|
+
export interface CreatedEntitySnapshot {
|
|
7
|
+
values: EntityFormValues;
|
|
8
|
+
secondary: SecondaryTaxpayer | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* All state, validation and submit behaviour for the Add Entity form. Kept
|
|
12
|
+
* out of the component so the JSX is pure composition.
|
|
13
|
+
*/
|
|
14
|
+
export declare function useEntityForm(): {
|
|
15
|
+
register: import('react-hook-form').UseFormRegister<EntityFormValues>;
|
|
16
|
+
errors: import('react-hook-form').FieldErrors<EntityFormValues>;
|
|
17
|
+
onSubmit: (e?: React.BaseSyntheticEvent) => Promise<void>;
|
|
18
|
+
error: string | null;
|
|
19
|
+
isSubmitting: boolean;
|
|
20
|
+
einRegister: import('react-hook-form').UseFormRegisterReturn<"ein">;
|
|
21
|
+
phoneRegister: import('react-hook-form').UseFormRegisterReturn<"phoneNumber">;
|
|
22
|
+
zipRegister: import('react-hook-form').UseFormRegisterReturn<"zipCode">;
|
|
23
|
+
accountType: "Business" | "Individual";
|
|
24
|
+
isIndividual: boolean;
|
|
25
|
+
isUS: boolean;
|
|
26
|
+
idLabel: string;
|
|
27
|
+
idPlaceholder: string;
|
|
28
|
+
idMaxLength: number;
|
|
29
|
+
stateOptions: import('../../lib/useAddressReference').StateOption[];
|
|
30
|
+
state: string;
|
|
31
|
+
zipStateMismatch: boolean;
|
|
32
|
+
activeHelp: {
|
|
33
|
+
title: string;
|
|
34
|
+
required: true;
|
|
35
|
+
description: string;
|
|
36
|
+
tips: (string | import("react").JSX.Element)[];
|
|
37
|
+
correct: string;
|
|
38
|
+
mistake: string;
|
|
39
|
+
} | {
|
|
40
|
+
title: string;
|
|
41
|
+
required: true;
|
|
42
|
+
description: import("react").JSX.Element;
|
|
43
|
+
tips: (string | import("react").JSX.Element)[];
|
|
44
|
+
correct: string;
|
|
45
|
+
mistake: string;
|
|
46
|
+
} | {
|
|
47
|
+
title: string;
|
|
48
|
+
required: false;
|
|
49
|
+
description: string;
|
|
50
|
+
tips: string[];
|
|
51
|
+
correct: string;
|
|
52
|
+
mistake: string;
|
|
53
|
+
} | null;
|
|
54
|
+
focusHelp: (key: HelpKey) => () => void;
|
|
55
|
+
resetHelp: () => void;
|
|
56
|
+
filingStatus: string;
|
|
57
|
+
setFilingStatus: (next: string) => void;
|
|
58
|
+
canAddSecondaryTaxpayer: boolean;
|
|
59
|
+
includeSecondaryTaxpayer: boolean;
|
|
60
|
+
setIncludeSecondaryTaxpayer: (checked: boolean) => void;
|
|
61
|
+
secondaryErrors: Partial<Record<"state" | "country" | "email" | "firstName" | "lastName" | "address1" | "address2" | "city" | "zipCode" | "ssn" | "phone", string>>;
|
|
62
|
+
showSecondaryTaxpayer: boolean;
|
|
63
|
+
secondaryTaxpayer: SecondaryTaxpayer;
|
|
64
|
+
secondaryAddress: {
|
|
65
|
+
address1: string;
|
|
66
|
+
address2: string;
|
|
67
|
+
city: string;
|
|
68
|
+
state: string;
|
|
69
|
+
zipCode: string;
|
|
70
|
+
country: string;
|
|
71
|
+
};
|
|
72
|
+
secondaryStateOptions: import('../../lib/useAddressReference').StateOption[];
|
|
73
|
+
updateSecondaryField: <K extends keyof Omit<SecondaryTaxpayer, "sameAsPrimaryAddress">>(field: K) => (event: ChangeEvent<HTMLInputElement | HTMLSelectElement>) => void;
|
|
74
|
+
setSecondarySsn: (value: string) => void;
|
|
75
|
+
setSecondarySameAsPrimary: (checked: boolean) => void;
|
|
76
|
+
createdEntity: CreatedEntitySnapshot | null;
|
|
77
|
+
handleAccountTypeChange: (next: EntityFormValues["accountType"]) => void;
|
|
78
|
+
handleCancel: () => void;
|
|
79
|
+
goToDashboard: () => void;
|
|
80
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BankAccountResponse } from '../../types/bankAccount';
|
|
2
|
+
interface BankAccountCardProps {
|
|
3
|
+
account: BankAccountResponse;
|
|
4
|
+
onEdit: (account: BankAccountResponse) => void;
|
|
5
|
+
/** Omit to render a plain (non-selectable) card, as on the settings page. */
|
|
6
|
+
onSelect?: (bankAccountDetailId: number) => void;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Bank account tile with an actions menu. In the payment flow it doubles as a
|
|
11
|
+
* radio for choosing the account to debit; inactive accounts are shown (so the
|
|
12
|
+
* user can see why one isn't usable) but can't be picked — they can still be
|
|
13
|
+
* edited or reactivated from the menu.
|
|
14
|
+
*/
|
|
15
|
+
export declare function BankAccountCard({ account, onEdit, onSelect, selected, }: BankAccountCardProps): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BankAccountResponse } from '../../types/bankAccount';
|
|
2
|
+
interface BankAccountDrawerProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
entityId: number | null;
|
|
5
|
+
/** Pass an account to edit it; omit to add a new one. */
|
|
6
|
+
account?: BankAccountResponse | null;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
onSaved?: (bankAccountDetailId: number) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Slide-over for adding or editing a bank account without leaving the payment
|
|
12
|
+
* flow. Shares its validation with the settings form (createBankAccountSchema).
|
|
13
|
+
*/
|
|
14
|
+
export declare function BankAccountDrawer({ open, entityId, account, onClose, onSaved, }: BankAccountDrawerProps): import("react").JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface BankConnectionMethodModalProps {
|
|
2
|
+
open: boolean;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
onAddManually: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Asks how to connect a bank account before opening the add form. Plaid isn't
|
|
8
|
+
* implemented yet, so that option is shown but not selectable.
|
|
9
|
+
*/
|
|
10
|
+
export declare function BankConnectionMethodModal({ open, onClose, onAddManually, }: BankConnectionMethodModalProps): import('react').ReactPortal | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface BankConnectionMethodPickerProps {
|
|
2
|
+
onAddManually: () => void;
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* "Connect Your Bank Account" method choice. Plaid isn't implemented yet, so
|
|
7
|
+
* that option is present but not selectable.
|
|
8
|
+
*/
|
|
9
|
+
export declare function BankConnectionMethodPicker({ onAddManually, disabled, }: BankConnectionMethodPickerProps): import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FederalPaymentDraft } from '../../types/federalPaymentFlow';
|
|
2
|
+
interface FederalPaymentReviewPanelProps {
|
|
3
|
+
entityId: number | null;
|
|
4
|
+
paymentDraft: FederalPaymentDraft;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Read-only recap of step 1 for the Review & Submit step. Labels, asterisks and
|
|
8
|
+
* info copy mirror AddFederalPaymentForm so the review reads like the form the
|
|
9
|
+
* values came from; the values themselves are resolved through the same cached
|
|
10
|
+
* reference queries, falling back to the raw draft when a lookup isn't
|
|
11
|
+
* available (e.g. a draft opened straight from the payments list).
|
|
12
|
+
*/
|
|
13
|
+
export declare function FederalPaymentReviewPanel({ entityId, paymentDraft, }: FederalPaymentReviewPanelProps): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EntityDetailsResponse } from '../../types/entity';
|
|
2
|
+
import { FederalPaymentDraft } from '../../types/federalPaymentFlow';
|
|
3
|
+
interface FederalPaymentReviewStepProps {
|
|
4
|
+
entity: EntityDetailsResponse | null;
|
|
5
|
+
paymentDraft: FederalPaymentDraft;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Step 3 of the federal flow — a read-only recap of what steps 1 and 2 saved,
|
|
9
|
+
* with the final submit to the IRS. The payment and its authorization are
|
|
10
|
+
* already persisted as a draft by step 2, so this screen only submits.
|
|
11
|
+
*/
|
|
12
|
+
export declare function FederalPaymentReviewStep({ entity, paymentDraft }: FederalPaymentReviewStepProps): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface InlineRowActionsProps {
|
|
2
|
+
/** Eye icon — omitted when the layout has no view action. */
|
|
3
|
+
onView?: () => void;
|
|
4
|
+
/** Pencil icon — Draft rows only. */
|
|
5
|
+
onEdit?: () => void;
|
|
6
|
+
button?: {
|
|
7
|
+
label: string;
|
|
8
|
+
onClick: () => void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Row actions rendered inline (rather than in the row menu): the view/edit
|
|
14
|
+
* icons plus the tab's primary button — Submit & Pay, View or Re-Submit.
|
|
15
|
+
*/
|
|
16
|
+
export declare function InlineRowActions({ onView, onEdit, button }: InlineRowActionsProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface PaymentActionButtonProps {
|
|
3
|
+
onClick: () => void;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/** Outlined pill used for the inline row actions (Submit & Pay, View). */
|
|
8
|
+
export declare function PaymentActionButton({ onClick, disabled, children, }: PaymentActionButtonProps): import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action row shared by the federal and state payment steps, pinned to the bottom
|
|
3
|
+
* of the page so the primary action stays reachable on these long forms.
|
|
4
|
+
*
|
|
5
|
+
* "Save as Draft" is a split control: the label saves and leaves, while the
|
|
6
|
+
* chevron opens the destructive alternative (Discard Payment) rather than
|
|
7
|
+
* spending a third button on it. The menu opens upward — the bar sits at the
|
|
8
|
+
* bottom of the viewport, so there is no room below it.
|
|
9
|
+
*/
|
|
10
|
+
interface BackAction {
|
|
11
|
+
/** `Back` on later steps, `Cancel` on the first one. */
|
|
12
|
+
label: string;
|
|
13
|
+
onClick: () => void;
|
|
14
|
+
/** Later steps go back to a previous step, so they show the arrow. */
|
|
15
|
+
showArrow?: boolean;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface DraftAction {
|
|
19
|
+
onSave: () => void;
|
|
20
|
+
onDiscard: () => void;
|
|
21
|
+
isSaving?: boolean;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
interface SubmitAction {
|
|
25
|
+
/** `Next` on the first two steps, `Submit Payment` on the last. */
|
|
26
|
+
label: string;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
isSubmitting?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Steps that are a `<form>` leave this off and let the button submit. The
|
|
31
|
+
* federal review step is a plain `<div>`, so it passes its handler here.
|
|
32
|
+
*/
|
|
33
|
+
onClick?: () => void;
|
|
34
|
+
}
|
|
35
|
+
interface PaymentActionsFooterProps {
|
|
36
|
+
back?: BackAction;
|
|
37
|
+
/** Omitted when the payment is being viewed rather than filled in. */
|
|
38
|
+
draft?: DraftAction;
|
|
39
|
+
/** Omitted when the payment is being viewed rather than filled in. */
|
|
40
|
+
submit?: SubmitAction;
|
|
41
|
+
}
|
|
42
|
+
export declare function PaymentActionsFooter({ back, draft, submit, }: PaymentActionsFooterProps): import("react").JSX.Element;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PaymentActionType } from './paymentsTableConfig';
|
|
2
|
+
interface PaymentRowMenuProps {
|
|
3
|
+
actionType: PaymentActionType;
|
|
4
|
+
onView?: () => void;
|
|
5
|
+
onViewPdf?: () => void;
|
|
6
|
+
onEdit?: () => void;
|
|
7
|
+
onSubmit?: () => void;
|
|
8
|
+
onResubmit?: () => void;
|
|
9
|
+
isSubmitting?: boolean;
|
|
10
|
+
isViewPdfLoading?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Vertical-dots row menu — holds the actions available for the row's status. */
|
|
13
|
+
export declare function PaymentRowMenu(props: PaymentRowMenuProps): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface PaymentStatusBadgeProps {
|
|
2
|
+
status: string | null;
|
|
3
|
+
category: 'federal' | 'state';
|
|
4
|
+
}
|
|
5
|
+
/** Status pill for the Tax Payments table. */
|
|
6
|
+
export declare function PaymentStatusBadge({ status, category }: PaymentStatusBadgeProps): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface PaymentStepperProps {
|
|
2
|
+
steps: string[];
|
|
3
|
+
/** 1-based index of the step currently being filled in. Earlier steps render as done. */
|
|
4
|
+
current: number;
|
|
5
|
+
/**
|
|
6
|
+
* Highest step to render as done. Defaults to everything before `current` —
|
|
7
|
+
* pass `current` itself once the active step's requirement is satisfied.
|
|
8
|
+
*/
|
|
9
|
+
completed?: number;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
/** `01 Payment Details — 02 Bank Account — 03 Review & Authorize` progress header. */
|
|
13
|
+
export declare function PaymentStepper({ steps, current, completed, className }: PaymentStepperProps): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PaymentTableLayout } from './paymentsTableConfig';
|
|
2
|
+
import { RemittancePaymentRow } from './remittancePaymentMappers';
|
|
3
|
+
interface PaymentTableRowProps {
|
|
4
|
+
row: RemittancePaymentRow;
|
|
5
|
+
layout: PaymentTableLayout;
|
|
6
|
+
isSubmitting: boolean;
|
|
7
|
+
isViewPdfLoading: boolean;
|
|
8
|
+
onView: () => void;
|
|
9
|
+
onEdit: () => void;
|
|
10
|
+
onViewPdf: () => void;
|
|
11
|
+
onSubmit: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function PaymentTableRow({ row, layout, isSubmitting, isViewPdfLoading, onView, onEdit, onViewPdf, onSubmit, }: PaymentTableRowProps): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RemittancePaymentRow } from './remittancePaymentMappers';
|
|
2
|
+
interface PaymentsNeedAttentionProps {
|
|
3
|
+
rows: RemittancePaymentRow[];
|
|
4
|
+
onViewAll: () => void;
|
|
5
|
+
onView: (row: RemittancePaymentRow) => void;
|
|
6
|
+
onResubmit: (row: RemittancePaymentRow) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Rejected payments carousel above the payments table — one payment at a time,
|
|
10
|
+
* with the arrows and dots from the design. Renders nothing when nothing is
|
|
11
|
+
* rejected.
|
|
12
|
+
*/
|
|
13
|
+
export declare function PaymentsNeedAttention({ rows, onViewAll, onView, onResubmit, }: PaymentsNeedAttentionProps): import("react").JSX.Element | null;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface RecurringPaymentToggleProps {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
onChange: (enabled: boolean) => void;
|
|
4
|
+
frequency: string;
|
|
5
|
+
endDate: string;
|
|
6
|
+
onEndDateChange: (endDate: string) => void;
|
|
7
|
+
endDateError?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* "Make This a Recurring Payment" panel. When enabled, the backend generates
|
|
12
|
+
* one scheduled payment per occurrence of the chosen frequency, up to the end
|
|
13
|
+
* date entered here.
|
|
14
|
+
*/
|
|
15
|
+
export declare function RecurringPaymentToggle({ enabled, onChange, frequency, endDate, onEndDateChange, endDateError, disabled, }: RecurringPaymentToggleProps): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { StatePaymentOption } from '../../types/statePayment';
|
|
2
|
+
export interface RecurringPeriodRow {
|
|
3
|
+
id: number;
|
|
4
|
+
taxPeriod: string;
|
|
5
|
+
taxAmount: string;
|
|
6
|
+
paymentDate: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function createRecurringPeriodRow(id: number): RecurringPeriodRow;
|
|
9
|
+
interface RecurringPeriodRowsProps {
|
|
10
|
+
rows: RecurringPeriodRow[];
|
|
11
|
+
taxPeriodOptions: StatePaymentOption[];
|
|
12
|
+
onChange: (id: number, patch: Partial<Omit<RecurringPeriodRow, 'id'>>) => void;
|
|
13
|
+
onRemove: (id: number) => void;
|
|
14
|
+
onAdd: () => void;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extra tax period / amount / date rows for a recurring schedule.
|
|
19
|
+
*
|
|
20
|
+
* UI-only for now: StatePaymentDraft and CreateStatePaymentRequest each hold a
|
|
21
|
+
* single period, so only the first row (owned by the form itself) is
|
|
22
|
+
* submitted. These rows capture the intended schedule until the API accepts
|
|
23
|
+
* one.
|
|
24
|
+
*/
|
|
25
|
+
export declare function RecurringPeriodRows({ rows, taxPeriodOptions, onChange, onRemove, onAdd, disabled, }: RecurringPeriodRowsProps): import("react").JSX.Element;
|
|
26
|
+
interface PeriodRowDeleteButtonProps {
|
|
27
|
+
onClick?: () => void;
|
|
28
|
+
label: string;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
title?: string;
|
|
31
|
+
}
|
|
32
|
+
/** Trash button aligned to the input row, clearing the field labels above it. */
|
|
33
|
+
export declare function PeriodRowDeleteButton({ onClick, label, disabled, title, }: PeriodRowDeleteButtonProps): import("react").JSX.Element;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EntityDetailsResponse } from '../../types/entity';
|
|
2
|
+
import { StatePaymentDraft } from '../../types/statePaymentFlow';
|
|
3
|
+
interface StateBankDetailsFormProps {
|
|
4
|
+
entity: EntityDetailsResponse | null;
|
|
5
|
+
paymentDraft: StatePaymentDraft;
|
|
6
|
+
}
|
|
7
|
+
export declare function StateBankDetailsForm({ entity, paymentDraft }: StateBankDetailsFormProps): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EntityDetailsResponse } from '../../types/entity';
|
|
2
|
+
import { StatePaymentDraft } from '../../types/statePaymentFlow';
|
|
3
|
+
interface StatePaymentReviewPanelProps {
|
|
4
|
+
entity: EntityDetailsResponse | null;
|
|
5
|
+
paymentDraft: StatePaymentDraft;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Read-only summary beside the authorization agreement. Labels are resolved
|
|
9
|
+
* from the same cached reference queries the earlier steps use, falling back
|
|
10
|
+
* to the raw draft values when a lookup isn't available (e.g. a draft opened
|
|
11
|
+
* straight from the payments list).
|
|
12
|
+
*/
|
|
13
|
+
export declare function StatePaymentReviewPanel({ entity, paymentDraft }: StatePaymentReviewPanelProps): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const authorityToExecuteAgreement = "
|
|
1
|
+
export declare const disclosureAuthorizationAgreement = "I hereby authorize the contact person listed in item 5 on this form and financial institutions involved in the processing of my Electronic Federal Tax Payment System (EFTPS) payments to receive confidential information necessary to effect enrollment in EFTPS, electronic payment of taxes, answer inquiries and resolve issues related to enrollment and payments. This information includes, but is not limited to, passwords, payment instructions, taxpayer name and identifying number, and payment transaction details. This authorization is to remain in full force and effect until the designated Financial Agents of the U.S. Treasury have received written notification from me of termination in such time and in such manner to afford a reasonable opportunity to act on it.";
|
|
2
|
+
export declare const debitAuthorizationAgreement = "By completing the financial institution information in items 9-11 on this form, I authorize designated Financial Agents of the U.S. Treasury to initiate EFTPS debit entries to the financial institution account indicated above, for payment of federal taxes owed to the IRS upon request by Taxpayer or his/her representative, using the Electronic Federal Tax Payment System (EFTPS). I further authorize the financial institution named above to debit such entries to the financial institution account indicated above. All debits initiated by the U.S. Treasury designated Financial Agents pursuant to this authorization shall be made under U.S. Treasury regulations. This authorization is to remain in full force and effect until the designated Financial Agents of the U.S. Treasury have received written notification of termination in such time and in such manner as to afford a reasonable opportunity to act on it.";
|
|
3
|
+
export declare const authorityToExecuteAgreement = "If signed by a corporate officer, partner, or fiduciary on behalf of the taxpayer, I certify that I have the authority to have payments made from the taxpayer\u2019s account. If signed by a representative of the taxpayer, I certify that I have the authority to execute this authorization on behalf of the taxpayer (i.e., authority provided by Form 2848, Power of Attorney and Declaration of Representative, or Form 8655, Reporting Agent Authorization for Magnetic Tape/Electronic Filers)";
|
|
4
4
|
export declare const agiTaxYearOptions: string[];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress header shared by the federal payment flow — shown on the payment
|
|
3
|
+
* form (step 1) and on both step 2 screens: reporting agent authorization
|
|
4
|
+
* (businesses) and EFTPS individual enrollment (individuals).
|
|
5
|
+
*/
|
|
6
|
+
export declare const FEDERAL_PAYMENT_STEPS: string[];
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export { getMinSettlementDate } from './settlementDateRules';
|
|
2
2
|
export declare function maskAccountNumber(accountNumber: string): string;
|
|
3
|
+
/** `XXXX-1234` — the mask used by the bank account cards and pickers. */
|
|
4
|
+
export declare function maskAccountNumberDashed(accountNumber: string): string;
|
|
5
|
+
/** ISO `2026-08-18` → `08/18/2026`. Returns the input unchanged if unparseable. */
|
|
6
|
+
export declare function formatDisplayDate(isoDate: string): string;
|
|
3
7
|
export declare function getTaxPeriodOptions(): Array<{
|
|
4
8
|
value: string;
|
|
5
9
|
label: string;
|