@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.
Files changed (137) hide show
  1. package/dist/api/bankAccounts.d.ts +9 -7
  2. package/dist/api/dashboard.d.ts +3 -1
  3. package/dist/api/entities.d.ts +10 -7
  4. package/dist/api/remittancePayments.d.ts +2 -0
  5. package/dist/api/taxAccounts.d.ts +10 -1
  6. package/dist/components/dashboard/AddFirstPaymentModal.d.ts +12 -0
  7. package/dist/components/dashboard/DashboardKpiCards.d.ts +10 -0
  8. package/dist/components/dashboard/FederalPaymentsChartCard.d.ts +11 -0
  9. package/dist/components/dashboard/NeedAttentionCarousel.d.ts +6 -0
  10. package/dist/components/dashboard/PaymentsTypeCard.d.ts +7 -0
  11. package/dist/components/dashboard/RecentPaymentsCard.d.ts +6 -0
  12. package/dist/components/dashboard/RowActionsMenu.d.ts +13 -0
  13. package/dist/components/dashboard/SetupChecklist.d.ts +22 -0
  14. package/dist/components/dashboard/StatePaymentsChartCard.d.ts +11 -0
  15. package/dist/components/dashboard/TaxYearSelect.d.ts +9 -0
  16. package/dist/components/dashboard/UpcomingPaymentsCard.d.ts +6 -0
  17. package/dist/components/dashboard/dashboardMockData.d.ts +63 -0
  18. package/dist/components/dashboard/dashboardOverviewMappers.d.ts +15 -0
  19. package/dist/components/dashboard/dashboardUtils.d.ts +18 -0
  20. package/dist/components/dashboard/useSetupProgress.d.ts +30 -0
  21. package/dist/components/entities/EntityActionsMenu.d.ts +3 -1
  22. package/dist/components/entities/EntityCard.d.ts +8 -0
  23. package/dist/components/entities/EntityTypeFilter.d.ts +8 -0
  24. package/dist/components/entities/entityListUtils.d.ts +5 -8
  25. package/dist/components/forms/PhoneInputGroup.d.ts +5 -7
  26. package/dist/components/forms/SegmentedControl.d.ts +9 -5
  27. package/dist/components/icons/BankIcon.d.ts +1 -0
  28. package/dist/components/icons/BusinessIcon.d.ts +1 -0
  29. package/dist/components/icons/CheckCircleIcon.d.ts +1 -0
  30. package/dist/components/icons/EmptyTaxAccountsIllustration.d.ts +5 -0
  31. package/dist/components/icons/EntitySuccessIllustration.d.ts +2 -0
  32. package/dist/components/icons/EyeIcon.d.ts +1 -0
  33. package/dist/components/icons/EyeOffIcon.d.ts +1 -0
  34. package/dist/components/icons/IndividualEntitySuccessIllustration.d.ts +2 -0
  35. package/dist/components/icons/PersonIcon.d.ts +1 -0
  36. package/dist/components/icons/XCircleIcon.d.ts +1 -0
  37. package/dist/components/onboarding/EntityAccountTypeRow.d.ts +16 -0
  38. package/dist/components/onboarding/EntityAddressFields.d.ts +17 -0
  39. package/dist/components/onboarding/EntityBusinessFields.d.ts +17 -0
  40. package/dist/components/onboarding/EntityCreatedModal.d.ts +14 -0
  41. package/dist/components/onboarding/EntityForm.d.ts +5 -0
  42. package/dist/components/onboarding/EntityFormHelpPanel.d.ts +8 -0
  43. package/dist/components/onboarding/EntityIdNumberInput.d.ts +14 -0
  44. package/dist/components/onboarding/EntityPhoneField.d.ts +9 -0
  45. package/dist/components/onboarding/EntityPrimaryTaxpayerFields.d.ts +16 -0
  46. package/dist/components/onboarding/EntitySuccessModal.d.ts +35 -0
  47. package/dist/components/onboarding/SecondaryTaxpayerSection.d.ts +23 -0
  48. package/dist/components/onboarding/SecondaryTaxpayerToggle.d.ts +10 -0
  49. package/dist/components/onboarding/entityHelpContent.d.ts +123 -0
  50. package/dist/components/onboarding/useEntityForm.d.ts +80 -0
  51. package/dist/components/payments/BankAccountCard.d.ts +16 -0
  52. package/dist/components/payments/BankAccountDrawer.d.ts +15 -0
  53. package/dist/components/payments/BankConnectionMethodModal.d.ts +11 -0
  54. package/dist/components/payments/BankConnectionMethodPicker.d.ts +10 -0
  55. package/dist/components/payments/FederalPaymentReviewPanel.d.ts +14 -0
  56. package/dist/components/payments/FederalPaymentReviewStep.d.ts +13 -0
  57. package/dist/components/payments/InlineRowActions.d.ts +17 -0
  58. package/dist/components/payments/PaymentActionButton.d.ts +9 -0
  59. package/dist/components/payments/PaymentActionsFooter.d.ts +43 -0
  60. package/dist/components/payments/PaymentFormSection.d.ts +1 -1
  61. package/dist/components/payments/PaymentRowMenu.d.ts +14 -0
  62. package/dist/components/payments/PaymentStatusBadge.d.ts +7 -0
  63. package/dist/components/payments/PaymentStepper.d.ts +14 -0
  64. package/dist/components/payments/PaymentTableRow.d.ts +14 -0
  65. package/dist/components/payments/PaymentsNeedAttention.d.ts +14 -0
  66. package/dist/components/payments/RecurringPaymentToggle.d.ts +16 -0
  67. package/dist/components/payments/RecurringPeriodRows.d.ts +34 -0
  68. package/dist/components/payments/StateBankDetailsForm.d.ts +8 -0
  69. package/dist/components/payments/StatePaymentReviewPanel.d.ts +14 -0
  70. package/dist/components/payments/eftpsIndividualEnrollmentConfig.d.ts +3 -3
  71. package/dist/components/payments/federalPaymentSteps.d.ts +6 -0
  72. package/dist/components/payments/federalPaymentUtils.d.ts +4 -0
  73. package/dist/components/payments/paymentsTableConfig.d.ts +20 -9
  74. package/dist/components/payments/remittancePaymentMappers.d.ts +3 -0
  75. package/dist/components/payments/statePaymentAuthorizationConfig.d.ts +1 -1
  76. package/dist/components/payments/useStatePaymentDraftSave.d.ts +11 -0
  77. package/dist/components/settings/BankAccountActionsMenu.d.ts +3 -1
  78. package/dist/components/settings/EditEntityForm.d.ts +12 -0
  79. package/dist/components/settings/TaxAccountDrawer.d.ts +22 -0
  80. package/dist/components/settings/settingsNavConfig.d.ts +1 -1
  81. package/dist/components/settings/taxAccountDrawerConfig.d.ts +1 -0
  82. package/dist/components/tax-forms/TaxFormCard.d.ts +7 -0
  83. package/dist/components/tax-forms/TaxFormsGrid.d.ts +9 -0
  84. package/dist/components/tax-forms/states/virginia/VA16Form.d.ts +53 -0
  85. package/dist/components/tax-forms/states/virginia/VA16Form.preview.d.ts +2 -0
  86. package/dist/components/ui/SideDrawer.d.ts +18 -0
  87. package/dist/components/ui/StatusPill.d.ts +10 -0
  88. package/dist/components/ui/ToastProvider.d.ts +2 -2
  89. package/dist/embedded/EmbeddedContext.d.ts +4 -1
  90. package/dist/embedded/EmbeddedWidgetBase.d.ts +3 -1
  91. package/dist/embedded/TaxRemittanceEmbedded.d.ts +6 -0
  92. package/dist/embedded/pages/EmbeddedEntityEditPage.d.ts +6 -0
  93. package/dist/index.cjs +34 -34
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.d.ts +2 -0
  96. package/dist/index.mjs +14305 -11075
  97. package/dist/index.mjs.map +1 -1
  98. package/dist/lib/bankAccountInputRules.d.ts +17 -0
  99. package/dist/lib/entityFormUtils.d.ts +63 -8
  100. package/dist/lib/fieldRules.d.ts +92 -0
  101. package/dist/lib/fieldSchemas.d.ts +12 -0
  102. package/dist/lib/jwt.d.ts +10 -0
  103. package/dist/lib/paymentFrequency.d.ts +10 -0
  104. package/dist/lib/paymentStatus.d.ts +7 -0
  105. package/dist/lib/paymentsNavigation.d.ts +16 -2
  106. package/dist/lib/useElementWidth.d.ts +9 -0
  107. package/dist/pages/FederalPaymentReviewPage.d.ts +1 -0
  108. package/dist/pages/StateBankDetailsPage.d.ts +2 -0
  109. package/dist/styles.css +1 -1
  110. package/dist/types/bankAccount.d.ts +2 -0
  111. package/dist/types/createBankAccount.d.ts +2 -0
  112. package/dist/types/dashboard.d.ts +59 -0
  113. package/dist/types/entity.d.ts +27 -2
  114. package/dist/types/federalPaymentFlow.d.ts +2 -0
  115. package/dist/types/statePayment.d.ts +7 -0
  116. package/dist/types/statePaymentFlow.d.ts +3 -0
  117. package/dist/types/taxAccountDetails.d.ts +31 -29
  118. package/package.json +1 -1
  119. package/dist/api/paymentTransactions.d.ts +0 -7
  120. package/dist/components/dashboard/EmptyPaymentCard.d.ts +0 -9
  121. package/dist/components/dashboard/MonthlyOverviewSection.d.ts +0 -8
  122. package/dist/components/dashboard/MyPaymentsTable.d.ts +0 -8
  123. package/dist/components/dashboard/PaymentSummaryCard.d.ts +0 -21
  124. package/dist/components/payments/PaymentRowActions.d.ts +0 -13
  125. package/dist/components/settings/AddBankAccountManualForm.d.ts +0 -7
  126. package/dist/components/settings/AddBankAccountModal.d.ts +0 -8
  127. package/dist/components/settings/AddTaxAccountForm.d.ts +0 -32
  128. package/dist/components/settings/EditBankAccountModal.d.ts +0 -8
  129. package/dist/components/settings/EditEntityModal.d.ts +0 -8
  130. package/dist/components/settings/PaymentHistorySection.d.ts +0 -5
  131. package/dist/components/settings/SettingsPlaceholderSection.d.ts +0 -6
  132. package/dist/components/settings/taxAccountFormConfig.d.ts +0 -18
  133. package/dist/components/tax-forms/TaxFormsTable.d.ts +0 -8
  134. package/dist/pages/AddTaxAccountPage.d.ts +0 -1
  135. package/dist/pages/StatePaymentEditorPage.d.ts +0 -5
  136. package/dist/types/paymentHistory.d.ts +0 -26
  137. 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 {};
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  interface PaymentFormSectionProps {
3
- title: string;
3
+ title: ReactNode;
4
4
  children: ReactNode;
5
5
  isFirst?: boolean;
6
6
  headerAction?: ReactNode;
@@ -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 disclosureAuthorizationAgreementOne = "I hereby authorize the contact person listed in item 5 on this form, and the financial institution(s) listed in items 9-11 on this form, to process EFTPS payments and to receive confidential information for enrollment purposes, to answer inquiries regarding my account, and to resolve any issues that may arise. This authorization includes passwords, payment instructions, taxpayer names, and identifying numbers.";
2
- export declare const disclosureAuthorizationAgreementTwo = "By completing the financial institution information in items 9-11 on this form, I authorize the designated Financial Agents of the U.S. Treasury to initiate EFTPS debit entries to my financial institution account for federal tax payments. All debits will be made in accordance with U.S. Treasury regulations. This authorization remains in effect until written notification of termination is received and the Financial Agent has had a reasonable opportunity to act on it.";
3
- export declare const authorityToExecuteAgreement = "Under penalties of perjury, I certify that I have the authority to sign this authorization on behalf of the taxpayer. If I am a corporate officer, partner, guardian, executor, receiver, administrator, trustee, or other party, I certify that I have the authority to execute this authorization on behalf of the taxpayer. If I am a tax practitioner, I certify that Form 2848 or Form 8655 is on file with the IRS.";
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;