@layerfi/components 0.1.102-alpha.1 → 0.1.102-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -16,6 +16,10 @@ declare module '@layerfi/components/api/layer/authenticated_http' {
16
16
  params?: Params;
17
17
  body?: Body;
18
18
  }) => Promise<Return>;
19
+ export const del: <Return extends Record<string, unknown> = Record<string, unknown>, Body extends Record<string, unknown> = Record<string, unknown>, Params extends Record<string, string | undefined> = Record<string, string | undefined>>(url: (params: Params) => string) => (baseUrl: string, accessToken: string | undefined, options?: {
20
+ params?: Params;
21
+ body?: Body;
22
+ }) => Promise<Return>;
19
23
  export const postWithFormData: <Return extends Record<string, unknown> = Record<string, unknown>>(url: string, formData: FormData, baseUrl: string, accessToken: string | undefined) => Promise<Return>;
20
24
 
21
25
  }
@@ -151,7 +155,7 @@ declare module '@layerfi/components/api/layer/bankTransactions' {
151
155
  }
152
156
  declare module '@layerfi/components/api/layer/bills' {
153
157
  import { Metadata } from '@layerfi/components/types';
154
- import { Bill, BillPayment } from '@layerfi/components/types/bills';
158
+ import { Bill, BillLineItem, BillPayment, SalesTax } from '@layerfi/components/types/bills';
155
159
  export type GetBillsReturn = {
156
160
  data?: Bill[];
157
161
  meta?: Metadata;
@@ -165,6 +169,16 @@ declare module '@layerfi/components/api/layer/bills' {
165
169
  status?: string;
166
170
  vendorId?: string;
167
171
  }
172
+ export type SaveBillPayload = {
173
+ bill_number?: string;
174
+ terms?: string;
175
+ due_at?: string;
176
+ received_at?: string;
177
+ vendor_id?: string;
178
+ vendor_external_id?: string;
179
+ sales_taxes?: SalesTax[];
180
+ line_items?: Partial<BillLineItem>[];
181
+ };
168
182
  export const getBills: (baseUrl: string, accessToken: string | undefined, options?: {
169
183
  params?: GetBillsParams | undefined;
170
184
  } | undefined) => () => Promise<GetBillsReturn>;
@@ -178,7 +192,13 @@ declare module '@layerfi/components/api/layer/bills' {
178
192
  }>;
179
193
  export const updateBill: (baseUrl: string, accessToken: string | undefined, options?: {
180
194
  params?: Record<string, string | undefined> | undefined;
181
- body?: Record<string, unknown> | undefined;
195
+ body?: SaveBillPayload | undefined;
196
+ } | undefined) => Promise<{
197
+ data: Bill;
198
+ }>;
199
+ export const createBill: (baseUrl: string, accessToken: string | undefined, options?: {
200
+ params?: Record<string, string | undefined> | undefined;
201
+ body?: SaveBillPayload | undefined;
182
202
  } | undefined) => Promise<{
183
203
  data: Bill;
184
204
  }>;
@@ -364,15 +384,13 @@ declare module '@layerfi/components/api/layer/linked_accounts' {
364
384
  } | undefined;
365
385
  body?: ({
366
386
  is_unique: true;
367
- } & Partial<{
368
- is_unique: boolean;
369
- is_relevant: boolean;
370
- }> & {}) | ({
387
+ } & {
388
+ is_relevant?: undefined;
389
+ }) | ({
371
390
  is_relevant: true;
372
- } & Partial<{
373
- is_unique: boolean;
374
- is_relevant: boolean;
375
- }> & {}) | undefined;
391
+ } & {
392
+ is_unique?: undefined;
393
+ }) | undefined;
376
394
  } | undefined) => Promise<never>;
377
395
  export const excludeAccount: (baseUrl: string, accessToken: string | undefined, options?: {
378
396
  params?: {
@@ -381,15 +399,13 @@ declare module '@layerfi/components/api/layer/linked_accounts' {
381
399
  } | undefined;
382
400
  body?: ({
383
401
  is_irrelevant: true;
384
- } & Partial<{
385
- is_irrelevant: boolean;
386
- is_duplicate: boolean;
387
- }> & {}) | ({
402
+ } & {
403
+ is_duplicate?: undefined;
404
+ }) | ({
388
405
  is_duplicate: true;
389
- } & Partial<{
390
- is_irrelevant: boolean;
391
- is_duplicate: boolean;
392
- }> & {}) | undefined;
406
+ } & {
407
+ is_irrelevant?: undefined;
408
+ }) | undefined;
393
409
  } | undefined) => Promise<never>;
394
410
  export const unlinkConnection: (baseUrl: string, accessToken: string | undefined, options?: {
395
411
  params?: {
@@ -723,13 +739,19 @@ declare module '@layerfi/components/api/layer' {
723
739
  billId: string;
724
740
  } | undefined;
725
741
  } | undefined) => () => Promise<{
726
- data: import("@layerfi/components/types/bills").Bill;
742
+ data: import("@layerfi/components/types").Bill;
743
+ }>;
744
+ createBill: (baseUrl: string, accessToken: string | undefined, options?: {
745
+ params?: Record<string, string | undefined> | undefined;
746
+ body?: import("@layerfi/components/api/layer/bills").SaveBillPayload | undefined;
747
+ } | undefined) => Promise<{
748
+ data: import("@layerfi/components/types").Bill;
727
749
  }>;
728
750
  updateBill: (baseUrl: string, accessToken: string | undefined, options?: {
729
751
  params?: Record<string, string | undefined> | undefined;
730
- body?: Record<string, unknown> | undefined;
752
+ body?: import("@layerfi/components/api/layer/bills").SaveBillPayload | undefined;
731
753
  } | undefined) => Promise<{
732
- data: import("@layerfi/components/types/bills").Bill;
754
+ data: import("@layerfi/components/types").Bill;
733
755
  }>;
734
756
  createBillPayment: (baseUrl: string, accessToken: string | undefined, options?: {
735
757
  params?: Record<string, string | undefined> | undefined;
@@ -905,15 +927,13 @@ declare module '@layerfi/components/api/layer' {
905
927
  } | undefined;
906
928
  body?: ({
907
929
  is_unique: true;
908
- } & Partial<{
909
- is_unique: boolean;
910
- is_relevant: boolean;
911
- }> & {}) | ({
930
+ } & {
931
+ is_relevant?: undefined;
932
+ }) | ({
912
933
  is_relevant: true;
913
- } & Partial<{
914
- is_unique: boolean;
915
- is_relevant: boolean;
916
- }> & {}) | undefined;
934
+ } & {
935
+ is_unique?: undefined;
936
+ }) | undefined;
917
937
  } | undefined) => Promise<never>;
918
938
  excludeAccount: (baseUrl: string, accessToken: string | undefined, options?: {
919
939
  params?: {
@@ -922,15 +942,13 @@ declare module '@layerfi/components/api/layer' {
922
942
  } | undefined;
923
943
  body?: ({
924
944
  is_irrelevant: true;
925
- } & Partial<{
926
- is_irrelevant: boolean;
927
- is_duplicate: boolean;
928
- }> & {}) | ({
945
+ } & {
946
+ is_duplicate?: undefined;
947
+ }) | ({
929
948
  is_duplicate: true;
930
- } & Partial<{
931
- is_irrelevant: boolean;
932
- is_duplicate: boolean;
933
- }> & {}) | undefined;
949
+ } & {
950
+ is_irrelevant?: undefined;
951
+ }) | undefined;
934
952
  } | undefined) => Promise<never>;
935
953
  breakPlaidItemConnection: (baseUrl: string, accessToken: string | undefined, options?: {
936
954
  params?: {
@@ -1206,12 +1224,12 @@ declare module '@layerfi/components/components/BankTransactionList/BankTransacti
1206
1224
  editable: boolean;
1207
1225
  containerWidth: number;
1208
1226
  removeTransaction: (bt: BankTransaction) => void;
1209
- showDescriptions?: boolean;
1210
- showReceiptUploads?: boolean;
1211
- showTooltips: boolean;
1212
1227
  stringOverrides?: BankTransactionCTAStringOverrides;
1228
+ showDescriptions: boolean;
1229
+ showReceiptUploads: boolean;
1230
+ showTooltips: boolean;
1213
1231
  }
1214
- export const BankTransactionList: ({ bankTransactions, editable, removeTransaction, containerWidth, showDescriptions, showReceiptUploads, showTooltips, stringOverrides, }: BankTransactionListProps) => import("react/jsx-runtime").JSX.Element;
1232
+ export const BankTransactionList: ({ bankTransactions, editable, removeTransaction, containerWidth, stringOverrides, showDescriptions, showReceiptUploads, showTooltips, }: BankTransactionListProps) => import("react/jsx-runtime").JSX.Element;
1215
1233
  export {};
1216
1234
 
1217
1235
  }
@@ -1223,14 +1241,14 @@ declare module '@layerfi/components/components/BankTransactionList/BankTransacti
1223
1241
  dateFormat: string;
1224
1242
  bankTransaction: BankTransaction;
1225
1243
  editable: boolean;
1226
- showDescriptions: boolean;
1227
- showReceiptUploads: boolean;
1228
- showTooltips: boolean;
1229
1244
  removeTransaction: (bt: BankTransaction) => void;
1230
1245
  containerWidth?: number;
1231
1246
  stringOverrides?: BankTransactionCTAStringOverrides;
1247
+ showDescriptions: boolean;
1248
+ showReceiptUploads: boolean;
1249
+ showTooltips: boolean;
1232
1250
  };
1233
- export const BankTransactionListItem: ({ index, dateFormat, bankTransaction, editable, showDescriptions, showReceiptUploads, showTooltips, containerWidth, removeTransaction, stringOverrides, }: Props) => import("react/jsx-runtime").JSX.Element;
1251
+ export const BankTransactionListItem: ({ index, dateFormat, bankTransaction, editable, containerWidth, removeTransaction, stringOverrides, showDescriptions, showReceiptUploads, showTooltips, }: Props) => import("react/jsx-runtime").JSX.Element;
1234
1252
  export {};
1235
1253
 
1236
1254
  }
@@ -1246,13 +1264,13 @@ declare module '@layerfi/components/components/BankTransactionMobileList/BankTra
1246
1264
  import { BankTransaction } from '@layerfi/components/types';
1247
1265
  import { Purpose } from '@layerfi/components/components/BankTransactionMobileList/BankTransactionMobileListItem';
1248
1266
  interface BankTransactionMobileFormsProps {
1267
+ isOpen?: boolean;
1249
1268
  purpose: Purpose;
1250
1269
  bankTransaction: BankTransaction;
1251
- showTooltips: boolean;
1252
1270
  showCategorization?: boolean;
1253
- showReceiptUploads?: boolean;
1254
- showDescriptions?: boolean;
1255
- isOpen?: boolean;
1271
+ showDescriptions: boolean;
1272
+ showReceiptUploads: boolean;
1273
+ showTooltips: boolean;
1256
1274
  }
1257
1275
  export const BankTransactionMobileForms: ({ purpose, bankTransaction, showTooltips, showCategorization, showReceiptUploads, showDescriptions, isOpen, }: BankTransactionMobileFormsProps) => import("react/jsx-runtime").JSX.Element;
1258
1276
  export {};
@@ -1265,11 +1283,11 @@ declare module '@layerfi/components/components/BankTransactionMobileList/BankTra
1265
1283
  editable: boolean;
1266
1284
  removeTransaction: (bt: BankTransaction) => void;
1267
1285
  initialLoad?: boolean;
1286
+ showDescriptions: boolean;
1287
+ showReceiptUploads: boolean;
1268
1288
  showTooltips: boolean;
1269
- showReceiptUploads?: boolean;
1270
- showDescriptions?: boolean;
1271
1289
  }
1272
- export const BankTransactionMobileList: ({ bankTransactions, removeTransaction, editable, initialLoad, showTooltips, showReceiptUploads, showDescriptions, }: BankTransactionMobileListProps) => import("react/jsx-runtime").JSX.Element;
1290
+ export const BankTransactionMobileList: ({ bankTransactions, removeTransaction, editable, initialLoad, showDescriptions, showReceiptUploads, showTooltips, }: BankTransactionMobileListProps) => import("react/jsx-runtime").JSX.Element;
1273
1291
 
1274
1292
  }
1275
1293
  declare module '@layerfi/components/components/BankTransactionMobileList/BankTransactionMobileListItem' {
@@ -1280,17 +1298,17 @@ declare module '@layerfi/components/components/BankTransactionMobileList/BankTra
1280
1298
  editable: boolean;
1281
1299
  removeTransaction: (bt: BankTransaction) => void;
1282
1300
  initialLoad?: boolean;
1283
- showTooltips: boolean;
1284
- showDescriptions?: boolean;
1285
- showReceiptUploads?: boolean;
1286
1301
  isFirstItem?: boolean;
1302
+ showDescriptions: boolean;
1303
+ showReceiptUploads: boolean;
1304
+ showTooltips: boolean;
1287
1305
  }
1288
1306
  export enum Purpose {
1289
1307
  business = "business",
1290
1308
  personal = "personal",
1291
1309
  more = "more"
1292
1310
  }
1293
- export const BankTransactionMobileListItem: ({ index, bankTransaction, removeTransaction, editable, initialLoad, showTooltips, isFirstItem, showDescriptions, showReceiptUploads, }: BankTransactionMobileListItemProps) => import("react/jsx-runtime").JSX.Element;
1311
+ export const BankTransactionMobileListItem: ({ index, bankTransaction, removeTransaction, editable, initialLoad, isFirstItem, showDescriptions, showReceiptUploads, showTooltips, }: BankTransactionMobileListItemProps) => import("react/jsx-runtime").JSX.Element;
1294
1312
 
1295
1313
  }
1296
1314
  declare module '@layerfi/components/components/BankTransactionMobileList/BusinessCategories' {
@@ -1307,12 +1325,12 @@ declare module '@layerfi/components/components/BankTransactionMobileList/Busines
1307
1325
  import { BankTransaction } from '@layerfi/components/types';
1308
1326
  interface BusinessFormProps {
1309
1327
  bankTransaction: BankTransaction;
1310
- showTooltips: boolean;
1311
1328
  showCategorization?: boolean;
1312
- showReceiptUploads?: boolean;
1313
- showDescriptions?: boolean;
1329
+ showDescriptions: boolean;
1330
+ showReceiptUploads: boolean;
1331
+ showTooltips: boolean;
1314
1332
  }
1315
- export const BusinessForm: ({ bankTransaction, showTooltips, showCategorization, showReceiptUploads, showDescriptions, }: BusinessFormProps) => import("react/jsx-runtime").JSX.Element;
1333
+ export const BusinessForm: ({ bankTransaction, showCategorization, showDescriptions, showReceiptUploads, showTooltips, }: BusinessFormProps) => import("react/jsx-runtime").JSX.Element;
1316
1334
  export {};
1317
1335
 
1318
1336
  }
@@ -1553,8 +1571,9 @@ declare module '@layerfi/components/components/BankTransactions/BankTransactions
1553
1571
  }
1554
1572
  export interface BankTransactionsWithErrorProps extends BankTransactionsProps {
1555
1573
  onError?: (error: LayerError) => void;
1574
+ showTags?: boolean;
1556
1575
  }
1557
- export const BankTransactions: ({ onError, mode, ...props }: BankTransactionsWithErrorProps) => import("react/jsx-runtime").JSX.Element;
1576
+ export const BankTransactions: ({ onError, showTags, mode, ...props }: BankTransactionsWithErrorProps) => import("react/jsx-runtime").JSX.Element;
1558
1577
 
1559
1578
  }
1560
1579
  declare module '@layerfi/components/components/BankTransactions/BankTransactionsHeader' {
@@ -1602,10 +1621,6 @@ declare module '@layerfi/components/components/BankTransactions/constants' {
1602
1621
  export const CategorizedCategories: CategorizationStatus[];
1603
1622
  export const ReviewCategories: CategorizationStatus[];
1604
1623
 
1605
- }
1606
- declare module '@layerfi/components/components/BankTransactions/index' {
1607
- export { BankTransactions } from '@layerfi/components/components/BankTransactions/BankTransactions';
1608
-
1609
1624
  }
1610
1625
  declare module '@layerfi/components/components/BankTransactions/utils' {
1611
1626
  import { BankTransaction, DisplayState } from '@layerfi/components/types';
@@ -1642,8 +1657,8 @@ declare module '@layerfi/components/components/BankTransactionsTable/BankTransac
1642
1657
  isLoading?: boolean;
1643
1658
  containerWidth: number;
1644
1659
  removeTransaction: (bt: BankTransaction) => void;
1645
- showDescriptions?: boolean;
1646
- showReceiptUploads?: boolean;
1660
+ showDescriptions: boolean;
1661
+ showReceiptUploads: boolean;
1647
1662
  showTooltips: boolean;
1648
1663
  stringOverrides?: BankTransactionsStringOverrides;
1649
1664
  isSyncing?: boolean;
@@ -1654,6 +1669,186 @@ declare module '@layerfi/components/components/BankTransactionsTable/BankTransac
1654
1669
  export const BankTransactionsTable: ({ categorizeView, editable, isLoading, bankTransactions, containerWidth, removeTransaction, showDescriptions, showReceiptUploads, showTooltips, stringOverrides, isSyncing, page, lastPage, onRefresh, }: BankTransactionsTableProps) => import("react/jsx-runtime").JSX.Element;
1655
1670
  export {};
1656
1671
 
1672
+ }
1673
+ declare module '@layerfi/components/components/Bills/BillSummary' {
1674
+ import type { Bill } from '@layerfi/components/types';
1675
+ type BillSummaryProps = {
1676
+ bill: Bill;
1677
+ };
1678
+ export const BillSummary: ({ bill }: BillSummaryProps) => import("react/jsx-runtime").JSX.Element;
1679
+ export {};
1680
+
1681
+ }
1682
+ declare module '@layerfi/components/components/Bills/BillSummaryPaid' {
1683
+ import { Bill } from '@layerfi/components/types';
1684
+ type BillSummaryPaidProps = {
1685
+ bill: Bill;
1686
+ };
1687
+ export const BillSummaryPaid: ({ bill }: BillSummaryPaidProps) => import("react/jsx-runtime").JSX.Element;
1688
+ export {};
1689
+
1690
+ }
1691
+ declare module '@layerfi/components/components/Bills/BillSummaryUnpaid' {
1692
+ import { Bill } from '@layerfi/components/types';
1693
+ type BillSummaryUnpaidProps = {
1694
+ bill: Bill;
1695
+ };
1696
+ export const BillSummaryUnpaid: ({ bill }: BillSummaryUnpaidProps) => import("react/jsx-runtime").JSX.Element;
1697
+ export {};
1698
+
1699
+ }
1700
+ declare module '@layerfi/components/components/Bills/Bills' {
1701
+ import { BillsTableStringOverrides } from '@layerfi/components/components/Bills/BillsTableWithPanel';
1702
+ export type BillsStringOverrides = {
1703
+ billsTable?: BillsTableStringOverrides;
1704
+ paidToggleOption?: string;
1705
+ unpaidToggleOption?: string;
1706
+ };
1707
+ export type BillsProps = {
1708
+ context?: boolean;
1709
+ asWidget?: boolean;
1710
+ stringOverrides?: BillsStringOverrides;
1711
+ };
1712
+ export const Bills: ({ context, ...props }: BillsProps) => import("react/jsx-runtime").JSX.Element;
1713
+
1714
+ }
1715
+ declare module '@layerfi/components/components/Bills/BillsDatePicker' {
1716
+ export const BillsDatePicker: () => import("react/jsx-runtime").JSX.Element;
1717
+
1718
+ }
1719
+ declare module '@layerfi/components/components/Bills/BillsDetails' {
1720
+ import { RefObject } from 'react';
1721
+ import type { Bill } from '@layerfi/components/types';
1722
+ export const BillsDetails: ({ bill, containerRef, }: {
1723
+ bill?: Bill;
1724
+ containerRef: RefObject<HTMLDivElement>;
1725
+ }) => import("react/jsx-runtime").JSX.Element;
1726
+
1727
+ }
1728
+ declare module '@layerfi/components/components/Bills/BillsList' {
1729
+ import { BillsTableStringOverrides } from '@layerfi/components/components/Bills/BillsTableWithPanel';
1730
+ export const BillsList: ({ stringOverrides, }: {
1731
+ stringOverrides?: BillsTableStringOverrides;
1732
+ }) => import("react/jsx-runtime").JSX.Element;
1733
+
1734
+ }
1735
+ declare module '@layerfi/components/components/Bills/BillsPaymentRecorded' {
1736
+ export const BillsPaymentRecorded: ({ stringOverrides, }: {
1737
+ stringOverrides?: {
1738
+ header?: string;
1739
+ };
1740
+ }) => import("react/jsx-runtime").JSX.Element;
1741
+
1742
+ }
1743
+ declare module '@layerfi/components/components/Bills/BillsRecordPayment' {
1744
+ import { JournalFormStringOverrides } from '@layerfi/components/components/JournalForm/JournalForm';
1745
+ export const BillsRecordPayment: ({ stringOverrides, }: {
1746
+ stringOverrides?: JournalFormStringOverrides;
1747
+ }) => import("react/jsx-runtime").JSX.Element;
1748
+
1749
+ }
1750
+ declare module '@layerfi/components/components/Bills/BillsSidebar' {
1751
+ export const BillsSidebar: () => import("react/jsx-runtime").JSX.Element;
1752
+
1753
+ }
1754
+ declare module '@layerfi/components/components/Bills/BillsTable' {
1755
+ import { BillsTableStringOverrides } from '@layerfi/components/components/Bills/BillsTableWithPanel';
1756
+ export const BillsTable: ({ stringOverrides, }: {
1757
+ stringOverrides?: BillsTableStringOverrides;
1758
+ }) => import("react/jsx-runtime").JSX.Element;
1759
+
1760
+ }
1761
+ declare module '@layerfi/components/components/Bills/BillsTableLoader' {
1762
+ export const BillsTableLoader: () => import("react/jsx-runtime").JSX.Element;
1763
+
1764
+ }
1765
+ declare module '@layerfi/components/components/Bills/BillsTableWithPanel' {
1766
+ import { RefObject } from 'react';
1767
+ export type BillsTableStringOverrides = {
1768
+ componentTitle?: string;
1769
+ componentSubtitle?: string;
1770
+ vendorColumnHeader?: string;
1771
+ dueDateColumnHeader?: string;
1772
+ billAmountColumnHeader?: string;
1773
+ openBalanceColumnHeader?: string;
1774
+ statusColumnHeader?: string;
1775
+ paidToggleOption?: string;
1776
+ unpaidToggleOption?: string;
1777
+ recordPaymentButtonText?: string;
1778
+ };
1779
+ export const BillsTableWithPanel: ({ containerRef, stringOverrides, }: {
1780
+ containerRef: RefObject<HTMLDivElement>;
1781
+ stringOverrides?: BillsTableStringOverrides;
1782
+ }) => import("react/jsx-runtime").JSX.Element;
1783
+
1784
+ }
1785
+ declare module '@layerfi/components/components/Bills/useBillForm' {
1786
+ import { Bill, BillLineItem } from '@layerfi/components/types/bills';
1787
+ import { FormValidateOrFn, FormAsyncValidateOrFn } from '@tanstack/react-form';
1788
+ import { Vendor } from '@layerfi/components/types/vendors';
1789
+ export type BillForm = {
1790
+ bill_number?: string;
1791
+ vendor?: Vendor;
1792
+ vendor_address?: string;
1793
+ received_at?: string;
1794
+ due_at?: string;
1795
+ terms?: string;
1796
+ line_items?: (Partial<BillLineItem>)[];
1797
+ };
1798
+ export type EditableBill = Partial<Bill>;
1799
+ export const useBillForm: (bill?: EditableBill) => {
1800
+ form: import("@tanstack/react-form").ReactFormExtendedApi<BillForm, FormValidateOrFn<BillForm>, FormValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>>;
1801
+ isDirty: boolean;
1802
+ submitError: string | undefined;
1803
+ formErrorMap: import("@tanstack/react-form").FormValidationErrorMap<undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined>;
1804
+ };
1805
+
1806
+ }
1807
+ declare module '@layerfi/components/components/Bills/useBillsRecordPayment' {
1808
+ import { Bill, BillPaymentMethod } from '@layerfi/components/types/bills';
1809
+ import { Vendor } from '@layerfi/components/types/vendors';
1810
+ import { APIError } from '@layerfi/components/models/APIError';
1811
+ export type BillsRecordPaymentFormRecord = {
1812
+ bill?: Bill;
1813
+ amount?: string | null;
1814
+ };
1815
+ export const useBillsRecordPayment: ({ refetchAllBills }: {
1816
+ refetchAllBills?: () => void;
1817
+ }) => {
1818
+ billsToPay: BillsRecordPaymentFormRecord[];
1819
+ setBill: (bill: Bill, index: number) => void;
1820
+ addBill: (bill?: Bill) => void;
1821
+ removeBill: (bill: Bill) => void;
1822
+ removeBillByIndex: (index: number) => void;
1823
+ setAmount: (billId: string, amount: string) => void;
1824
+ setAmountByIndex: (index: number, amount?: string | null) => void;
1825
+ vendor: Vendor | undefined;
1826
+ setVendor: (newVendor?: Vendor) => void;
1827
+ paymentDate: Date;
1828
+ setPaymentDate: import("react").Dispatch<import("react").SetStateAction<Date>>;
1829
+ paymentMethod: BillPaymentMethod;
1830
+ setPaymentMethod: import("react").Dispatch<import("react").SetStateAction<BillPaymentMethod>>;
1831
+ showRecordPaymentForm: boolean;
1832
+ setShowRecordPaymentForm: import("react").Dispatch<import("react").SetStateAction<boolean>>;
1833
+ bulkSelectionActive: boolean;
1834
+ openBulkSelection: () => void;
1835
+ closeBulkSelection: () => void;
1836
+ recordPayment: () => Promise<void>;
1837
+ dataSaved: boolean;
1838
+ closeRecordPayment: () => void;
1839
+ clearRecordPaymentSelection: () => void;
1840
+ recordPaymentForBill: (bill: Bill) => void;
1841
+ payRemainingBalance: () => void;
1842
+ isLoading: boolean;
1843
+ apiError: APIError | undefined;
1844
+ };
1845
+
1846
+ }
1847
+ declare module '@layerfi/components/components/Bills/useUnpaidBillsByVendor' {
1848
+ export const useUnpaidBillsByVendor: ({ vendorId }: {
1849
+ vendorId?: string;
1850
+ }) => import("swr").SWRResponse<import("../../types").Bill[] | undefined, any, any>;
1851
+
1657
1852
  }
1658
1853
  declare module '@layerfi/components/components/BookkeepingStatus/BookkeepingStatus' {
1659
1854
  import { BookkeepingPeriodStatus } from '@layerfi/components/hooks/bookkeeping/periods/useBookkeepingPeriods';
@@ -1876,13 +2071,14 @@ declare module '@layerfi/components/components/Button/SubmitButton' {
1876
2071
  noIcon?: boolean;
1877
2072
  tooltip?: ButtonProps['tooltip'];
1878
2073
  withRetry?: boolean;
2074
+ iconAsPrimary?: boolean;
1879
2075
  }
1880
2076
  export enum SubmitAction {
1881
2077
  SAVE = "save",
1882
2078
  UPDATE = "update",
1883
2079
  UPLOAD = "upload"
1884
2080
  }
1885
- export const SubmitButton: ({ active, className, processing, disabled, error, children, action, noIcon, variant, withRetry, ...props }: SubmitButtonProps) => import("react/jsx-runtime").JSX.Element;
2081
+ export const SubmitButton: ({ active, className, processing, disabled, error, children, action, noIcon, variant, withRetry, iconAsPrimary, ...props }: SubmitButtonProps) => import("react/jsx-runtime").JSX.Element;
1886
2082
 
1887
2083
  }
1888
2084
  declare module '@layerfi/components/components/Button/SwitchButton' {
@@ -1937,13 +2133,14 @@ declare module '@layerfi/components/components/CategorySelect/CategorySelect' {
1937
2133
  import { SuggestedMatch, type CategoryWithEntries } from '@layerfi/components/types/bank_transactions';
1938
2134
  type Props = {
1939
2135
  name?: string;
1940
- bankTransaction: BankTransaction;
2136
+ bankTransaction?: BankTransaction;
1941
2137
  value: CategoryOption | undefined;
1942
2138
  onChange: (newValue: CategoryOption) => void;
1943
2139
  disabled?: boolean;
1944
2140
  className?: string;
1945
2141
  showTooltips: boolean;
1946
2142
  excludeMatches?: boolean;
2143
+ hideMainCategories?: string[];
1947
2144
  asDrawer?: boolean;
1948
2145
  };
1949
2146
  export enum OptionActionType {
@@ -1973,7 +2170,7 @@ declare module '@layerfi/components/components/CategorySelect/CategorySelect' {
1973
2170
  type: "ExclusionNested";
1974
2171
  }) => CategoryOption;
1975
2172
  export const mapSuggestedMatchToOption: (record: SuggestedMatch) => CategoryOption;
1976
- export const CategorySelect: ({ bankTransaction, name, value, onChange, disabled, className, showTooltips, excludeMatches, asDrawer, }: Props) => import("react/jsx-runtime").JSX.Element;
2173
+ export const CategorySelect: ({ bankTransaction, name, value, onChange, disabled, className, showTooltips, excludeMatches, hideMainCategories, asDrawer, }: Props) => import("react/jsx-runtime").JSX.Element;
1977
2174
  export {};
1978
2175
 
1979
2176
  }
@@ -2270,7 +2467,7 @@ declare module '@layerfi/components/components/CsvUpload/types' {
2270
2467
  }> = {
2271
2468
  [K in keyof T]: PreviewCell<T[K]>;
2272
2469
  } & {
2273
- index: number;
2470
+ row: number;
2274
2471
  is_valid: boolean;
2275
2472
  };
2276
2473
  export type PreviewCsv<T extends {
@@ -2639,14 +2836,16 @@ declare module '@layerfi/components/components/IconBox/index' {
2639
2836
 
2640
2837
  }
2641
2838
  declare module '@layerfi/components/components/Input/AmountInput' {
2839
+ import { type ReactNode } from 'react';
2642
2840
  import { CurrencyInputProps } from 'react-currency-input-field';
2643
2841
  export interface AmountInputProps extends Omit<CurrencyInputProps, 'onChange'> {
2644
2842
  onChange?: (value?: string) => void;
2645
2843
  isInvalid?: boolean;
2646
2844
  errorMessage?: string;
2647
2845
  leftText?: string;
2846
+ badge?: ReactNode;
2648
2847
  }
2649
- export const AmountInput: ({ onChange, className, leftText, errorMessage, isInvalid, placeholder, ...props }: AmountInputProps) => import("react/jsx-runtime").JSX.Element;
2848
+ export const AmountInput: ({ onChange, className, leftText, errorMessage, isInvalid, badge, placeholder, ...props }: AmountInputProps) => import("react/jsx-runtime").JSX.Element;
2650
2849
 
2651
2850
  }
2652
2851
  declare module '@layerfi/components/components/Input/BusinessTypeSelect' {
@@ -2686,8 +2885,9 @@ declare module '@layerfi/components/components/Input/CreatableSelect' {
2686
2885
  onCreateOption?: (inputValue: string) => void;
2687
2886
  isValidNewOption?: CreatableProps<T, false, GroupBase<T>>['isValidNewOption'];
2688
2887
  formatCreateLabel?: (inputValue: string) => ReactNode;
2888
+ createOptionPosition?: 'first' | 'last';
2689
2889
  }
2690
- export const CreatableSelect: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, onCreateOption, isValidNewOption, formatCreateLabel, inputId, isLoading, isClearable, }: CreatableSelectProps<T>) => import("react/jsx-runtime").JSX.Element;
2890
+ export const CreatableSelect: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, formatOptionLabel, onCreateOption, isValidNewOption, formatCreateLabel, inputId, isLoading, isClearable, createOptionPosition, }: CreatableSelectProps<T>) => import("react/jsx-runtime").JSX.Element;
2691
2891
 
2692
2892
  }
2693
2893
  declare module '@layerfi/components/components/Input/FileInput' {
@@ -2780,7 +2980,8 @@ declare module '@layerfi/components/components/Input/PhoneInput' {
2780
2980
 
2781
2981
  }
2782
2982
  declare module '@layerfi/components/components/Input/Select' {
2783
- import { GroupBase, OptionsOrGroups } from 'react-select';
2983
+ import { type ReactNode } from 'react';
2984
+ import { FormatOptionLabelMeta, GroupBase, OptionsOrGroups } from 'react-select';
2784
2985
  export interface SelectProps<T> {
2785
2986
  name?: string;
2786
2987
  options?: OptionsOrGroups<T, GroupBase<T>>;
@@ -2794,8 +2995,9 @@ declare module '@layerfi/components/components/Input/Select' {
2794
2995
  errorMessage?: string;
2795
2996
  inputId?: string;
2796
2997
  isLoading?: boolean;
2998
+ formatOptionLabel?: (option: T, meta?: FormatOptionLabelMeta<T>) => ReactNode;
2797
2999
  }
2798
- export const Select: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, inputId, isLoading, }: SelectProps<T>) => import("react/jsx-runtime").JSX.Element;
3000
+ export const Select: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, inputId, isLoading, formatOptionLabel, }: SelectProps<T>) => import("react/jsx-runtime").JSX.Element;
2799
3001
 
2800
3002
  }
2801
3003
  declare module '@layerfi/components/components/Input/StaticValue' {
@@ -4648,13 +4850,24 @@ declare module '@layerfi/components/components/UploadTransactions/UploadTransact
4648
4850
  export function UploadTransactions({ onComplete }: UploadTransactionsProps): import("react/jsx-runtime").JSX.Element;
4649
4851
  export {};
4650
4852
 
4853
+ }
4854
+ declare module '@layerfi/components/components/UploadTransactions/UploadTransactionsConfirmationStep' {
4855
+ type UploadTransactionsConfirmationStepProps = {
4856
+ onRestartFlow: () => void;
4857
+ uploadedTransactionsCount: number;
4858
+ };
4859
+ export function UploadTransactionsConfirmationStep({ onRestartFlow, uploadedTransactionsCount }: UploadTransactionsConfirmationStepProps): import("react/jsx-runtime").JSX.Element;
4860
+ export {};
4861
+
4651
4862
  }
4652
4863
  declare module '@layerfi/components/components/UploadTransactions/UploadTransactionsUploadCsvStep' {
4864
+ import type { CustomAccount } from '@layerfi/components/hooks/customAccounts/types';
4653
4865
  import { type CustomAccountParseCsvResponse } from '@layerfi/components/hooks/customAccounts/useCustomAccountParseCsv';
4654
- type AccountOption = {
4866
+ export type AccountOption = {
4655
4867
  value: string;
4656
4868
  label: string;
4657
- createdAccountName?: string;
4869
+ account: Partial<CustomAccount> & Pick<CustomAccount, 'accountName'>;
4870
+ __isNew__?: true;
4658
4871
  };
4659
4872
  interface UploadTransactionsUploadCsvStepProps {
4660
4873
  selectedAccount: AccountOption | null;
@@ -4669,13 +4882,14 @@ declare module '@layerfi/components/components/UploadTransactions/UploadTransact
4669
4882
  }
4670
4883
  declare module '@layerfi/components/components/UploadTransactions/UploadTransactionsValidateCsvStep' {
4671
4884
  import type { CustomAccountParseCsvResponse } from '@layerfi/components/hooks/customAccounts/useCustomAccountParseCsv';
4885
+ import { BankTransaction } from '@layerfi/components/types';
4672
4886
  interface UploadTransactionsValidateCsvStepProps {
4673
- parseCsvResponse: CustomAccountParseCsvResponse;
4674
- selectedAccountId: string;
4675
- onGoBack: () => void;
4676
- onReupload: () => void;
4887
+ parseCsvResponse: CustomAccountParseCsvResponse | null;
4888
+ selectedAccountId?: string;
4889
+ onSelectFile: (file: File | null) => void;
4890
+ onUploadTransactionsSuccess: (transactions: BankTransaction[]) => void;
4677
4891
  }
4678
- export function UploadTransactionsValidateCsvStep({ parseCsvResponse, selectedAccountId, onGoBack, onReupload }: UploadTransactionsValidateCsvStepProps): import("react/jsx-runtime").JSX.Element;
4892
+ export function UploadTransactionsValidateCsvStep({ parseCsvResponse, selectedAccountId, onSelectFile, onUploadTransactionsSuccess }: UploadTransactionsValidateCsvStepProps): import("react/jsx-runtime").JSX.Element;
4679
4893
  export {};
4680
4894
 
4681
4895
  }
@@ -4686,6 +4900,14 @@ declare module '@layerfi/components/components/UploadTransactions/template' {
4686
4900
  };
4687
4901
  export const templateExampleTransactions: CustomAccountTransactionRow[];
4688
4902
 
4903
+ }
4904
+ declare module '@layerfi/components/components/UploadTransactions/types' {
4905
+ export enum UploadTransactionsStep {
4906
+ UploadCsv = 0,
4907
+ ValidateCsv = 1,
4908
+ Confirmation = 2
4909
+ }
4910
+
4689
4911
  }
4690
4912
  declare module '@layerfi/components/components/UpsellBanner/BookkeepingUpsellBar' {
4691
4913
  interface BookkeepingUpsellBarProps {
@@ -4699,6 +4921,21 @@ declare module '@layerfi/components/components/UpsellBanner/BookkeepingUpsellBar
4699
4921
  declare module '@layerfi/components/components/UpsellBanner/index' {
4700
4922
  export { BookkeepingUpsellBar } from '@layerfi/components/components/UpsellBanner/BookkeepingUpsellBar';
4701
4923
 
4924
+ }
4925
+ declare module '@layerfi/components/components/Vendors/SelectVendor' {
4926
+ import { Vendor } from '@layerfi/components/types/vendors';
4927
+ type SelectVendorProps = {
4928
+ value: Vendor | null;
4929
+ onChange: (value: Vendor | null) => void;
4930
+ disabled?: boolean;
4931
+ placeholder?: string;
4932
+ withContext?: boolean;
4933
+ isInvalid?: boolean;
4934
+ errorMessage?: string;
4935
+ };
4936
+ export const SelectVendor: ({ withContext, ...props }: SelectVendorProps) => import("react/jsx-runtime").JSX.Element;
4937
+ export {};
4938
+
4702
4939
  }
4703
4940
  declare module '@layerfi/components/components/View/View' {
4704
4941
  import { ReactNode } from 'react';
@@ -4740,15 +4977,17 @@ declare module '@layerfi/components/components/Wizard/Wizard' {
4740
4977
  import { type PropsWithChildren, type ReactNode } from 'react';
4741
4978
  import type { Awaitable } from '@layerfi/components/types/utility/promises';
4742
4979
  export function useWizard(): {
4743
- next: () => Promise<void>;
4980
+ next: () => Awaitable<void>;
4744
4981
  previous: () => void;
4982
+ goToStep: (stepIndex: number) => void;
4745
4983
  };
4746
4984
  type WizardProps = PropsWithChildren<{
4747
4985
  Header: ReactNode;
4748
4986
  Footer: ReactNode;
4749
4987
  onComplete?: () => Awaitable<void>;
4988
+ onStepChange?: (stepIndex: number) => void;
4750
4989
  }>;
4751
- export function Wizard({ Header, Footer, onComplete, children, }: WizardProps): import("react/jsx-runtime").JSX.Element;
4990
+ export function Wizard({ Header, Footer, onComplete, onStepChange, children, }: WizardProps): import("react/jsx-runtime").JSX.Element;
4752
4991
  export {};
4753
4992
 
4754
4993
  }
@@ -4823,6 +5062,53 @@ declare module '@layerfi/components/components/ui/DropdownMenu/DropdownMenu' {
4823
5062
  export const DropdownMenu: ({ children, ariaLabel, slots, slotProps }: DropdownMenuProps) => import("react/jsx-runtime").JSX.Element;
4824
5063
  export {};
4825
5064
 
5065
+ }
5066
+ declare module '@layerfi/components/components/ui/Input/Input' {
5067
+ import { type ComponentProps } from 'react';
5068
+ import { Input as ReactAriaInput } from 'react-aria-components';
5069
+ type InputProps = Omit<ComponentProps<typeof ReactAriaInput>, 'className'> & {
5070
+ placement?: 'first-within-group';
5071
+ };
5072
+ export const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
5073
+ export {};
5074
+
5075
+ }
5076
+ declare module '@layerfi/components/components/ui/ListBox/ListBox' {
5077
+ import { type ForwardedRef, type Ref } from 'react';
5078
+ import { type ListBoxProps as ReactAriaListBoxProps, type ListBoxItemProps as ReactAriaListBoxItemProps, type ListBoxSectionProps as ReactAriaListBoxSectionProps } from 'react-aria-components';
5079
+ type ListBoxProps<T extends Record<string, unknown>> = Omit<ReactAriaListBoxProps<T>, 'className'>;
5080
+ function InternalListBox<T extends Record<string, unknown>>(props: ListBoxProps<T>, ref: React.ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
5081
+ export const ListBox: <T extends Record<string, unknown>>(props: ListBoxProps<T> & {
5082
+ ref?: Ref<HTMLDivElement>;
5083
+ }) => ReturnType<typeof InternalListBox>;
5084
+ type ListBoxSectionProps<T extends Record<string, unknown>> = Omit<ReactAriaListBoxSectionProps<T>, 'className'>;
5085
+ function InternalListBoxSection<T extends Record<string, unknown>>(props: ListBoxSectionProps<T>, ref: ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
5086
+ export const ListBoxSection: <T extends Record<string, unknown>>(props: ListBoxSectionProps<T> & {
5087
+ ref?: Ref<HTMLDivElement>;
5088
+ }) => ReturnType<typeof InternalListBoxSection>;
5089
+ export const ListBoxSectionHeader: import("react").ForwardRefExoticComponent<Omit<Omit<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, "id" | "slot"> & {
5090
+ nonAria?: true;
5091
+ } & {
5092
+ align?: "center";
5093
+ ellipsis?: true;
5094
+ noWrap?: true;
5095
+ pb?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
5096
+ pbe?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
5097
+ pbs?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
5098
+ size?: "xs" | "sm" | "md" | "lg";
5099
+ status?: "error";
5100
+ variant?: "subtle";
5101
+ weight?: "normal" | "bold";
5102
+ } & {
5103
+ children?: import("react").ReactNode | undefined;
5104
+ } & import("react").RefAttributes<HTMLElement>, "slot">, "ref"> & import("react").RefAttributes<HTMLElement>>;
5105
+ type ListBoxItemProps<T extends Record<string, unknown>> = Omit<ReactAriaListBoxItemProps<T>, 'className'>;
5106
+ function InternalListBoxItem<T extends Record<string, unknown>>(props: ListBoxItemProps<T>, ref?: ForwardedRef<T>): import("react/jsx-runtime").JSX.Element;
5107
+ export const ListBoxItem: <T extends Record<string, unknown>>(props: ListBoxItemProps<T> & {
5108
+ ref?: Ref<T>;
5109
+ }) => ReturnType<typeof InternalListBoxItem>;
5110
+ export {};
5111
+
4826
5112
  }
4827
5113
  declare module '@layerfi/components/components/ui/Loading/LoadingSpinner' {
4828
5114
  import { type LucideProps } from 'lucide-react';
@@ -4869,15 +5155,22 @@ declare module '@layerfi/components/components/ui/Modal/ModalSlots' {
4869
5155
  align?: "center";
4870
5156
  pbe?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4871
5157
  size?: "2xs" | "xs" | "sm" | "lg";
5158
+ variant?: "subtle";
5159
+ weight?: "normal" | "bold";
4872
5160
  }, "ref"> & import("react").RefAttributes<HTMLHeadingElement>, "slot" | "level">, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
4873
- export const ModalDescription: import("react").ForwardRefExoticComponent<Omit<Omit<{
4874
- slot?: string | undefined | undefined;
5161
+ export const ModalDescription: import("react").ForwardRefExoticComponent<Omit<Omit<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "id" | "slot"> & {
5162
+ nonAria?: true;
4875
5163
  } & {
4876
5164
  align?: "center";
5165
+ ellipsis?: true;
5166
+ noWrap?: true;
5167
+ pb?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4877
5168
  pbe?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4878
5169
  pbs?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4879
5170
  size?: "xs" | "sm" | "md" | "lg";
5171
+ status?: "error";
4880
5172
  variant?: "subtle";
5173
+ weight?: "normal" | "bold";
4881
5174
  } & {
4882
5175
  children?: import("react").ReactNode | undefined;
4883
5176
  } & import("react").RefAttributes<HTMLParagraphElement>, "slot">, "ref"> & import("react").RefAttributes<HTMLParagraphElement>>;
@@ -4894,6 +5187,13 @@ declare module '@layerfi/components/components/ui/Pill/Pill' {
4894
5187
  } & import("react").RefAttributes<HTMLButtonElement>>;
4895
5188
  export {};
4896
5189
 
5190
+ }
5191
+ declare module '@layerfi/components/components/ui/Popover/Popover' {
5192
+ import { PopoverProps as ReactAriaPopoverProps } from 'react-aria-components';
5193
+ type PopoverProps = Omit<ReactAriaPopoverProps, 'className'>;
5194
+ export const Popover: import("react").ForwardRefExoticComponent<PopoverProps & import("react").RefAttributes<HTMLElement>>;
5195
+ export {};
5196
+
4897
5197
  }
4898
5198
  declare module '@layerfi/components/components/ui/SearchField/MinimalSearchField' {
4899
5199
  import { type SearchFieldProps as ReactAriaSearchFieldProps } from 'react-aria-components';
@@ -4903,6 +5203,16 @@ declare module '@layerfi/components/components/ui/SearchField/MinimalSearchField
4903
5203
  export function MinimalSearchField({ placeholder, ...restProps }: MinimalSearchFieldProps): import("react/jsx-runtime").JSX.Element;
4904
5204
  export {};
4905
5205
 
5206
+ }
5207
+ declare module '@layerfi/components/components/ui/Square/Square' {
5208
+ type SquareProps = {
5209
+ size?: 'sm';
5210
+ };
5211
+ export const Square: import("react").ForwardRefExoticComponent<SquareProps & {
5212
+ children?: import("react").ReactNode | undefined;
5213
+ } & import("react").RefAttributes<HTMLDivElement>>;
5214
+ export {};
5215
+
4906
5216
  }
4907
5217
  declare module '@layerfi/components/components/ui/Stack/Stack' {
4908
5218
  import { type PropsWithChildren } from 'react';
@@ -4910,19 +5220,68 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
4910
5220
  export type StackProps = PropsWithChildren<{
4911
5221
  align?: 'start' | 'center';
4912
5222
  gap?: Spacing;
4913
- justify?: 'start' | 'center' | 'end';
5223
+ justify?: 'start' | 'center' | 'end' | 'space-between';
5224
+ pb?: Spacing;
4914
5225
  pbs?: Spacing;
4915
5226
  pbe?: Spacing;
5227
+ pi?: Spacing;
4916
5228
  pis?: Spacing;
4917
5229
  pie?: Spacing;
4918
5230
  fluid?: boolean;
4919
5231
  slot?: string;
4920
5232
  className?: string;
4921
5233
  }>;
4922
- export function VStack(props: StackProps): import("react/jsx-runtime").JSX.Element;
4923
- export function HStack(props: StackProps): import("react/jsx-runtime").JSX.Element;
5234
+ export const VStack: import("react").ForwardRefExoticComponent<{
5235
+ align?: "start" | "center";
5236
+ gap?: Spacing;
5237
+ justify?: "start" | "center" | "end" | "space-between";
5238
+ pb?: Spacing;
5239
+ pbs?: Spacing;
5240
+ pbe?: Spacing;
5241
+ pi?: Spacing;
5242
+ pis?: Spacing;
5243
+ pie?: Spacing;
5244
+ fluid?: boolean;
5245
+ slot?: string;
5246
+ className?: string;
5247
+ } & {
5248
+ children?: import("react").ReactNode | undefined;
5249
+ } & import("react").RefAttributes<HTMLDivElement>>;
5250
+ export const HStack: import("react").ForwardRefExoticComponent<{
5251
+ align?: "start" | "center";
5252
+ gap?: Spacing;
5253
+ justify?: "start" | "center" | "end" | "space-between";
5254
+ pb?: Spacing;
5255
+ pbs?: Spacing;
5256
+ pbe?: Spacing;
5257
+ pi?: Spacing;
5258
+ pis?: Spacing;
5259
+ pie?: Spacing;
5260
+ fluid?: boolean;
5261
+ slot?: string;
5262
+ className?: string;
5263
+ } & {
5264
+ children?: import("react").ReactNode | undefined;
5265
+ } & import("react").RefAttributes<HTMLDivElement>>;
4924
5266
  export const Spacer: () => import("react/jsx-runtime").JSX.Element;
4925
5267
 
5268
+ }
5269
+ declare module '@layerfi/components/components/ui/TagGroup/TagGroup' {
5270
+ import { TagGroup as ReactAriaTagGroup, TagList as ReactAriaTagList, Tag as ReactAriaTag } from 'react-aria-components';
5271
+ import { type ComponentProps } from 'react';
5272
+ type TagGroupProps = Omit<ComponentProps<typeof ReactAriaTagGroup>, 'className'>;
5273
+ export const TagGroup: import("react").ForwardRefExoticComponent<Omit<TagGroupProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5274
+ type TagListProps<T extends Record<string, unknown>> = Omit<ComponentProps<typeof ReactAriaTagList<T>>, 'className'> & {
5275
+ columnCount?: 1 | 2;
5276
+ };
5277
+ function InternalTagList<T extends Record<string, unknown>>({ columnCount, ...restProps }: TagListProps<T>, ref: React.ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
5278
+ export const TagList: <T extends Record<string, unknown>>(props: TagListProps<T> & {
5279
+ ref?: React.ForwardedRef<HTMLDivElement>;
5280
+ }) => ReturnType<typeof InternalTagList>;
5281
+ type TagProps = Omit<ComponentProps<typeof ReactAriaTag>, 'className'>;
5282
+ export const Tag: import("react").ForwardRefExoticComponent<Omit<TagProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5283
+ export {};
5284
+
4926
5285
  }
4927
5286
  declare module '@layerfi/components/components/ui/Typography/Heading' {
4928
5287
  import type { Spacing } from '@layerfi/components/components/ui/sharedUITypes';
@@ -4930,6 +5289,8 @@ declare module '@layerfi/components/components/ui/Typography/Heading' {
4930
5289
  align?: 'center';
4931
5290
  pbe?: Spacing;
4932
5291
  size?: '2xs' | 'xs' | 'sm' | 'lg';
5292
+ variant?: 'subtle';
5293
+ weight?: 'normal' | 'bold';
4933
5294
  };
4934
5295
  const Heading: import("react").ForwardRefExoticComponent<Omit<Omit<import("react-aria-components").HeadingProps & import("react").RefAttributes<HTMLHeadingElement>, "className"> & HeadingDataProps, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
4935
5296
  export { Heading };
@@ -4945,29 +5306,34 @@ declare module '@layerfi/components/components/ui/Typography/MoneyText' {
4945
5306
 
4946
5307
  }
4947
5308
  declare module '@layerfi/components/components/ui/Typography/Text' {
4948
- import type { ComponentPropsWithoutRef } from 'react';
4949
5309
  import type { Spacing } from '@layerfi/components/components/ui/sharedUITypes';
4950
- type ParagraphProps = Pick<ComponentPropsWithoutRef<'p'>, 'slot'>;
4951
5310
  type TextStyleProps = {
4952
5311
  align?: 'center';
5312
+ ellipsis?: true;
5313
+ noWrap?: true;
5314
+ pb?: Spacing;
4953
5315
  pbe?: Spacing;
4954
5316
  pbs?: Spacing;
4955
5317
  size?: 'xs' | 'sm' | 'md' | 'lg';
5318
+ status?: 'error';
4956
5319
  variant?: 'subtle';
5320
+ weight?: 'normal' | 'bold';
5321
+ };
5322
+ type TextRenderingProps = {
5323
+ nonAria?: true;
4957
5324
  };
4958
- export const P: import("react").ForwardRefExoticComponent<ParagraphProps & TextStyleProps & {
5325
+ export const Header: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, "id" | "slot"> & TextRenderingProps & TextStyleProps & {
5326
+ children?: import("react").ReactNode | undefined;
5327
+ } & import("react").RefAttributes<HTMLElement>>;
5328
+ export const Label: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref">, "id" | "htmlFor" | "slot"> & TextRenderingProps & TextStyleProps & {
5329
+ children?: import("react").ReactNode | undefined;
5330
+ } & import("react").RefAttributes<HTMLLabelElement>>;
5331
+ export const P: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "id" | "slot"> & TextRenderingProps & TextStyleProps & {
4959
5332
  children?: import("react").ReactNode | undefined;
4960
5333
  } & import("react").RefAttributes<HTMLParagraphElement>>;
4961
- type SpanProps = Pick<ComponentPropsWithoutRef<'span'>, 'slot'>;
4962
- export const Span: import("react").ForwardRefExoticComponent<SpanProps & TextStyleProps & {
4963
- noWrap?: boolean;
4964
- } & {
5334
+ export const Span: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "id" | "slot"> & TextRenderingProps & TextStyleProps & {
4965
5335
  children?: import("react").ReactNode | undefined;
4966
5336
  } & import("react").RefAttributes<HTMLSpanElement>>;
4967
- type LabelProps = Pick<ComponentPropsWithoutRef<'label'>, 'slot' | 'htmlFor'>;
4968
- export const Label: import("react").ForwardRefExoticComponent<LabelProps & TextStyleProps & {
4969
- children?: import("react").ReactNode | undefined;
4970
- } & import("react").RefAttributes<HTMLLabelElement>>;
4971
5337
  export {};
4972
5338
 
4973
5339
  }
@@ -5064,6 +5430,7 @@ declare module '@layerfi/components/config/charts' {
5064
5430
  declare module '@layerfi/components/config/general' {
5065
5431
  export const DATE_FORMAT = "LLL d, yyyy";
5066
5432
  export const DATE_FORMAT_SHORT = "M/d/yyyy";
5433
+ export const DATE_FORMAT_SHORT_PADDED = "MM/dd/yyyy";
5067
5434
  export const MONTH_DAY_FORMAT = "LLL d";
5068
5435
  export const TIME_FORMAT = "p";
5069
5436
  export const BREAKPOINTS: {
@@ -5182,6 +5549,123 @@ declare module '@layerfi/components/contexts/BankTransactionsContext/BankTransac
5182
5549
  declare module '@layerfi/components/contexts/BankTransactionsContext/index' {
5183
5550
  export { BankTransactionsContext, useBankTransactionsContext, } from '@layerfi/components/contexts/BankTransactionsContext/BankTransactionsContext';
5184
5551
 
5552
+ }
5553
+ declare module '@layerfi/components/contexts/BillsContext' {
5554
+ import React, { ReactNode } from 'react';
5555
+ import { useBills } from '@layerfi/components/hooks/useBills';
5556
+ import { useBillsRecordPayment } from '@layerfi/components/components/Bills/useBillsRecordPayment';
5557
+ type BillsProviderProps = {
5558
+ children: ReactNode;
5559
+ };
5560
+ export type BillsContextType = ReturnType<typeof useBills>;
5561
+ export const BillsContext: React.Context<{
5562
+ data: import("@layerfi/components/types").Bill[];
5563
+ paginatedData: import("@layerfi/components/types").Bill[];
5564
+ currentPage: number;
5565
+ setCurrentPage: (page: number) => void;
5566
+ pageSize: number;
5567
+ metadata?: import("@layerfi/components/types").Metadata;
5568
+ billInDetails?: import("@layerfi/components/types").Bill;
5569
+ openBillDetails: (bill?: import("@layerfi/components/types").Bill) => void;
5570
+ showBillInDetails: boolean;
5571
+ closeBillDetails: () => void;
5572
+ status: import("@layerfi/components/hooks/useBills").BillStatusFilter;
5573
+ setStatus: (status: import("@layerfi/components/hooks/useBills").BillStatusFilter) => void;
5574
+ dateRange: import("@layerfi/components/types").DateRange;
5575
+ setDateRange: (dateRange: import("@layerfi/components/types").DateRange) => void;
5576
+ vendor: import("@layerfi/components/types/vendors").Vendor | null;
5577
+ setVendor: (vendor: import("@layerfi/components/types/vendors").Vendor | null) => void;
5578
+ fetchMore: () => void;
5579
+ hasMore: boolean;
5580
+ isLoading: boolean;
5581
+ isValidating: boolean;
5582
+ error?: Error;
5583
+ refetch: () => void;
5584
+ }>;
5585
+ export type BillsRecordPaymentContextType = ReturnType<typeof useBillsRecordPayment>;
5586
+ export const BillsRecordPaymentContext: React.Context<{
5587
+ billsToPay: import("@layerfi/components/components/Bills/useBillsRecordPayment").BillsRecordPaymentFormRecord[];
5588
+ setBill: (bill: import("@layerfi/components/types").Bill, index: number) => void;
5589
+ addBill: (bill?: import("@layerfi/components/types").Bill) => void;
5590
+ removeBill: (bill: import("@layerfi/components/types").Bill) => void;
5591
+ removeBillByIndex: (index: number) => void;
5592
+ setAmount: (billId: string, amount: string) => void;
5593
+ setAmountByIndex: (index: number, amount?: string | null) => void;
5594
+ vendor: import("@layerfi/components/types/vendors").Vendor | undefined;
5595
+ setVendor: (newVendor?: import("@layerfi/components/types/vendors").Vendor) => void;
5596
+ paymentDate: Date;
5597
+ setPaymentDate: React.Dispatch<React.SetStateAction<Date>>;
5598
+ paymentMethod: import("@layerfi/components/types/bills").BillPaymentMethod;
5599
+ setPaymentMethod: React.Dispatch<React.SetStateAction<import("@layerfi/components/types/bills").BillPaymentMethod>>;
5600
+ showRecordPaymentForm: boolean;
5601
+ setShowRecordPaymentForm: React.Dispatch<React.SetStateAction<boolean>>;
5602
+ bulkSelectionActive: boolean;
5603
+ openBulkSelection: () => void;
5604
+ closeBulkSelection: () => void;
5605
+ recordPayment: () => Promise<void>;
5606
+ dataSaved: boolean;
5607
+ closeRecordPayment: () => void;
5608
+ clearRecordPaymentSelection: () => void;
5609
+ recordPaymentForBill: (bill: import("@layerfi/components/types").Bill) => void;
5610
+ payRemainingBalance: () => void;
5611
+ isLoading: boolean;
5612
+ apiError: import("@layerfi/components/models/APIError").APIError | undefined;
5613
+ }>;
5614
+ export const useBillsContext: () => {
5615
+ data: import("@layerfi/components/types").Bill[];
5616
+ paginatedData: import("@layerfi/components/types").Bill[];
5617
+ currentPage: number;
5618
+ setCurrentPage: (page: number) => void;
5619
+ pageSize: number;
5620
+ metadata?: import("@layerfi/components/types").Metadata;
5621
+ billInDetails?: import("@layerfi/components/types").Bill;
5622
+ openBillDetails: (bill?: import("@layerfi/components/types").Bill) => void;
5623
+ showBillInDetails: boolean;
5624
+ closeBillDetails: () => void;
5625
+ status: import("@layerfi/components/hooks/useBills").BillStatusFilter;
5626
+ setStatus: (status: import("@layerfi/components/hooks/useBills").BillStatusFilter) => void;
5627
+ dateRange: import("@layerfi/components/types").DateRange;
5628
+ setDateRange: (dateRange: import("@layerfi/components/types").DateRange) => void;
5629
+ vendor: import("@layerfi/components/types/vendors").Vendor | null;
5630
+ setVendor: (vendor: import("@layerfi/components/types/vendors").Vendor | null) => void;
5631
+ fetchMore: () => void;
5632
+ hasMore: boolean;
5633
+ isLoading: boolean;
5634
+ isValidating: boolean;
5635
+ error?: Error;
5636
+ refetch: () => void;
5637
+ };
5638
+ export const useBillsRecordPaymentContext: () => {
5639
+ billsToPay: import("@layerfi/components/components/Bills/useBillsRecordPayment").BillsRecordPaymentFormRecord[];
5640
+ setBill: (bill: import("@layerfi/components/types").Bill, index: number) => void;
5641
+ addBill: (bill?: import("@layerfi/components/types").Bill) => void;
5642
+ removeBill: (bill: import("@layerfi/components/types").Bill) => void;
5643
+ removeBillByIndex: (index: number) => void;
5644
+ setAmount: (billId: string, amount: string) => void;
5645
+ setAmountByIndex: (index: number, amount?: string | null) => void;
5646
+ vendor: import("@layerfi/components/types/vendors").Vendor | undefined;
5647
+ setVendor: (newVendor?: import("@layerfi/components/types/vendors").Vendor) => void;
5648
+ paymentDate: Date;
5649
+ setPaymentDate: React.Dispatch<React.SetStateAction<Date>>;
5650
+ paymentMethod: import("@layerfi/components/types/bills").BillPaymentMethod;
5651
+ setPaymentMethod: React.Dispatch<React.SetStateAction<import("@layerfi/components/types/bills").BillPaymentMethod>>;
5652
+ showRecordPaymentForm: boolean;
5653
+ setShowRecordPaymentForm: React.Dispatch<React.SetStateAction<boolean>>;
5654
+ bulkSelectionActive: boolean;
5655
+ openBulkSelection: () => void;
5656
+ closeBulkSelection: () => void;
5657
+ recordPayment: () => Promise<void>;
5658
+ dataSaved: boolean;
5659
+ closeRecordPayment: () => void;
5660
+ clearRecordPaymentSelection: () => void;
5661
+ recordPaymentForBill: (bill: import("@layerfi/components/types").Bill) => void;
5662
+ payRemainingBalance: () => void;
5663
+ isLoading: boolean;
5664
+ apiError: import("@layerfi/components/models/APIError").APIError | undefined;
5665
+ };
5666
+ export const BillsProvider: React.FC<BillsProviderProps>;
5667
+ export {};
5668
+
5185
5669
  }
5186
5670
  declare module '@layerfi/components/contexts/ChartOfAccountsContext/ChartOfAccountsContext' {
5187
5671
  import { useChartOfAccounts } from '@layerfi/components/hooks/useChartOfAccounts/index';
@@ -5425,6 +5909,329 @@ declare module '@layerfi/components/contexts/VendorsContext' {
5425
5909
  export const VendorsProvider: React.FC<VendorsProviderProps>;
5426
5910
  export {};
5427
5911
 
5912
+ }
5913
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/components/BankTransactionTagsAndMemo' {
5914
+ import type { BankTransaction } from '@layerfi/components/types';
5915
+ type BankTransactionTagsAndMemoProps = {
5916
+ bankTransaction: Pick<BankTransaction, 'id' | 'transaction_tags'>;
5917
+ showDescriptions?: boolean;
5918
+ };
5919
+ export function BankTransactionTagsAndMemo({ bankTransaction, showDescriptions, }: BankTransactionTagsAndMemoProps): import("react/jsx-runtime").JSX.Element | null;
5920
+ export {};
5921
+
5922
+ }
5923
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/api/useRemoveTagFromBankTransaction' {
5924
+ type RemoveTagFromBankTransactionArg = {
5925
+ tagId: string;
5926
+ };
5927
+ type RemoveTagFromBankTransactionOptions = {
5928
+ bankTransactionId: string;
5929
+ };
5930
+ export function useRemoveTagFromBankTransaction({ bankTransactionId }: RemoveTagFromBankTransactionOptions): import("swr/mutation").SWRMutationResponse<Record<string, never>, any, () => {
5931
+ readonly accessToken: string;
5932
+ readonly apiUrl: string;
5933
+ readonly businessId: string;
5934
+ readonly bankTransactionId: string;
5935
+ readonly tags: readonly ["#remove-tag-from-bank-transaction"];
5936
+ } | undefined, RemoveTagFromBankTransactionArg>;
5937
+ export {};
5938
+
5939
+ }
5940
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/api/useTagBankTransaction' {
5941
+ type TagBankTransactionArg = {
5942
+ key: string;
5943
+ value: string;
5944
+ };
5945
+ type TagBankTransactionOptions = {
5946
+ bankTransactionId: string;
5947
+ };
5948
+ export function useTagBankTransaction({ bankTransactionId }: TagBankTransactionOptions): import("swr/mutation").SWRMutationResponse<Record<string, never>, any, () => {
5949
+ readonly accessToken: string;
5950
+ readonly apiUrl: string;
5951
+ readonly businessId: string;
5952
+ readonly bankTransactionId: string;
5953
+ readonly tags: readonly ["#tag-bank-transaction"];
5954
+ } | undefined, TagBankTransactionArg>;
5955
+ export {};
5956
+
5957
+ }
5958
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/components/BankTransactionTagSelector' {
5959
+ import type { BankTransaction } from '@layerfi/components/types';
5960
+ type BankTransactionTagSelectorProps = {
5961
+ bankTransaction: Pick<BankTransaction, 'id' | 'transaction_tags'>;
5962
+ };
5963
+ export function BankTransactionTagSelector({ bankTransaction }: BankTransactionTagSelectorProps): import("react/jsx-runtime").JSX.Element;
5964
+ export {};
5965
+
5966
+ }
5967
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/components/BankTransactionTagVisibilityProvider' {
5968
+ import { type PropsWithChildren } from 'react';
5969
+ export function useBankTransactionTagVisibility(): {
5970
+ showTags: boolean;
5971
+ };
5972
+ type BankTransactionTagVisibilityProviderProps = PropsWithChildren<{
5973
+ showTags: boolean;
5974
+ }>;
5975
+ export function BankTransactionTagVisibilityProvider({ children, showTags, }: BankTransactionTagVisibilityProviderProps): import("react/jsx-runtime").JSX.Element;
5976
+ export {};
5977
+
5978
+ }
5979
+ declare module '@layerfi/components/features/customers/api/useListCustomers' {
5980
+ import { type SWRInfiniteResponse } from 'swr/infinite';
5981
+ import { Schema } from 'effect';
5982
+ const ListCustomersRawResultSchema: Schema.Struct<{
5983
+ data: Schema.Array$<Schema.Struct<{
5984
+ id: typeof Schema.UUID;
5985
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
5986
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
5987
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
5988
+ email: Schema.NullOr<typeof Schema.String>;
5989
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
5990
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
5991
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
5992
+ memo: Schema.NullOr<typeof Schema.String>;
5993
+ }>>;
5994
+ meta: Schema.Struct<{
5995
+ pagination: Schema.Struct<{
5996
+ cursor: Schema.NullOr<typeof Schema.String>;
5997
+ hasMore: Schema.PropertySignature<":", boolean, "has_more", ":", boolean, false, never>;
5998
+ }>;
5999
+ }>;
6000
+ }>;
6001
+ type ListCustomersRawResult = typeof ListCustomersRawResultSchema.Type;
6002
+ export const CUSTOMERS_TAG_KEY = "#customers";
6003
+ class ListCustomersSWRResponse {
6004
+ private swrResponse;
6005
+ constructor(swrResponse: SWRInfiniteResponse<ListCustomersRawResult>);
6006
+ get data(): {
6007
+ readonly data: readonly {
6008
+ readonly id: string;
6009
+ readonly memo: string | null;
6010
+ readonly status: "ACTIVE" | "ARCHIVED";
6011
+ readonly email: string | null;
6012
+ readonly externalId: string | null;
6013
+ readonly individualName: string | null;
6014
+ readonly companyName: string | null;
6015
+ readonly mobilePhone: string | null;
6016
+ readonly officePhone: string | null;
6017
+ }[];
6018
+ readonly meta: {
6019
+ readonly pagination: {
6020
+ readonly cursor: string | null;
6021
+ readonly hasMore: boolean;
6022
+ };
6023
+ };
6024
+ }[] | undefined;
6025
+ get isLoading(): boolean;
6026
+ get isValidating(): boolean;
6027
+ get isError(): boolean;
6028
+ }
6029
+ export function useListCustomers(): ListCustomersSWRResponse;
6030
+ export {};
6031
+
6032
+ }
6033
+ declare module '@layerfi/components/features/customers/customersSchemas' {
6034
+ import { Schema } from 'effect';
6035
+ export const CustomerSchema: Schema.Struct<{
6036
+ id: typeof Schema.UUID;
6037
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
6038
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
6039
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
6040
+ email: Schema.NullOr<typeof Schema.String>;
6041
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
6042
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
6043
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
6044
+ memo: Schema.NullOr<typeof Schema.String>;
6045
+ }>;
6046
+
6047
+ }
6048
+ declare module '@layerfi/components/features/tags/api/useTagDimensions' {
6049
+ import { type SWRResponse } from 'swr';
6050
+ import { Schema } from 'effect';
6051
+ const TagDimensionsListSchema: Schema.Array$<Schema.Struct<{
6052
+ id: typeof Schema.UUID;
6053
+ key: typeof Schema.NonEmptyTrimmedString;
6054
+ strictness: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.Literal<["BALANCING", "NON_BALANCING"]>>;
6055
+ definedValues: Schema.PropertySignature<":", readonly {
6056
+ readonly value: string;
6057
+ readonly id: string;
6058
+ }[], "defined_values", ":", readonly {
6059
+ readonly value: string;
6060
+ readonly id: string;
6061
+ }[], false, never>;
6062
+ }>>;
6063
+ class TagDimensionsSWRResponse {
6064
+ private swrResponse;
6065
+ constructor(swrResponse: SWRResponse<typeof TagDimensionsListSchema.Type>);
6066
+ get data(): readonly {
6067
+ readonly id: string;
6068
+ readonly key: string;
6069
+ readonly strictness: "BALANCING" | "NON_BALANCING";
6070
+ readonly definedValues: readonly {
6071
+ readonly value: string;
6072
+ readonly id: string;
6073
+ }[];
6074
+ }[] | undefined;
6075
+ get isLoading(): boolean;
6076
+ get isValidating(): boolean;
6077
+ get isError(): boolean;
6078
+ }
6079
+ type UseTagDimensionsParameters = {
6080
+ isEnabled?: boolean;
6081
+ };
6082
+ export function useTagDimensions({ isEnabled }?: UseTagDimensionsParameters): TagDimensionsSWRResponse;
6083
+ export function usePreloadTagDimensions(parameters?: UseTagDimensionsParameters): void;
6084
+ export {};
6085
+
6086
+ }
6087
+ declare module '@layerfi/components/features/tags/components/TagSelector' {
6088
+ import { Schema } from 'effect';
6089
+ const TagValueSchema: Schema.Data<Schema.Struct<{
6090
+ dimensionId: typeof Schema.UUID;
6091
+ dimensionLabel: typeof Schema.NonEmptyTrimmedString;
6092
+ valueId: typeof Schema.UUID;
6093
+ valueLabel: typeof Schema.NonEmptyTrimmedString;
6094
+ }>>;
6095
+ export const makeTagValue: (i: {
6096
+ readonly dimensionId: string;
6097
+ readonly dimensionLabel: string;
6098
+ readonly valueId: string;
6099
+ readonly valueLabel: string;
6100
+ }, overrideOptions?: import("effect/SchemaAST").ParseOptions) => {
6101
+ readonly dimensionId: string;
6102
+ readonly dimensionLabel: string;
6103
+ readonly valueId: string;
6104
+ readonly valueLabel: string;
6105
+ };
6106
+ export type TagValue = typeof TagValueSchema.Type;
6107
+ const TagSchema: Schema.Data<Schema.Struct<{
6108
+ id: typeof Schema.UUID;
6109
+ dimensionLabel: typeof Schema.NonEmptyTrimmedString;
6110
+ valueLabel: typeof Schema.NonEmptyTrimmedString;
6111
+ _local: Schema.Struct<{
6112
+ isOptimistic: typeof Schema.Boolean;
6113
+ }>;
6114
+ }>>;
6115
+ export const makeTag: (i: {
6116
+ readonly id: string;
6117
+ readonly dimensionLabel: string;
6118
+ readonly valueLabel: string;
6119
+ readonly _local: {
6120
+ readonly isOptimistic: boolean;
6121
+ };
6122
+ }, overrideOptions?: import("effect/SchemaAST").ParseOptions) => {
6123
+ readonly id: string;
6124
+ readonly dimensionLabel: string;
6125
+ readonly valueLabel: string;
6126
+ readonly _local: {
6127
+ readonly isOptimistic: boolean;
6128
+ };
6129
+ };
6130
+ export type Tag = typeof TagSchema.Type;
6131
+ type TagSelectorProps = {
6132
+ selectedTags: ReadonlyArray<Tag>;
6133
+ isReadOnly?: boolean;
6134
+ onAddTag: (tagValue: TagValue) => void;
6135
+ onRemoveTag: (tag: Tag) => void;
6136
+ };
6137
+ export function TagSelector({ selectedTags, isReadOnly, onAddTag, onRemoveTag, }: TagSelectorProps): import("react/jsx-runtime").JSX.Element | null;
6138
+ export {};
6139
+
6140
+ }
6141
+ declare module '@layerfi/components/features/tags/tagSchemas' {
6142
+ import { Schema } from 'effect';
6143
+ export const TagDimensionSchema: Schema.Struct<{
6144
+ id: typeof Schema.UUID;
6145
+ key: typeof Schema.NonEmptyTrimmedString;
6146
+ strictness: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.Literal<["BALANCING", "NON_BALANCING"]>>;
6147
+ definedValues: Schema.PropertySignature<":", readonly {
6148
+ readonly value: string;
6149
+ readonly id: string;
6150
+ }[], "defined_values", ":", readonly {
6151
+ readonly value: string;
6152
+ readonly id: string;
6153
+ }[], false, never>;
6154
+ }>;
6155
+
6156
+ }
6157
+ declare module '@layerfi/components/features/tags/useFlattenedTagValues' {
6158
+ import type { useTagDimensions } from '@layerfi/components/features/tags/api/useTagDimensions';
6159
+ export function useFlattenedTagValues(dimensions: ReturnType<typeof useTagDimensions>['data']): {
6160
+ readonly dimensionId: string;
6161
+ readonly dimensionLabel: string;
6162
+ readonly valueId: string;
6163
+ readonly valueLabel: string;
6164
+ }[];
6165
+
6166
+ }
6167
+ declare module '@layerfi/components/features/vendors/api/useListVendors' {
6168
+ import { type SWRInfiniteResponse } from 'swr/infinite';
6169
+ import { Schema } from 'effect';
6170
+ const ListVendorsRawResultSchema: Schema.Struct<{
6171
+ data: Schema.Array$<Schema.Struct<{
6172
+ id: typeof Schema.UUID;
6173
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
6174
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
6175
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
6176
+ email: Schema.NullOr<typeof Schema.String>;
6177
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
6178
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
6179
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
6180
+ memo: Schema.NullOr<typeof Schema.String>;
6181
+ }>>;
6182
+ meta: Schema.Struct<{
6183
+ pagination: Schema.Struct<{
6184
+ cursor: Schema.NullOr<typeof Schema.String>;
6185
+ hasMore: Schema.PropertySignature<":", boolean, "has_more", ":", boolean, false, never>;
6186
+ }>;
6187
+ }>;
6188
+ }>;
6189
+ type ListVendorsRawResult = typeof ListVendorsRawResultSchema.Type;
6190
+ export const VENDORS_TAG_KEY = "#vendors";
6191
+ class ListVendorsSWRResponse {
6192
+ private swrResponse;
6193
+ constructor(swrResponse: SWRInfiniteResponse<ListVendorsRawResult>);
6194
+ get data(): {
6195
+ readonly data: readonly {
6196
+ readonly id: string;
6197
+ readonly memo: string | null;
6198
+ readonly status: "ACTIVE" | "ARCHIVED";
6199
+ readonly email: string | null;
6200
+ readonly externalId: string | null;
6201
+ readonly individualName: string | null;
6202
+ readonly companyName: string | null;
6203
+ readonly mobilePhone: string | null;
6204
+ readonly officePhone: string | null;
6205
+ }[];
6206
+ readonly meta: {
6207
+ readonly pagination: {
6208
+ readonly cursor: string | null;
6209
+ readonly hasMore: boolean;
6210
+ };
6211
+ };
6212
+ }[] | undefined;
6213
+ get isLoading(): boolean;
6214
+ get isValidating(): boolean;
6215
+ get isError(): boolean;
6216
+ }
6217
+ export function useListVendors(): ListVendorsSWRResponse;
6218
+ export {};
6219
+
6220
+ }
6221
+ declare module '@layerfi/components/features/vendors/vendorsSchemas' {
6222
+ import { Schema } from 'effect';
6223
+ export const VendorSchema: Schema.Struct<{
6224
+ id: typeof Schema.UUID;
6225
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
6226
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
6227
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
6228
+ email: Schema.NullOr<typeof Schema.String>;
6229
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
6230
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
6231
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
6232
+ memo: Schema.NullOr<typeof Schema.String>;
6233
+ }>;
6234
+
5428
6235
  }
5429
6236
  declare module '@layerfi/components/hooks/array/usePaginatedList' {
5430
6237
  export function usePaginatedList<T>(list: ReadonlyArray<T>, pageSize: number): {
@@ -5812,24 +6619,32 @@ declare module '@layerfi/components/hooks/customAccounts/useCreateCustomAccount'
5812
6619
  }
5813
6620
  declare module '@layerfi/components/hooks/customAccounts/useCreateCustomAccountTransactions' {
5814
6621
  import type { RawCustomTransaction } from '@layerfi/components/hooks/customAccounts/types';
6622
+ import { BankTransaction } from '@layerfi/components/types';
6623
+ import { APIError } from '@layerfi/components/models/APIError';
5815
6624
  type CreateCustomAccountTransactionsBody = {
5816
6625
  transactions: RawCustomTransaction[];
5817
6626
  };
5818
6627
  type CreateCustomAccountTransactionsArgs = CreateCustomAccountTransactionsBody & {
5819
6628
  customAccountId: string;
5820
6629
  };
5821
- export function useCreateCustomAccountTransactions(): import("swr/mutation").SWRMutationResponse<unknown, any, () => {
6630
+ function buildKey({ access_token: accessToken, apiUrl, businessId, }: {
6631
+ access_token?: string;
6632
+ apiUrl?: string;
6633
+ businessId: string;
6634
+ }): {
5822
6635
  readonly accessToken: string;
5823
6636
  readonly apiUrl: string;
5824
6637
  readonly businessId: string;
5825
6638
  readonly tags: readonly ["#custom-accounts:create-transactions"];
5826
- } | undefined, CreateCustomAccountTransactionsArgs>;
6639
+ } | null;
6640
+ export function useCreateCustomAccountTransactions(): import("swr/mutation").SWRMutationResponse<BankTransaction[], APIError, () => ReturnType<typeof buildKey>, CreateCustomAccountTransactionsArgs>;
5827
6641
  export {};
5828
6642
 
5829
6643
  }
5830
6644
  declare module '@layerfi/components/hooks/customAccounts/useCustomAccountParseCsv' {
5831
6645
  import type { CustomAccountTransactionRow, RawCustomTransaction } from '@layerfi/components/hooks/customAccounts/types';
5832
6646
  import type { PreviewCsv } from '@layerfi/components/components/CsvUpload/types';
6647
+ import { APIError } from '@layerfi/components/models/APIError';
5833
6648
  type CustomAccountParseCsvArgs = {
5834
6649
  file: File;
5835
6650
  customAccountId: string;
@@ -5840,13 +6655,20 @@ declare module '@layerfi/components/hooks/customAccounts/useCustomAccountParseCs
5840
6655
  transactions: RawCustomTransaction[];
5841
6656
  };
5842
6657
  new_transactions_preview: PreviewCsv<CustomAccountTransactionRow>;
6658
+ invalid_transactions_count: number;
6659
+ total_transactions_count: number;
5843
6660
  };
5844
- export function useCustomAccountParseCsv(): import("swr/mutation").SWRMutationResponse<CustomAccountParseCsvResponse, any, () => {
6661
+ function buildKey({ access_token: accessToken, apiUrl, businessId, }: {
6662
+ access_token?: string;
6663
+ apiUrl?: string;
6664
+ businessId: string;
6665
+ }): {
5845
6666
  readonly accessToken: string;
5846
6667
  readonly apiUrl: string;
5847
6668
  readonly businessId: string;
5848
6669
  readonly tags: readonly ["#custom-accounts:parse-csv"];
5849
- } | undefined, CustomAccountParseCsvArgs>;
6670
+ } | undefined;
6671
+ export function useCustomAccountParseCsv(): import("swr/mutation").SWRMutationResponse<CustomAccountParseCsvResponse, APIError, () => ReturnType<typeof buildKey>, CustomAccountParseCsvArgs>;
5850
6672
  export {};
5851
6673
 
5852
6674
  }
@@ -5854,6 +6676,10 @@ declare module '@layerfi/components/hooks/customAccounts/useCustomAccounts' {
5854
6676
  export const CUSTOM_ACCOUNTS_TAG_KEY = "#custom-accounts";
5855
6677
  export function useCustomAccounts(): import("swr").SWRResponse<import("./types").CustomAccount[], any, any>;
5856
6678
 
6679
+ }
6680
+ declare module '@layerfi/components/hooks/ref/useStopClickEventsRef' {
6681
+ export function useStopClickEventsRefCallback(): (element: HTMLElement | null) => void;
6682
+
5857
6683
  }
5858
6684
  declare module '@layerfi/components/hooks/useAuth' {
5859
6685
  export function useAuth(): import("swr").SWRResponse<{
@@ -5935,6 +6761,7 @@ declare module '@layerfi/components/hooks/useBankTransactions/useAugmentedBankTr
5935
6761
  }
5936
6762
  declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactions' {
5937
6763
  import { type GetBankTransactionsReturn } from '@layerfi/components/api/layer/bankTransactions';
6764
+ import type { BankTransaction } from '@layerfi/components/types';
5938
6765
  export const BANK_TRANSACTIONS_TAG_KEY = "#bank-transactions";
5939
6766
  export type UseBankTransactionsOptions = {
5940
6767
  categorized?: boolean;
@@ -5945,6 +6772,12 @@ declare module '@layerfi/components/hooks/useBankTransactions/useBankTransaction
5945
6772
  tagFilterQueryString?: string;
5946
6773
  };
5947
6774
  export function useBankTransactions({ categorized, descriptionFilter, direction, startDate, endDate, tagFilterQueryString, }: UseBankTransactionsOptions): import("swr/infinite").SWRInfiniteResponse<GetBankTransactionsReturn, any>;
6775
+ export function useBankTransactionsInvalidator(): {
6776
+ invalidateBankTransactions: () => Promise<undefined[]>;
6777
+ };
6778
+ export function useBankTransactionsOptimisticUpdater(): {
6779
+ optimisticallyUpdateBankTransactions: (transformTransaction: (txn: BankTransaction) => BankTransaction) => Promise<undefined[]>;
6780
+ };
5948
6781
 
5949
6782
  }
5950
6783
  declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactionsDownload' {
@@ -6028,6 +6861,39 @@ declare module '@layerfi/components/hooks/useBankTransactions/utils' {
6028
6861
  export const applyAccountFilter: (data?: BankTransaction[], filter?: string[]) => BankTransaction[] | undefined;
6029
6862
  export const applyCategorizationStatusFilter: (data?: BankTransaction[], filter?: DisplayState) => BankTransaction[] | undefined;
6030
6863
 
6864
+ }
6865
+ declare module '@layerfi/components/hooks/useBills' {
6866
+ import { Bill } from '@layerfi/components/types/bills';
6867
+ import { DateRange, Metadata } from '@layerfi/components/types';
6868
+ import { Vendor } from '@layerfi/components/types/vendors';
6869
+ export type BillStatusFilter = 'PAID' | 'UNPAID';
6870
+ type UseBills = () => {
6871
+ data: Bill[];
6872
+ paginatedData: Bill[];
6873
+ currentPage: number;
6874
+ setCurrentPage: (page: number) => void;
6875
+ pageSize: number;
6876
+ metadata?: Metadata;
6877
+ billInDetails?: Bill;
6878
+ openBillDetails: (bill?: Bill) => void;
6879
+ showBillInDetails: boolean;
6880
+ closeBillDetails: () => void;
6881
+ status: BillStatusFilter;
6882
+ setStatus: (status: BillStatusFilter) => void;
6883
+ dateRange: DateRange;
6884
+ setDateRange: (dateRange: DateRange) => void;
6885
+ vendor: Vendor | null;
6886
+ setVendor: (vendor: Vendor | null) => void;
6887
+ fetchMore: () => void;
6888
+ hasMore: boolean;
6889
+ isLoading: boolean;
6890
+ isValidating: boolean;
6891
+ error?: Error;
6892
+ refetch: () => void;
6893
+ };
6894
+ export const useBills: UseBills;
6895
+ export {};
6896
+
6031
6897
  }
6032
6898
  declare module '@layerfi/components/hooks/useChartOfAccounts/index' {
6033
6899
  export { useChartOfAccounts } from '@layerfi/components/hooks/useChartOfAccounts/useChartOfAccounts';
@@ -6969,7 +7835,7 @@ declare module '@layerfi/components/index' {
6969
7835
  export { Onboarding } from '@layerfi/components/components/Onboarding/index';
6970
7836
  export { LinkedAccounts } from '@layerfi/components/components/LinkedAccounts/index';
6971
7837
  export { UploadTransactions as unstable_UploadTransactions } from '@layerfi/components/components/UploadTransactions/UploadTransactions';
6972
- export { BankTransactions } from '@layerfi/components/components/BankTransactions/index';
7838
+ export { BankTransactions } from '@layerfi/components/components/BankTransactions/BankTransactions';
6973
7839
  export { Integrations } from '@layerfi/components/components/Integrations/Integrations';
6974
7840
  export { ProfitAndLoss } from '@layerfi/components/components/ProfitAndLoss/index';
6975
7841
  export { BalanceSheet } from '@layerfi/components/components/BalanceSheet/index';
@@ -6985,6 +7851,7 @@ declare module '@layerfi/components/index' {
6985
7851
  export { BankTransactionsWithLinkedAccounts } from '@layerfi/components/views/BankTransactionsWithLinkedAccounts/index';
6986
7852
  export { GeneralLedgerView } from '@layerfi/components/views/GeneralLedger/index';
6987
7853
  export { ProjectProfitabilityView } from '@layerfi/components/views/ProjectProfitability/index';
7854
+ export { unstable_BillsView } from '@layerfi/components/views/Bills';
6988
7855
  export { Reports } from '@layerfi/components/views/Reports/index';
6989
7856
  export { ProfitAndLossView } from '@layerfi/components/components/ProfitAndLossView/index';
6990
7857
  export { useLayerContext } from '@layerfi/components/contexts/LayerContext/index';
@@ -7288,6 +8155,10 @@ declare module '@layerfi/components/providers/ReceiptsProvider/ReceiptsProvider'
7288
8155
  declare module '@layerfi/components/providers/ReceiptsProvider/index' {
7289
8156
  export { ReceiptsProvider } from '@layerfi/components/providers/ReceiptsProvider/ReceiptsProvider';
7290
8157
 
8158
+ }
8159
+ declare module '@layerfi/components/public/styles/publicClassname' {
8160
+ export const PUBLIC_CLASSNAME = "Layer__Public";
8161
+
7291
8162
  }
7292
8163
  declare module '@layerfi/components/types/api' {
7293
8164
  export interface PaginationMetadata {
@@ -7329,6 +8200,7 @@ declare module '@layerfi/components/types/balance_sheet' {
7329
8200
  declare module '@layerfi/components/types/bank_transactions' {
7330
8201
  import { Categorization, CategorizationStatus, Category } from '@layerfi/components/types/categories';
7331
8202
  import { S3PresignedUrl } from '@layerfi/components/types/general';
8203
+ import type { TransactionTag } from '@layerfi/components/types/tags';
7332
8204
  export enum Direction {
7333
8205
  CREDIT = "CREDIT",
7334
8206
  DEBIT = "DEBIT"
@@ -7373,6 +8245,7 @@ declare module '@layerfi/components/types/bank_transactions' {
7373
8245
  suggested_matches?: SuggestedMatch[];
7374
8246
  match?: BankTransactionMatch;
7375
8247
  document_ids: string[];
8248
+ transaction_tags: ReadonlyArray<TransactionTag>;
7376
8249
  }
7377
8250
  export interface SuggestedMatch {
7378
8251
  id: string;
@@ -7413,9 +8286,10 @@ declare module '@layerfi/components/types/bills' {
7413
8286
  const UNPAID_STATUS_MAP: {
7414
8287
  readonly SENT: "SENT";
7415
8288
  readonly PARTIALLY_PAID: "PARTIALLY_PAID";
8289
+ readonly RECEIVED: "RECEIVED";
7416
8290
  };
7417
8291
  export type UnpaidStatuses = typeof UNPAID_STATUS_MAP[keyof typeof UNPAID_STATUS_MAP];
7418
- export const UNPAID_STATUSES: ("SENT" | "PARTIALLY_PAID")[];
8292
+ export const UNPAID_STATUSES: ("SENT" | "PARTIALLY_PAID" | "RECEIVED")[];
7419
8293
  const PAID_STATUS_MAP: {
7420
8294
  readonly PAID: "PAID";
7421
8295
  };
@@ -7427,7 +8301,7 @@ declare module '@layerfi/components/types/bills' {
7427
8301
  export type VoidedStatuses = typeof VOIDED_STATUS_MAP[keyof typeof VOIDED_STATUS_MAP];
7428
8302
  export const VOIDED_STATUS: "VOIDED";
7429
8303
  export type BillStatus = UnpaidStatuses | PaidStatuses | VoidedStatuses;
7430
- type BillTerm = 'DUE_ON_RECEIPT' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_60';
8304
+ export type BillTerm = 'DUE_ON_RECEIPT' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_60';
7431
8305
  export const BillTerms: {
7432
8306
  id: BillTerm;
7433
8307
  label: string;
@@ -7480,7 +8354,7 @@ declare module '@layerfi/components/types/bills' {
7480
8354
  amount: number;
7481
8355
  transaction_tags: TransactionTag[];
7482
8356
  };
7483
- type SalesTax = {
8357
+ export type SalesTax = {
7484
8358
  amount: number;
7485
8359
  tax_account: TaxAccount;
7486
8360
  };
@@ -7739,6 +8613,7 @@ declare module '@layerfi/components/types/general' {
7739
8613
  BANK_TRANSACTIONS = "BANK_TRANSACTIONS",
7740
8614
  CHART_OF_ACCOUNTS = "CHART_OF_ACCOUNTS",
7741
8615
  JOURNAL = "JOURNAL",
8616
+ BILLS = "BILLS",
7742
8617
  LEDGER_ACCOUNTS = "LEDGER_ACCOUNTS",
7743
8618
  LINKED_ACCOUNTS = "LINKED_ACCOUNTS",
7744
8619
  PROFIT_AND_LOSS = "PROFIT_AND_LOSS",
@@ -8489,6 +9364,9 @@ declare module '@layerfi/components/types/tags' {
8489
9364
  created_at: string;
8490
9365
  updated_at: string;
8491
9366
  deleted_at?: string;
9367
+ _local?: {
9368
+ isOptimistic: boolean;
9369
+ };
8492
9370
  };
8493
9371
  export type TagFilterInput = {
8494
9372
  tagKey: string;
@@ -8553,7 +9431,7 @@ declare module '@layerfi/components/types/utility/enumWithUnknownValues' {
8553
9431
  }
8554
9432
  declare module '@layerfi/components/types/utility/oneOf' {
8555
9433
  type OnlyFirst<First, Second> = First & {
8556
- [Key in keyof Omit<Second, keyof First>]: never;
9434
+ [Key in keyof Omit<Second, keyof First>]?: never;
8557
9435
  };
8558
9436
  type MergeTypes<Types extends Array<unknown>, Result = Record<never, never>> = Types extends [infer Head, ...infer Remaining] ? MergeTypes<Remaining, Result & Head> : Result;
8559
9437
  export type OneOf<Types extends Array<unknown>, Result = never, AllProperties = MergeTypes<Types>> = Types extends [infer Head, ...infer Remaining] ? OneOf<Remaining, Result | OnlyFirst<Head, AllProperties>, AllProperties> : Result;
@@ -8595,6 +9473,7 @@ declare module '@layerfi/components/types' {
8595
9473
  export { LedgerAccountLineItems as LedgerAccounts, LedgerAccountLineItem, LedgerAccountsAccount, LedgerAccountsEntry, } from '@layerfi/components/types/ledger_accounts';
8596
9474
  export { SortDirection } from '@layerfi/components/types/general';
8597
9475
  export { Business } from '@layerfi/components/types/business';
9476
+ export { Bill } from '@layerfi/components/types/bills';
8598
9477
  export interface FormError {
8599
9478
  field: string;
8600
9479
  message: string;
@@ -8749,7 +9628,7 @@ declare module '@layerfi/components/utils/delay/runDelayed' {
8749
9628
 
8750
9629
  }
8751
9630
  declare module '@layerfi/components/utils/form' {
8752
- export const notEmpty: (value?: string) => boolean;
9631
+ export const notEmpty: (value?: string | null) => boolean;
8753
9632
  export const validateEmailFormat: (email?: string, required?: boolean) => boolean;
8754
9633
 
8755
9634
  }
@@ -8881,6 +9760,15 @@ declare module '@layerfi/components/utils/swr/defaultSWRConfig' {
8881
9760
  readonly revalidateIfStale: false;
8882
9761
  };
8883
9762
 
9763
+ }
9764
+ declare module '@layerfi/components/utils/swr/useGlobalInvalidator' {
9765
+ export function useGlobalInvalidator(): {
9766
+ invalidate: (predicate: (tags: ReadonlyArray<string>) => boolean) => Promise<undefined[]>;
9767
+ };
9768
+ export function useGlobalOptimisticUpdater(): {
9769
+ optimisticUpdate: <unsafe_TData>(predicate: (tags: ReadonlyArray<string>) => boolean, optimisticUpdateCallback: (displayedData: unsafe_TData) => unsafe_TData) => Promise<undefined[]>;
9770
+ };
9771
+
8884
9772
  }
8885
9773
  declare module '@layerfi/components/utils/swr/withSWRKeyTags' {
8886
9774
  export function withSWRKeyTags(key: unknown, predicate: (tags: ReadonlyArray<string>) => boolean): boolean;
@@ -8961,7 +9849,7 @@ declare module '@layerfi/components/views/AccountingOverview/internal/Transactio
8961
9849
 
8962
9850
  }
8963
9851
  declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts' {
8964
- import { BankTransactionsStringOverrides } from '@layerfi/components/components/BankTransactions/BankTransactions';
9852
+ import { type BankTransactionsStringOverrides } from '@layerfi/components/components/BankTransactions/BankTransactions';
8965
9853
  import { BankTransactionsMode } from '@layerfi/components/providers/LegacyModeProvider/LegacyModeProvider';
8966
9854
  import { MobileComponentType } from '@layerfi/components/components/BankTransactions/constants';
8967
9855
  interface BankTransactionsWithLinkedAccountsStringOverrides {
@@ -8973,12 +9861,13 @@ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/Ban
8973
9861
  title?: string;
8974
9862
  showTitle?: boolean;
8975
9863
  elevatedLinkedAccounts?: boolean;
8976
- showLedgerBalance?: boolean;
8977
- showUnlinkItem?: boolean;
8978
9864
  showBreakConnection?: boolean;
8979
9865
  showDescriptions?: boolean;
9866
+ showLedgerBalance?: boolean;
8980
9867
  showReceiptUploads?: boolean;
9868
+ showTags?: boolean;
8981
9869
  showTooltips?: boolean;
9870
+ showUnlinkItem?: boolean;
8982
9871
  /**
8983
9872
  * @deprecated `mode` can be inferred from the bookkeeping configuration of a business
8984
9873
  */
@@ -8986,13 +9875,29 @@ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/Ban
8986
9875
  mobileComponent?: MobileComponentType;
8987
9876
  stringOverrides?: BankTransactionsWithLinkedAccountsStringOverrides;
8988
9877
  }
8989
- export const BankTransactionsWithLinkedAccounts: ({ title, showTitle, elevatedLinkedAccounts, showLedgerBalance, showUnlinkItem, showBreakConnection, mode, showDescriptions, showReceiptUploads, showTooltips, mobileComponent, stringOverrides, }: BankTransactionsWithLinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
9878
+ export const BankTransactionsWithLinkedAccounts: ({ title, showTitle, elevatedLinkedAccounts, mode, showBreakConnection, showDescriptions, showLedgerBalance, showReceiptUploads, showTags, showTooltips, showUnlinkItem, mobileComponent, stringOverrides, }: BankTransactionsWithLinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
8990
9879
  export {};
8991
9880
 
8992
9881
  }
8993
9882
  declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/index' {
8994
9883
  export { BankTransactionsWithLinkedAccounts } from '@layerfi/components/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts';
8995
9884
 
9885
+ }
9886
+ declare module '@layerfi/components/views/Bills' {
9887
+ export type BillsStringOverrides = {
9888
+ title?: string;
9889
+ paidToggleOption?: string;
9890
+ unpaidToggleOption?: string;
9891
+ };
9892
+ export type ChartOfAccountsOptions = {
9893
+ templateAccountsEditable?: boolean;
9894
+ };
9895
+ export type BillsViewProps = {
9896
+ showTitle?: boolean;
9897
+ stringOverrides?: BillsStringOverrides;
9898
+ };
9899
+ export const unstable_BillsView: (props: BillsViewProps) => import("react/jsx-runtime").JSX.Element;
9900
+
8996
9901
  }
8997
9902
  declare module '@layerfi/components/views/BookkeepingOverview/BookkeepingOverview' {
8998
9903
  import { ProfitAndLossDetailedChartsStringOverrides } from '@layerfi/components/components/ProfitAndLossDetailedCharts/ProfitAndLossDetailedCharts';