@layerfi/components 0.1.10 → 0.1.11

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
@@ -27,6 +27,10 @@ declare module '@layerfi/components/api/layer/authenticated_http' {
27
27
  params?: Params | undefined;
28
28
  body?: Body_1 | undefined;
29
29
  } | undefined) => Promise<Return>;
30
+ export const deleteRequest: <Return extends Record<string, unknown> = Record<string, unknown>, Body_1 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?: {
31
+ params?: Params | undefined;
32
+ body?: Body_1 | undefined;
33
+ } | undefined) => Promise<Return>;
30
34
 
31
35
  }
32
36
  declare module '@layerfi/components/api/layer/balance_sheet' {
@@ -87,12 +91,12 @@ declare module '@layerfi/components/api/layer/categories' {
87
91
  }>;
88
92
 
89
93
  }
90
- declare module '@layerfi/components/api/layer/ledger_accounts' {
91
- import { Account, LedgerAccounts, NewAccount, EditAccount } from '@layerfi/components/types';
92
- export const getLedgerAccounts: (baseUrl: string, accessToken: string | undefined, options?: {
94
+ declare module '@layerfi/components/api/layer/chart_of_accounts' {
95
+ import { Account, ChartOfAccounts, NewAccount, EditAccount, LedgerAccounts, LedgerAccountsEntry } from '@layerfi/components/types';
96
+ export const getChartOfAccounts: (baseUrl: string, accessToken: string | undefined, options?: {
93
97
  params?: Record<string, string | undefined> | undefined;
94
98
  } | undefined) => () => Promise<{
95
- data: LedgerAccounts;
99
+ data: ChartOfAccounts;
96
100
  }>;
97
101
  export const createAccount: (baseUrl: string, accessToken: string | undefined, options?: {
98
102
  params?: Record<string, string | undefined> | undefined;
@@ -106,15 +110,55 @@ declare module '@layerfi/components/api/layer/ledger_accounts' {
106
110
  } | undefined) => Promise<{
107
111
  data: Account;
108
112
  }>;
113
+ export const getLedgerAccountsLines: (baseUrl: string, accessToken: string | undefined, options?: {
114
+ params?: Record<string, string | undefined> | undefined;
115
+ } | undefined) => () => Promise<{
116
+ data: LedgerAccounts;
117
+ }>;
118
+ export const getLedgerAccountsEntry: (baseUrl: string, accessToken: string | undefined, options?: {
119
+ params?: Record<string, string | undefined> | undefined;
120
+ } | undefined) => () => Promise<{
121
+ data: LedgerAccountsEntry;
122
+ }>;
109
123
 
110
124
  }
111
125
  declare module '@layerfi/components/api/layer/linked_accounts' {
112
- import { LinkedAccounts } from '@layerfi/components/types/linked_accounts';
126
+ import { LinkedAccounts, PublicToken } from '@layerfi/components/types/linked_accounts';
113
127
  export const getLinkedAccounts: (baseUrl: string, accessToken: string | undefined, options?: {
114
128
  params?: Record<string, string | undefined> | undefined;
115
129
  } | undefined) => () => Promise<{
116
130
  data: LinkedAccounts;
117
131
  }>;
132
+ export const getPlaidLinkToken: (baseUrl: string, accessToken: string | undefined, options?: {
133
+ params?: Record<string, string | undefined> | undefined;
134
+ body?: Record<string, unknown> | undefined;
135
+ } | undefined) => Promise<{
136
+ data: {
137
+ type: 'Link_Token';
138
+ link_token: string;
139
+ };
140
+ }>;
141
+ export const exchangePlaidPublicToken: (baseUrl: string, accessToken: string | undefined, options?: {
142
+ params?: Record<string, string | undefined> | undefined;
143
+ body?: PublicToken | undefined;
144
+ } | undefined) => Promise<Record<string, unknown>>;
145
+ /**
146
+ * This is named per plaid terminology. It means unlinking an institution
147
+ */
148
+ export const unlinkPlaidItem: (baseUrl: string, accessToken: string | undefined, options?: {
149
+ params?: {
150
+ businessId: string;
151
+ plaidItemId: string;
152
+ } | undefined;
153
+ body?: Record<string, unknown> | undefined;
154
+ } | undefined) => Promise<Record<string, unknown>>;
155
+ export const unlinkPlaidAccount: (baseUrl: string, accessToken: string | undefined, options?: {
156
+ params?: {
157
+ businessId: string;
158
+ accountId: string;
159
+ } | undefined;
160
+ body?: Record<string, unknown> | undefined;
161
+ } | undefined) => Promise<Record<string, unknown>>;
118
162
 
119
163
  }
120
164
  declare module '@layerfi/components/api/layer/profit_and_loss' {
@@ -178,11 +222,21 @@ declare module '@layerfi/components/api/layer' {
178
222
  categories: import("@layerfi/components/types").Category[];
179
223
  };
180
224
  }>;
181
- getLedgerAccounts: (baseUrl: string, accessToken: string | undefined, options?: {
225
+ getChartOfAccounts: (baseUrl: string, accessToken: string | undefined, options?: {
226
+ params?: Record<string, string | undefined> | undefined;
227
+ } | undefined) => () => Promise<{
228
+ data: import("@layerfi/components/types").ChartOfAccounts;
229
+ }>;
230
+ getLedgerAccountsLines: (baseUrl: string, accessToken: string | undefined, options?: {
182
231
  params?: Record<string, string | undefined> | undefined;
183
232
  } | undefined) => () => Promise<{
184
233
  data: import("@layerfi/components/types").LedgerAccounts;
185
234
  }>;
235
+ getLedgerAccountsEntry: (baseUrl: string, accessToken: string | undefined, options?: {
236
+ params?: Record<string, string | undefined> | undefined;
237
+ } | undefined) => () => Promise<{
238
+ data: import("@layerfi/components/types").LedgerAccountsEntry;
239
+ }>;
186
240
  getProfitAndLoss: (baseUrl: string, accessToken: string | undefined, options?: {
187
241
  params?: Record<string, string | undefined> | undefined;
188
242
  } | undefined) => () => Promise<{
@@ -194,21 +248,39 @@ declare module '@layerfi/components/api/layer' {
194
248
  } | undefined) => () => Promise<{
195
249
  data: import("@layerfi/components/types/linked_accounts").LinkedAccounts;
196
250
  }>;
251
+ getPlaidLinkToken: (baseUrl: string, accessToken: string | undefined, options?: {
252
+ params?: Record<string, string | undefined> | undefined;
253
+ body?: Record<string, unknown> | undefined;
254
+ } | undefined) => Promise<{
255
+ data: {
256
+ type: "Link_Token";
257
+ link_token: string;
258
+ };
259
+ }>;
260
+ exchangePlaidPublicToken: (baseUrl: string, accessToken: string | undefined, options?: {
261
+ params?: Record<string, string | undefined> | undefined;
262
+ body?: import("@layerfi/components/types/linked_accounts").PublicToken | undefined;
263
+ } | undefined) => Promise<Record<string, unknown>>;
264
+ unlinkPlaidAccount: (baseUrl: string, accessToken: string | undefined, options?: {
265
+ params?: {
266
+ businessId: string;
267
+ accountId: string;
268
+ } | undefined;
269
+ body?: Record<string, unknown> | undefined;
270
+ } | undefined) => Promise<Record<string, unknown>>;
271
+ unlinkPlaidItem: (baseUrl: string, accessToken: string | undefined, options?: {
272
+ params?: {
273
+ businessId: string;
274
+ plaidItemId: string;
275
+ } | undefined;
276
+ body?: Record<string, unknown> | undefined;
277
+ } | undefined) => Promise<Record<string, unknown>>;
197
278
  };
198
279
 
199
280
  }
200
281
  declare module '@layerfi/components/api/util' {
201
282
  export const formStringFromObject: (object: Record<string, string | number | boolean>) => string;
202
283
 
203
- }
204
- declare module '@layerfi/components/components/AccountsReceivable/AccountsReceivableIndex' {
205
- import React from 'react';
206
- export const AccountsReceivable: () => React.JSX.Element;
207
-
208
- }
209
- declare module '@layerfi/components/components/AccountsReceivable/index' {
210
- export { AccountsReceivable } from '@layerfi/components/components/AccountsReceivable/AccountsReceivableIndex';
211
-
212
284
  }
213
285
  declare module '@layerfi/components/components/Badge/Badge' {
214
286
  import React, { ReactNode } from 'react';
@@ -217,18 +289,27 @@ declare module '@layerfi/components/components/Badge/Badge' {
217
289
  SMALL = "small",
218
290
  MEDIUM = "medium"
219
291
  }
292
+ export enum BadgeVariant {
293
+ DEFAULT = "default",
294
+ SUCCESS = "success",
295
+ WARNING = "warning",
296
+ ERROR = "error"
297
+ }
220
298
  export interface BadgeProps {
221
299
  children: ReactNode;
222
300
  icon?: ReactNode;
223
301
  onClick?: ButtonProps['onClick'];
224
302
  tooltip?: ReactNode;
225
303
  size?: BadgeSize;
304
+ variant?: BadgeVariant;
305
+ hoverable?: boolean;
226
306
  }
227
- export const Badge: ({ icon, onClick, children, tooltip, size, }: BadgeProps) => React.JSX.Element;
307
+ export const Badge: ({ icon, onClick, children, tooltip, size, variant, hoverable, }: BadgeProps) => React.JSX.Element;
228
308
 
229
309
  }
230
310
  declare module '@layerfi/components/components/Badge/index' {
231
311
  export { Badge } from '@layerfi/components/components/Badge/Badge';
312
+ export { BadgeVariant } from '@layerfi/components/components/Badge/Badge';
232
313
 
233
314
  }
234
315
  declare module '@layerfi/components/components/BalanceSheet/BalanceSheet' {
@@ -435,6 +516,19 @@ declare module '@layerfi/components/components/Button/index' {
435
516
  export { TextButton } from '@layerfi/components/components/Button/TextButton';
436
517
  export { BackButton } from '@layerfi/components/components/Button/BackButton';
437
518
 
519
+ }
520
+ declare module '@layerfi/components/components/Card/Card' {
521
+ import React, { ReactNode } from 'react';
522
+ export interface CardProps {
523
+ children: ReactNode;
524
+ className?: string;
525
+ }
526
+ export const Card: ({ children, className }: CardProps) => React.JSX.Element;
527
+
528
+ }
529
+ declare module '@layerfi/components/components/Card/index' {
530
+ export { Card } from '@layerfi/components/components/Card/Card';
531
+
438
532
  }
439
533
  declare module '@layerfi/components/components/CategorySelect/CategorySelect' {
440
534
  import React from 'react';
@@ -479,6 +573,121 @@ declare module '@layerfi/components/components/CategorySelect/CategorySelect' {
479
573
  declare module '@layerfi/components/components/CategorySelect/index' {
480
574
  export { CategorySelect } from '@layerfi/components/components/CategorySelect/CategorySelect';
481
575
 
576
+ }
577
+ declare module '@layerfi/components/components/ChartOfAccounts/ChartOfAccounts' {
578
+ import React from 'react';
579
+ import { useChartOfAccounts } from '@layerfi/components/hooks/useChartOfAccounts/index';
580
+ import { useLedgerAccounts } from '@layerfi/components/hooks/useLedgerAccounts/index';
581
+ export type View = 'mobile' | 'tablet' | 'desktop';
582
+ export interface ChartOfAccountsProps {
583
+ asWidget?: boolean;
584
+ }
585
+ export type ChartOfAccountsContextType = ReturnType<typeof useChartOfAccounts>;
586
+ export const ChartOfAccountsContext: React.Context<{
587
+ data: import("@layerfi/components/types").ChartOfAccounts | undefined;
588
+ isLoading?: boolean | undefined;
589
+ isValidating?: boolean | undefined;
590
+ error?: unknown;
591
+ refetch: () => void;
592
+ create: (newAccount: import("@layerfi/components/types").NewAccount) => void;
593
+ form?: import("@layerfi/components/hooks/useChartOfAccounts/useChartOfAccounts").ChartOfAccountsForm | undefined;
594
+ sendingForm?: boolean | undefined;
595
+ apiError?: string | undefined;
596
+ addAccount: () => void;
597
+ editAccount: (id: string) => void;
598
+ cancelForm: () => void;
599
+ changeFormData: (name: string, value: string | import("@layerfi/components/types/general").BaseSelectOption | undefined) => void;
600
+ submitForm: () => void;
601
+ }>;
602
+ export type LedgerAccountsContextType = ReturnType<typeof useLedgerAccounts>;
603
+ export const LedgerAccountsContext: React.Context<{
604
+ data?: import("@layerfi/components/types").LedgerAccounts | undefined;
605
+ entryData?: import("@layerfi/components/types").LedgerAccountsEntry | undefined;
606
+ isLoading?: boolean | undefined;
607
+ isLoadingEntry?: boolean | undefined;
608
+ isValidating?: boolean | undefined;
609
+ isValidatingEntry?: boolean | undefined;
610
+ error?: unknown;
611
+ errorEntry?: unknown;
612
+ refetch: () => void;
613
+ accountId?: string | undefined;
614
+ setAccountId: (id?: string | undefined) => void;
615
+ selectedEntryId?: string | undefined;
616
+ setSelectedEntryId: (id?: string | undefined) => void;
617
+ closeSelectedEntry: () => void;
618
+ }>;
619
+ export const ChartOfAccounts: (props: ChartOfAccountsProps) => React.JSX.Element;
620
+
621
+ }
622
+ declare module '@layerfi/components/components/ChartOfAccounts/index' {
623
+ export { ChartOfAccounts, ChartOfAccountsContext, LedgerAccountsContext, View, } from '@layerfi/components/components/ChartOfAccounts/ChartOfAccounts';
624
+
625
+ }
626
+ declare module '@layerfi/components/components/ChartOfAccountsForm/ChartOfAccountsForm' {
627
+ import React from 'react';
628
+ export const ChartOfAccountsForm: () => React.JSX.Element | undefined;
629
+
630
+ }
631
+ declare module '@layerfi/components/components/ChartOfAccountsForm/constants' {
632
+ import { BaseSelectOption } from '@layerfi/components/types/general';
633
+ export const SUB_TYPE_OPTIONS: BaseSelectOption[];
634
+
635
+ }
636
+ declare module '@layerfi/components/components/ChartOfAccountsForm/index' {
637
+ export { ChartOfAccountsForm } from '@layerfi/components/components/ChartOfAccountsForm/ChartOfAccountsForm';
638
+
639
+ }
640
+ declare module '@layerfi/components/components/ChartOfAccountsForm/useParentOptions' {
641
+ import { ChartOfAccounts } from '@layerfi/components/types';
642
+ import { BaseSelectOption } from '@layerfi/components/types/general';
643
+ export const useParentOptions: (data?: ChartOfAccounts) => BaseSelectOption[];
644
+
645
+ }
646
+ declare module '@layerfi/components/components/ChartOfAccountsRow/ChartOfAccountsRow' {
647
+ import React from 'react';
648
+ import { Account } from '@layerfi/components/types';
649
+ import { View } from '@layerfi/components/components/ChartOfAccounts/ChartOfAccounts';
650
+ type ChartOfAccountsRowProps = {
651
+ account: Account;
652
+ depth?: number;
653
+ index: number;
654
+ cumulativeIndex?: number;
655
+ expanded: boolean;
656
+ acountsLength: number;
657
+ defaultOpen?: boolean;
658
+ view?: View;
659
+ };
660
+ export const ChartOfAccountsRow: ({ account, depth, index, cumulativeIndex, expanded, defaultOpen, acountsLength, view, }: ChartOfAccountsRowProps) => React.JSX.Element;
661
+ export {};
662
+
663
+ }
664
+ declare module '@layerfi/components/components/ChartOfAccountsRow/index' {
665
+ export { ChartOfAccountsRow } from '@layerfi/components/components/ChartOfAccountsRow/ChartOfAccountsRow';
666
+
667
+ }
668
+ declare module '@layerfi/components/components/ChartOfAccountsSidebar/ChartOfAccountsSidebar' {
669
+ import React, { RefObject } from 'react';
670
+ export const ChartOfAccountsSidebar: ({ parentRef: _parentRef, }: {
671
+ parentRef?: RefObject<HTMLDivElement>;
672
+ }) => React.JSX.Element;
673
+
674
+ }
675
+ declare module '@layerfi/components/components/ChartOfAccountsSidebar/index' {
676
+ export { ChartOfAccountsSidebar } from '@layerfi/components/components/ChartOfAccountsSidebar/ChartOfAccountsSidebar';
677
+
678
+ }
679
+ declare module '@layerfi/components/components/ChartOfAccountsTable/ChartOfAccountsTable' {
680
+ import React, { RefObject } from 'react';
681
+ import { View } from '@layerfi/components/components/ChartOfAccounts/index';
682
+ export const ChartOfAccountsTable: ({ view, containerRef, }: {
683
+ view: View;
684
+ containerRef: RefObject<HTMLDivElement>;
685
+ }) => React.JSX.Element;
686
+
687
+ }
688
+ declare module '@layerfi/components/components/ChartOfAccountsTable/index' {
689
+ export { ChartOfAccountsTable } from '@layerfi/components/components/ChartOfAccountsTable/ChartOfAccountsTable';
690
+
482
691
  }
483
692
  declare module '@layerfi/components/components/Container/Container' {
484
693
  import React, { ReactNode } from 'react';
@@ -486,6 +695,7 @@ declare module '@layerfi/components/components/Container/Container' {
486
695
  name: string;
487
696
  className?: string;
488
697
  asWidget?: boolean;
698
+ elevated?: boolean;
489
699
  children: ReactNode;
490
700
  }
491
701
  export const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>;
@@ -526,6 +736,50 @@ declare module '@layerfi/components/components/DataState/DataState' {
526
736
  declare module '@layerfi/components/components/DataState/index' {
527
737
  export { DataState, DataStateStatus } from '@layerfi/components/components/DataState/DataState';
528
738
 
739
+ }
740
+ declare module '@layerfi/components/components/DateTime/DateTime' {
741
+ import React from 'react';
742
+ interface DateTimeProps {
743
+ value: string;
744
+ format?: string;
745
+ dateFormat?: string;
746
+ timeFormat?: string;
747
+ onlyDate?: boolean;
748
+ onlyTime?: boolean;
749
+ }
750
+ export const DateTime: ({ value, format, dateFormat, timeFormat, onlyDate, onlyTime, }: DateTimeProps) => React.JSX.Element;
751
+ export {};
752
+
753
+ }
754
+ declare module '@layerfi/components/components/DateTime/index' {
755
+ export { DateTime } from '@layerfi/components/components/DateTime/DateTime';
756
+
757
+ }
758
+ declare module '@layerfi/components/components/DetailsList/DetailsList' {
759
+ import React, { ReactNode } from 'react';
760
+ export interface DetailsListProps {
761
+ title?: string;
762
+ className?: string;
763
+ children: ReactNode;
764
+ actions?: ReactNode;
765
+ }
766
+ export const DetailsList: ({ title, children, className, actions, }: DetailsListProps) => React.JSX.Element;
767
+
768
+ }
769
+ declare module '@layerfi/components/components/DetailsList/DetailsListItem' {
770
+ import React, { ReactNode } from 'react';
771
+ export interface DetailsListItemProps {
772
+ label: string;
773
+ children: ReactNode | string;
774
+ isLoading?: boolean;
775
+ }
776
+ export const DetailsListItem: ({ label, children, isLoading, }: DetailsListItemProps) => React.JSX.Element;
777
+
778
+ }
779
+ declare module '@layerfi/components/components/DetailsList/index' {
780
+ export { DetailsList } from '@layerfi/components/components/DetailsList/DetailsList';
781
+ export { DetailsListItem } from '@layerfi/components/components/DetailsList/DetailsListItem';
782
+
529
783
  }
530
784
  declare module '@layerfi/components/components/ExpandedBankTransactionRow/APIErrorNotifications' {
531
785
  import React from 'react';
@@ -580,10 +834,12 @@ declare module '@layerfi/components/components/HoverMenu/HoverMenu' {
580
834
  children: ReactNode;
581
835
  config: {
582
836
  name: string;
583
- action: () => void;
837
+ action: (plaidItemId: string, accountId: string) => void;
584
838
  }[];
839
+ plaidItemId: string;
840
+ accountId: string;
585
841
  }
586
- export const HoverMenu: ({ children, config }: HoverMenuProps) => React.JSX.Element;
842
+ export const HoverMenu: ({ children, config, plaidItemId, accountId, }: HoverMenuProps) => React.JSX.Element;
587
843
 
588
844
  }
589
845
  declare module '@layerfi/components/components/HoverMenu/index' {
@@ -632,8 +888,9 @@ declare module '@layerfi/components/components/Input/Select' {
632
888
  value?: T;
633
889
  onChange: (selected: T) => void;
634
890
  disabled?: boolean;
891
+ placeholder?: string;
635
892
  }
636
- export const Select: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, }: SelectProps<T>) => React.JSX.Element;
893
+ export const Select: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, }: SelectProps<T>) => React.JSX.Element;
637
894
 
638
895
  }
639
896
  declare module '@layerfi/components/components/Input/index' {
@@ -643,71 +900,41 @@ declare module '@layerfi/components/components/Input/index' {
643
900
  export { Select } from '@layerfi/components/components/Input/Select';
644
901
 
645
902
  }
646
- declare module '@layerfi/components/components/LedgerAccounts/LedgerAccounts' {
647
- import React from 'react';
648
- import { useLedgerAccounts } from '@layerfi/components/hooks/useLedgerAccounts/index';
649
- export type LedgerAccountsContextType = ReturnType<typeof useLedgerAccounts>;
650
- export const LedgerAccountsContext: React.Context<{
651
- data: import("@layerfi/components/types").LedgerAccounts | undefined;
652
- isLoading?: boolean | undefined;
653
- isValidating?: boolean | undefined;
654
- error?: unknown;
655
- refetch: () => void;
656
- create: (newAccount: import("@layerfi/components/types").NewAccount) => void;
657
- form?: import("@layerfi/components/hooks/useLedgerAccounts/useLedgerAccounts").LedgerAccountsForm | undefined;
658
- sendingForm?: boolean | undefined;
659
- apiError?: string | undefined;
660
- addAccount: () => void;
661
- editAccount: (id: string) => void;
662
- cancelForm: () => void;
663
- changeFormData: (name: string, value: string | import("@layerfi/components/types/general").BaseSelectOption | undefined) => void;
664
- submitForm: () => void;
665
- showARForAccountId?: string | undefined;
666
- setShowARForAccountId: (id?: string | undefined) => void;
667
- }>;
668
- export const LedgerAccounts: () => React.JSX.Element;
669
-
670
- }
671
- declare module '@layerfi/components/components/LedgerAccounts/index' {
672
- export { LedgerAccounts } from '@layerfi/components/components/LedgerAccounts/LedgerAccounts';
673
-
674
- }
675
- declare module '@layerfi/components/components/LedgerAccountsForm/LedgerAccountsForm' {
676
- import React from 'react';
677
- export const LedgerAccountsForm: () => React.JSX.Element | undefined;
678
-
679
- }
680
- declare module '@layerfi/components/components/LedgerAccountsForm/index' {
681
- export { LedgerAccountsForm } from '@layerfi/components/components/LedgerAccountsForm/LedgerAccountsForm';
903
+ declare module '@layerfi/components/components/LedgerAccount/LedgerAccountIndex' {
904
+ import React, { RefObject } from 'react';
905
+ import { View } from '@layerfi/components/components/ChartOfAccounts/ChartOfAccounts';
906
+ export interface LedgerAccountProps {
907
+ view: View;
908
+ containerRef: RefObject<HTMLDivElement>;
909
+ pageSize?: number;
910
+ }
911
+ export const LedgerAccount: ({ containerRef, pageSize, view, }: LedgerAccountProps) => React.JSX.Element;
682
912
 
683
913
  }
684
- declare module '@layerfi/components/components/LedgerAccountsRow/LedgerAccountsRow' {
914
+ declare module '@layerfi/components/components/LedgerAccount/LedgerAccountRow' {
685
915
  import React from 'react';
686
- import { Account } from '@layerfi/components/types';
687
- type LedgerAccountsRowProps = {
688
- account: Account;
689
- depth?: number;
916
+ import { LedgerAccountsLine } from '@layerfi/components/types';
917
+ import { View } from '@layerfi/components/components/ChartOfAccounts/ChartOfAccounts';
918
+ export interface LedgerAccountRowProps {
919
+ row: LedgerAccountsLine;
690
920
  index: number;
691
- cumulativeIndex?: number;
692
- expanded: boolean;
693
- acountsLength: number;
694
- defaultOpen?: boolean;
695
- };
696
- export const LedgerAccountsRow: ({ account, depth, index, cumulativeIndex, expanded, defaultOpen, acountsLength, }: LedgerAccountsRowProps) => React.JSX.Element;
697
- export {};
921
+ initialLoad?: boolean;
922
+ view: View;
923
+ }
924
+ export const LedgerAccountRow: ({ row, index, initialLoad, view, }: LedgerAccountRowProps) => React.JSX.Element;
698
925
 
699
926
  }
700
- declare module '@layerfi/components/components/LedgerAccountsRow/index' {
701
- export { LedgerAccountsRow } from '@layerfi/components/components/LedgerAccountsRow/LedgerAccountsRow';
927
+ declare module '@layerfi/components/components/LedgerAccount/index' {
928
+ export { LedgerAccount } from '@layerfi/components/components/LedgerAccount/LedgerAccountIndex';
702
929
 
703
930
  }
704
- declare module '@layerfi/components/components/LedgerAccountsSidebar/LedgerAccountsSidebar' {
931
+ declare module '@layerfi/components/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails' {
705
932
  import React from 'react';
706
- export const LedgerAccountsSidebar: () => React.JSX.Element;
933
+ export const LedgerAccountEntryDetails: () => React.JSX.Element;
707
934
 
708
935
  }
709
- declare module '@layerfi/components/components/LedgerAccountsSidebar/index' {
710
- export { LedgerAccountsSidebar } from '@layerfi/components/components/LedgerAccountsSidebar/LedgerAccountsSidebar';
936
+ declare module '@layerfi/components/components/LedgerAccountEntryDetails/index' {
937
+ export { LedgerAccountEntryDetails } from '@layerfi/components/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails';
711
938
 
712
939
  }
713
940
  declare module '@layerfi/components/components/LinkedAccountOptions/LinkedAccountOptions' {
@@ -715,7 +942,7 @@ declare module '@layerfi/components/components/LinkedAccountOptions/LinkedAccoun
715
942
  import { HoverMenuProps } from '@layerfi/components/components/HoverMenu/index';
716
943
  interface LinkedAccountOptionsProps extends HoverMenuProps {
717
944
  }
718
- export const LinkedAccountOptions: ({ children, config, }: LinkedAccountOptionsProps) => React.JSX.Element;
945
+ export const LinkedAccountOptions: ({ children, config, accountId, plaidItemId, }: LinkedAccountOptionsProps) => React.JSX.Element;
719
946
  export {};
720
947
 
721
948
  }
@@ -739,9 +966,11 @@ declare module '@layerfi/components/components/LinkedAccountThumb/index' {
739
966
  }
740
967
  declare module '@layerfi/components/components/LinkedAccounts/LinkedAccounts' {
741
968
  import React from 'react';
742
- export const LinkedAccounts: ({ asWidget }: {
743
- asWidget?: boolean | undefined;
744
- }) => React.JSX.Element;
969
+ export interface LinkedAccountsProps {
970
+ asWidget?: boolean;
971
+ elevated?: boolean;
972
+ }
973
+ export const LinkedAccounts: ({ asWidget, elevated }: LinkedAccountsProps) => React.JSX.Element;
745
974
 
746
975
  }
747
976
  declare module '@layerfi/components/components/LinkedAccounts/index' {
@@ -792,6 +1021,23 @@ declare module '@layerfi/components/components/Pagination/Pagination' {
792
1021
  declare module '@layerfi/components/components/Pagination/index' {
793
1022
  export { Pagination } from '@layerfi/components/components/Pagination/Pagination';
794
1023
 
1024
+ }
1025
+ declare module '@layerfi/components/components/Panel/Panel' {
1026
+ import React, { ReactNode, RefObject } from 'react';
1027
+ export interface PanelProps {
1028
+ children: ReactNode;
1029
+ className?: string;
1030
+ sidebar?: ReactNode;
1031
+ sidebarIsOpen?: boolean;
1032
+ header?: ReactNode;
1033
+ parentRef?: RefObject<HTMLDivElement>;
1034
+ }
1035
+ export const Panel: ({ children, className, sidebar, header, sidebarIsOpen, parentRef, }: PanelProps) => React.JSX.Element;
1036
+
1037
+ }
1038
+ declare module '@layerfi/components/components/Panel/index' {
1039
+ export { Panel } from '@layerfi/components/components/Panel/Panel';
1040
+
795
1041
  }
796
1042
  declare module '@layerfi/components/components/ProfitAndLoss/ProfitAndLoss' {
797
1043
  import React, { PropsWithChildren } from 'react';
@@ -802,14 +1048,17 @@ declare module '@layerfi/components/components/ProfitAndLoss/ProfitAndLoss' {
802
1048
  values: string[];
803
1049
  };
804
1050
  reportingBasis?: ReportingBasis;
1051
+ asContainer?: boolean;
805
1052
  };
806
1053
  const ProfitAndLoss: {
807
- ({ children, tagFilter, reportingBasis }: Props): React.JSX.Element;
1054
+ ({ children, tagFilter, reportingBasis, asContainer, }: Props): React.JSX.Element;
808
1055
  Chart: () => React.JSX.Element;
809
1056
  Context: React.Context<{
810
1057
  data: import("@layerfi/components/types").ProfitAndLoss | undefined;
811
- filteredData: import("@layerfi/components/types/line_item").LineBaseItem[];
812
- filteredTotal?: number | undefined;
1058
+ filteredDataRevenue: import("@layerfi/components/types/line_item").LineBaseItem[];
1059
+ filteredTotalRevenue?: number | undefined;
1060
+ filteredDataExpenses: import("@layerfi/components/types/line_item").LineBaseItem[];
1061
+ filteredTotalExpenses?: number | undefined;
813
1062
  isLoading: boolean;
814
1063
  isValidating: boolean;
815
1064
  error: unknown;
@@ -823,12 +1072,19 @@ declare module '@layerfi/components/components/ProfitAndLoss/ProfitAndLoss' {
823
1072
  setFilterTypes: (scope: import("@layerfi/components/hooks/useProfitAndLoss/useProfitAndLoss").Scope, types: string[]) => void;
824
1073
  }>;
825
1074
  DatePicker: () => React.JSX.Element;
826
- Summaries: ({ vertical, revenueLabel, }: {
1075
+ Summaries: ({ vertical, revenueLabel, actionable, }: {
827
1076
  revenueLabel?: string | undefined;
828
1077
  vertical?: boolean | undefined;
1078
+ actionable?: boolean | undefined;
829
1079
  }) => React.JSX.Element;
830
- Table: ({ lockExpanded }: {
1080
+ Table: ({ lockExpanded, asContainer }: {
831
1081
  lockExpanded?: boolean | undefined;
1082
+ asContainer?: boolean | undefined;
1083
+ }) => React.JSX.Element;
1084
+ DetailedCharts: ({ scope, hideClose, showDatePicker, }: {
1085
+ scope?: import("@layerfi/components/hooks/useProfitAndLoss/useProfitAndLoss").SidebarScope;
1086
+ hideClose?: boolean | undefined;
1087
+ showDatePicker?: boolean | undefined;
832
1088
  }) => React.JSX.Element;
833
1089
  };
834
1090
  export { ProfitAndLoss };
@@ -878,8 +1134,9 @@ declare module '@layerfi/components/components/ProfitAndLossDetailedCharts/Detai
878
1134
  setHoveredItem: (name?: string) => void;
879
1135
  sidebarScope?: SidebarScope;
880
1136
  date: number | Date;
1137
+ isLoading?: boolean;
881
1138
  }
882
- export const DetailedChart: ({ filteredData, filteredTotal, hoveredItem, setHoveredItem, sidebarScope, date, }: DetailedChartProps) => React.JSX.Element;
1139
+ export const DetailedChart: ({ filteredData, filteredTotal, hoveredItem, setHoveredItem, sidebarScope, date, isLoading, }: DetailedChartProps) => React.JSX.Element;
883
1140
  export {};
884
1141
 
885
1142
  }
@@ -914,7 +1171,12 @@ declare module '@layerfi/components/components/ProfitAndLossDetailedCharts/Filte
914
1171
  }
915
1172
  declare module '@layerfi/components/components/ProfitAndLossDetailedCharts/ProfitAndLossDetailedCharts' {
916
1173
  import React from 'react';
917
- export const ProfitAndLossDetailedCharts: () => React.JSX.Element;
1174
+ import { SidebarScope } from '@layerfi/components/hooks/useProfitAndLoss/useProfitAndLoss';
1175
+ export const ProfitAndLossDetailedCharts: ({ scope, hideClose, showDatePicker, }: {
1176
+ scope?: SidebarScope;
1177
+ hideClose?: boolean | undefined;
1178
+ showDatePicker?: boolean | undefined;
1179
+ }) => React.JSX.Element;
918
1180
 
919
1181
  }
920
1182
  declare module '@layerfi/components/components/ProfitAndLossDetailedCharts/index' {
@@ -957,8 +1219,9 @@ declare module '@layerfi/components/components/ProfitAndLossSummaries/ProfitAndL
957
1219
  type Props = {
958
1220
  revenueLabel?: string;
959
1221
  vertical?: boolean;
1222
+ actionable?: boolean;
960
1223
  };
961
- export const ProfitAndLossSummaries: ({ vertical, revenueLabel, }: Props) => React.JSX.Element;
1224
+ export const ProfitAndLossSummaries: ({ vertical, revenueLabel, actionable, }: Props) => React.JSX.Element;
962
1225
  export {};
963
1226
 
964
1227
  }
@@ -970,8 +1233,9 @@ declare module '@layerfi/components/components/ProfitAndLossTable/ProfitAndLossT
970
1233
  import React from 'react';
971
1234
  type Props = {
972
1235
  lockExpanded?: boolean;
1236
+ asContainer?: boolean;
973
1237
  };
974
- export const ProfitAndLossTable: ({ lockExpanded }: Props) => React.JSX.Element;
1238
+ export const ProfitAndLossTable: ({ lockExpanded, asContainer }: Props) => React.JSX.Element;
975
1239
  export {};
976
1240
 
977
1241
  }
@@ -986,12 +1250,15 @@ declare module '@layerfi/components/components/ProfitAndLossTable/index' {
986
1250
 
987
1251
  }
988
1252
  declare module '@layerfi/components/components/ProfitAndLossView/ProfitAndLossView' {
989
- import React from 'react';
1253
+ import React, { RefObject } from 'react';
990
1254
  export interface ProfitAndLossViewProps {
991
1255
  hideTable?: boolean;
992
1256
  hideChart?: boolean;
993
1257
  showDetailedCharts?: boolean;
994
1258
  }
1259
+ export interface ProfitAndLossViewPanelProps extends ProfitAndLossViewProps {
1260
+ containerRef: RefObject<HTMLDivElement>;
1261
+ }
995
1262
  export const ProfitAndLossView: (props: ProfitAndLossViewProps) => React.JSX.Element;
996
1263
 
997
1264
  }
@@ -1039,6 +1306,7 @@ declare module '@layerfi/components/components/Toggle/Toggle' {
1039
1306
  label: string;
1040
1307
  value: string;
1041
1308
  disabled?: boolean;
1309
+ disabledMessage?: string;
1042
1310
  leftIcon?: ReactNode;
1043
1311
  }
1044
1312
  export enum ToggleSize {
@@ -1255,6 +1523,33 @@ declare module '@layerfi/components/components/Typography/index' {
1255
1523
  export { Heading, HeadingSize } from '@layerfi/components/components/Typography/Heading';
1256
1524
  export { ErrorText } from '@layerfi/components/components/Typography/ErrorText';
1257
1525
 
1526
+ }
1527
+ declare module '@layerfi/components/components/View/View' {
1528
+ import React, { ReactNode } from 'react';
1529
+ export interface ViewProps {
1530
+ children: ReactNode;
1531
+ title?: string;
1532
+ headerControls?: ReactNode;
1533
+ }
1534
+ export const View: ({ title, children, headerControls }: ViewProps) => React.JSX.Element;
1535
+
1536
+ }
1537
+ declare module '@layerfi/components/components/View/index' {
1538
+ export { View } from '@layerfi/components/components/View/View';
1539
+
1540
+ }
1541
+ declare module '@layerfi/components/components/ViewHeader/ViewHeader' {
1542
+ import React, { ReactNode } from 'react';
1543
+ export interface ViewHeaderProps {
1544
+ title?: string;
1545
+ controls?: ReactNode;
1546
+ }
1547
+ export const ViewHeader: ({ title, controls }: ViewHeaderProps) => React.JSX.Element;
1548
+
1549
+ }
1550
+ declare module '@layerfi/components/components/ViewHeader/index' {
1551
+ export { ViewHeader } from '@layerfi/components/components/ViewHeader/ViewHeader';
1552
+
1258
1553
  }
1259
1554
  declare module '@layerfi/components/config/charts' {
1260
1555
  export const INACTIVE_OPACITY_LEVELS: number[];
@@ -1266,6 +1561,11 @@ declare module '@layerfi/components/config/charts' {
1266
1561
  }
1267
1562
  declare module '@layerfi/components/config/general' {
1268
1563
  export const DATE_FORMAT = "LLL d, yyyy";
1564
+ export const TIME_FORMAT = "p";
1565
+ export const BREAKPOINTS: {
1566
+ TABLET: number;
1567
+ MOBILE: number;
1568
+ };
1269
1569
 
1270
1570
  }
1271
1571
  declare module '@layerfi/components/config/theme' {
@@ -1369,6 +1669,50 @@ declare module '@layerfi/components/hooks/useBankTransactions/useBankTransaction
1369
1669
  export const useBankTransactions: UseBankTransactions;
1370
1670
  export {};
1371
1671
 
1672
+ }
1673
+ declare module '@layerfi/components/hooks/useChartOfAccounts/index' {
1674
+ export { useChartOfAccounts } from '@layerfi/components/hooks/useChartOfAccounts/useChartOfAccounts';
1675
+
1676
+ }
1677
+ declare module '@layerfi/components/hooks/useChartOfAccounts/useChartOfAccounts' {
1678
+ import { Account, ChartOfAccounts, NewAccount } from '@layerfi/components/types';
1679
+ import { BaseSelectOption } from '@layerfi/components/types/general';
1680
+ interface FormError {
1681
+ field: string;
1682
+ message: string;
1683
+ }
1684
+ export interface ChartOfAccountsForm {
1685
+ action: 'new' | 'edit';
1686
+ accountId?: string;
1687
+ data: {
1688
+ parent?: BaseSelectOption;
1689
+ name?: string;
1690
+ type?: BaseSelectOption;
1691
+ subType?: BaseSelectOption;
1692
+ category?: BaseSelectOption;
1693
+ };
1694
+ errors?: FormError[];
1695
+ }
1696
+ type UseChartOfAccounts = () => {
1697
+ data: ChartOfAccounts | undefined;
1698
+ isLoading?: boolean;
1699
+ isValidating?: boolean;
1700
+ error?: unknown;
1701
+ refetch: () => void;
1702
+ create: (newAccount: NewAccount) => void;
1703
+ form?: ChartOfAccountsForm;
1704
+ sendingForm?: boolean;
1705
+ apiError?: string;
1706
+ addAccount: () => void;
1707
+ editAccount: (id: string) => void;
1708
+ cancelForm: () => void;
1709
+ changeFormData: (name: string, value: string | BaseSelectOption | undefined) => void;
1710
+ submitForm: () => void;
1711
+ };
1712
+ export const flattenAccounts: (accounts: Account[]) => Account[];
1713
+ export const useChartOfAccounts: UseChartOfAccounts;
1714
+ export {};
1715
+
1372
1716
  }
1373
1717
  declare module '@layerfi/components/hooks/useElementSize/index' {
1374
1718
  export { useElementSize } from '@layerfi/components/hooks/useElementSize/useElementSize';
@@ -1379,6 +1723,8 @@ declare module '@layerfi/components/hooks/useElementSize/useElementSize' {
1379
1723
  export const useElementSize: <T extends HTMLElement>(callback: (target: T, entry: ResizeObserverEntry, size: {
1380
1724
  width: number;
1381
1725
  height: number;
1726
+ clientWidth: number;
1727
+ clientHeight: number;
1382
1728
  }) => void) => import("react").RefObject<T>;
1383
1729
 
1384
1730
  }
@@ -1397,43 +1743,23 @@ declare module '@layerfi/components/hooks/useLedgerAccounts/index' {
1397
1743
 
1398
1744
  }
1399
1745
  declare module '@layerfi/components/hooks/useLedgerAccounts/useLedgerAccounts' {
1400
- import { Account, LedgerAccounts, NewAccount } from '@layerfi/components/types';
1401
- import { BaseSelectOption } from '@layerfi/components/types/general';
1402
- interface FormError {
1403
- field: string;
1404
- message: string;
1405
- }
1406
- export interface LedgerAccountsForm {
1407
- action: 'new' | 'edit';
1408
- accountId?: string;
1409
- data: {
1410
- parent?: BaseSelectOption;
1411
- name?: string;
1412
- type?: BaseSelectOption;
1413
- subType?: BaseSelectOption;
1414
- category?: BaseSelectOption;
1415
- };
1416
- errors?: FormError[];
1417
- }
1746
+ import { LedgerAccounts, LedgerAccountsEntry } from '@layerfi/components/types';
1418
1747
  type UseLedgerAccounts = () => {
1419
- data: LedgerAccounts | undefined;
1748
+ data?: LedgerAccounts;
1749
+ entryData?: LedgerAccountsEntry;
1420
1750
  isLoading?: boolean;
1751
+ isLoadingEntry?: boolean;
1421
1752
  isValidating?: boolean;
1753
+ isValidatingEntry?: boolean;
1422
1754
  error?: unknown;
1755
+ errorEntry?: unknown;
1423
1756
  refetch: () => void;
1424
- create: (newAccount: NewAccount) => void;
1425
- form?: LedgerAccountsForm;
1426
- sendingForm?: boolean;
1427
- apiError?: string;
1428
- addAccount: () => void;
1429
- editAccount: (id: string) => void;
1430
- cancelForm: () => void;
1431
- changeFormData: (name: string, value: string | BaseSelectOption | undefined) => void;
1432
- submitForm: () => void;
1433
- showARForAccountId?: string;
1434
- setShowARForAccountId: (id?: string) => void;
1757
+ accountId?: string;
1758
+ setAccountId: (id?: string) => void;
1759
+ selectedEntryId?: string;
1760
+ setSelectedEntryId: (id?: string) => void;
1761
+ closeSelectedEntry: () => void;
1435
1762
  };
1436
- export const flattenAccounts: (accounts: Account[]) => Account[];
1437
1763
  export const useLedgerAccounts: UseLedgerAccounts;
1438
1764
  export {};
1439
1765
 
@@ -1441,17 +1767,24 @@ declare module '@layerfi/components/hooks/useLedgerAccounts/useLedgerAccounts' {
1441
1767
  declare module '@layerfi/components/hooks/useLinkedAccounts/index' {
1442
1768
  export { useLinkedAccounts } from '@layerfi/components/hooks/useLinkedAccounts/useLinkedAccounts';
1443
1769
 
1770
+ }
1771
+ declare module '@layerfi/components/hooks/useLinkedAccounts/mockData' {
1772
+ import { LinkedAccount } from '@layerfi/components/types/linked_accounts';
1773
+ export const LINKED_ACCOUNTS_MOCK_DATA: LinkedAccount[];
1774
+
1444
1775
  }
1445
1776
  declare module '@layerfi/components/hooks/useLinkedAccounts/useLinkedAccounts' {
1446
1777
  import { LinkedAccount } from '@layerfi/components/types/linked_accounts';
1778
+ type Source = 'PLAID' | 'STRIPE';
1447
1779
  type UseLinkedAccounts = () => {
1448
1780
  data?: LinkedAccount[];
1449
1781
  isLoading: boolean;
1450
1782
  isValidating: boolean;
1451
1783
  error: unknown;
1452
- refetch: () => void;
1453
- addAccount: () => void;
1454
- unlinkAccount: () => void;
1784
+ addConnection: (source: Source) => void;
1785
+ removeConnection: (source: Source, sourceId: string) => void;
1786
+ refetchAccounts: () => void;
1787
+ unlinkAccount: (plaidAccountId: string) => void;
1455
1788
  renewLinkAccount: () => void;
1456
1789
  };
1457
1790
  export const useLinkedAccounts: UseLinkedAccounts;
@@ -1500,8 +1833,10 @@ declare module '@layerfi/components/hooks/useProfitAndLoss/useProfitAndLoss' {
1500
1833
  export type ProfitAndLossFilters = Record<Scope, ProfitAndLossFilter | undefined>;
1501
1834
  type UseProfitAndLoss = (props?: Props) => {
1502
1835
  data: ProfitAndLoss | undefined;
1503
- filteredData: LineBaseItem[];
1504
- filteredTotal?: number;
1836
+ filteredDataRevenue: LineBaseItem[];
1837
+ filteredTotalRevenue?: number;
1838
+ filteredDataExpenses: LineBaseItem[];
1839
+ filteredTotalExpenses?: number;
1505
1840
  isLoading: boolean;
1506
1841
  isValidating: boolean;
1507
1842
  error: unknown;
@@ -1531,13 +1866,6 @@ declare module '@layerfi/components/icons/AlertOctagon' {
1531
1866
  const AlertOctagon: ({ size, ...props }: IconSvgProps) => React.JSX.Element;
1532
1867
  export default AlertOctagon;
1533
1868
 
1534
- }
1535
- declare module '@layerfi/components/icons/ArrowRightCircle' {
1536
- import * as React from 'react';
1537
- import { IconSvgProps } from '@layerfi/components/icons/types';
1538
- const ArrowRightCircle: ({ size, ...props }: IconSvgProps) => React.JSX.Element;
1539
- export default ArrowRightCircle;
1540
-
1541
1869
  }
1542
1870
  declare module '@layerfi/components/icons/BackArrow' {
1543
1871
  import * as React from 'react';
@@ -1721,8 +2049,12 @@ declare module '@layerfi/components/index' {
1721
2049
  export { LinkedAccounts } from '@layerfi/components/components/LinkedAccounts/index';
1722
2050
  export { ProfitAndLoss } from '@layerfi/components/components/ProfitAndLoss/index';
1723
2051
  export { ProfitAndLossView } from '@layerfi/components/components/ProfitAndLossView/index';
1724
- export { LedgerAccounts } from '@layerfi/components/components/LedgerAccounts/index';
2052
+ export { ChartOfAccounts } from '@layerfi/components/components/ChartOfAccounts/index';
1725
2053
  export { LayerProvider } from '@layerfi/components/providers/LayerProvider/index';
2054
+ export { useLayerContext } from '@layerfi/components/hooks/useLayerContext/index';
2055
+ export { AccountingOverview } from '@layerfi/components/views/AccountingOverview/index';
2056
+ export { BankTransactionsWithLinkedAccounts } from '@layerfi/components/views/BankTransactionsWithLinkedAccounts/index';
2057
+ export { Reports } from '@layerfi/components/views/Reports/index';
1726
2058
 
1727
2059
  }
1728
2060
  declare module '@layerfi/components/models/APIError' {
@@ -1924,6 +2256,62 @@ declare module '@layerfi/components/types/categories' {
1924
2256
  export type CategoryUpdate = SingleCategoryUpdate | SplitCategoryUpdate;
1925
2257
  export function hasSuggestions(categorization: Categorization): categorization is SuggestedCategorization;
1926
2258
 
2259
+ }
2260
+ declare module '@layerfi/components/types/chart_of_accounts' {
2261
+ import { Direction } from '@layerfi/components/types/bank_transactions';
2262
+ import { Category } from '@layerfi/components/types/categories';
2263
+ export interface ChartOfAccounts {
2264
+ type: string;
2265
+ accounts: Account[];
2266
+ entries?: any[];
2267
+ }
2268
+ export interface AccountEntry {
2269
+ account: Account;
2270
+ amount?: number;
2271
+ createdAt?: string;
2272
+ direction: Direction;
2273
+ entry_at?: string;
2274
+ entry_id?: string;
2275
+ id?: string;
2276
+ }
2277
+ export interface Account {
2278
+ id: string;
2279
+ number: number;
2280
+ pnlCategory?: Category;
2281
+ headerForPnlCategory?: Category;
2282
+ name: string;
2283
+ accountStableName?: string;
2284
+ description?: string;
2285
+ scheduleCLine?: string;
2286
+ scheduleCLineDescription?: string;
2287
+ sub_accounts?: Account[];
2288
+ hidePnl: boolean;
2289
+ showInPnlIfEmpty: boolean;
2290
+ normality: Direction;
2291
+ balance: number;
2292
+ selfOnlyBalance: number;
2293
+ entries?: AccountEntry[];
2294
+ }
2295
+ export type NewAccount = {
2296
+ name: string;
2297
+ normality: Direction;
2298
+ parent_id?: {
2299
+ type: 'AccountId';
2300
+ id: string;
2301
+ };
2302
+ description: string;
2303
+ };
2304
+ export type EditAccount = {
2305
+ name: string;
2306
+ stable_name: string;
2307
+ normality: Direction;
2308
+ parent_id?: {
2309
+ type: 'AccountId';
2310
+ id: string;
2311
+ };
2312
+ description: string;
2313
+ };
2314
+
1927
2315
  }
1928
2316
  declare module '@layerfi/components/types/general' {
1929
2317
  export type SortDirection = 'asc' | 'desc';
@@ -1946,6 +2334,9 @@ declare module '@layerfi/components/types/layer_context' {
1946
2334
  };
1947
2335
  export type LayerContextHelpers = {
1948
2336
  getColor: (shade: number) => ColorsPaletteOption | undefined;
2337
+ setLightColor: (color?: ColorConfig) => void;
2338
+ setDarkColor: (color?: ColorConfig) => void;
2339
+ setColors: (colors?: LayerThemeConfigColors) => void;
1949
2340
  };
1950
2341
  export interface ColorHSLConfig {
1951
2342
  h: string;
@@ -1977,11 +2368,12 @@ declare module '@layerfi/components/types/layer_context' {
1977
2368
  hex: string;
1978
2369
  }
1979
2370
  export type ColorsPalette = Record<number, ColorsPaletteOption>;
2371
+ export interface LayerThemeConfigColors {
2372
+ dark?: ColorConfig;
2373
+ light?: ColorConfig;
2374
+ }
1980
2375
  export interface LayerThemeConfig {
1981
- colors?: {
1982
- dark?: ColorConfig;
1983
- light?: ColorConfig;
1984
- };
2376
+ colors?: LayerThemeConfigColors;
1985
2377
  }
1986
2378
  export enum LayerContextActionName {
1987
2379
  setAuth = "LayerContext.setAuth",
@@ -2007,59 +2399,52 @@ declare module '@layerfi/components/types/layer_context' {
2007
2399
 
2008
2400
  }
2009
2401
  declare module '@layerfi/components/types/ledger_accounts' {
2010
- import { Direction } from '@layerfi/components/types/bank_transactions';
2011
- import { Category } from '@layerfi/components/types/categories';
2012
- export interface LedgerAccounts {
2402
+ import { BankTransaction, Direction } from '@layerfi/components/types/bank_transactions';
2403
+ export type LedgerAccounts = LedgerAccountsLine[];
2404
+ export interface LedgerAccountsEntry {
2405
+ agent?: string;
2406
+ business_id: string;
2407
+ date: string;
2408
+ entry_at: string;
2409
+ entry_type: string;
2410
+ id: string;
2411
+ invoice?: Record<string, string>;
2412
+ ledger_id: string;
2413
+ line_items: LedgerAccountLineItem[];
2414
+ manual_entry?: boolean;
2415
+ reversal_id?: string;
2416
+ reversal_of_id?: string;
2013
2417
  type: string;
2014
- accounts: Account[];
2015
- entries?: any[];
2418
+ transaction?: BankTransaction;
2016
2419
  }
2017
- export interface AccountEntry {
2018
- account: Account;
2019
- amount?: number;
2020
- createdAt?: string;
2420
+ export interface LedgerAccountsLine {
2421
+ type: string;
2422
+ id: string;
2423
+ entry_id: string;
2424
+ account: LedgerAccountsAccount;
2425
+ amount: number;
2021
2426
  direction: Direction;
2022
- entry_at?: string;
2023
- entry_id?: string;
2024
- id?: string;
2427
+ date: string;
2428
+ transaction?: BankTransaction;
2429
+ invoice: string | null;
2025
2430
  }
2026
- export interface Account {
2431
+ export interface LedgerAccountsAccount {
2432
+ always_show_in_pnl?: boolean;
2027
2433
  id: string;
2028
- number: number;
2029
- pnlCategory?: Category;
2030
- headerForPnlCategory?: Category;
2031
- name: string;
2032
- accountStableName?: string;
2033
- description?: string;
2034
- scheduleCLine?: string;
2035
- scheduleCLineDescription?: string;
2036
- sub_accounts?: Account[];
2037
- hidePnl: boolean;
2038
- showInPnlIfEmpty: boolean;
2039
- normality: Direction;
2040
- balance: number;
2041
- selfOnlyBalance: number;
2042
- entries?: AccountEntry[];
2043
- }
2044
- export type NewAccount = {
2045
- name: string;
2046
- normality: Direction;
2047
- parent_id?: {
2048
- type: 'AccountId';
2049
- id: string;
2050
- };
2051
- description: string;
2052
- };
2053
- export type EditAccount = {
2054
2434
  name: string;
2435
+ normality: string;
2436
+ pnl_category?: string;
2055
2437
  stable_name: string;
2056
- normality: Direction;
2057
- parent_id?: {
2058
- type: 'AccountId';
2059
- id: string;
2060
- };
2061
- description: string;
2062
- };
2438
+ }
2439
+ export interface LedgerAccountLineItem {
2440
+ account?: LedgerAccountsAccount;
2441
+ amount: number;
2442
+ createdAt: string;
2443
+ direction: Direction;
2444
+ entry_at: string;
2445
+ entry_id: string;
2446
+ id: string;
2447
+ }
2063
2448
 
2064
2449
  }
2065
2450
  declare module '@layerfi/components/types/line_item' {
@@ -2081,14 +2466,16 @@ declare module '@layerfi/components/types/line_item' {
2081
2466
 
2082
2467
  }
2083
2468
  declare module '@layerfi/components/types/linked_accounts' {
2469
+ import { PlaidInstitution } from 'react-plaid-link';
2084
2470
  export interface LinkedAccounts {
2085
2471
  type: string;
2086
2472
  external_accounts: LinkedAccount[];
2087
2473
  }
2088
2474
  export interface LinkedAccount {
2089
2475
  id: string;
2476
+ external_account_external_id: string;
2477
+ external_account_source: string;
2090
2478
  external_account_name: string;
2091
- external_account_number: string;
2092
2479
  latest_balance_timestamp: {
2093
2480
  external_account_external_id: string;
2094
2481
  external_account_source: string;
@@ -2097,9 +2484,15 @@ declare module '@layerfi/components/types/linked_accounts' {
2097
2484
  created_at: string;
2098
2485
  };
2099
2486
  current_ledger_balance: number;
2100
- institution: string;
2101
- institutionLogo: string;
2487
+ institution: {
2488
+ name: string;
2489
+ logo: string;
2490
+ };
2102
2491
  }
2492
+ export type PublicToken = {
2493
+ public_token: string;
2494
+ institution_id: PlaidInstitution | null;
2495
+ };
2103
2496
 
2104
2497
  }
2105
2498
  declare module '@layerfi/components/types/profit_and_loss' {
@@ -2131,7 +2524,8 @@ declare module '@layerfi/components/types' {
2131
2524
  export { BalanceSheet } from '@layerfi/components/types/balance_sheet';
2132
2525
  export { Direction, BankTransaction } from '@layerfi/components/types/bank_transactions';
2133
2526
  export { CategorizationStatus, Category, CategorizationType, AutoCategorization, SuggestedCategorization, SingleCategoryUpdate, SplitCategoryUpdate, CategoryUpdate, } from '@layerfi/components/types/categories';
2134
- export { LedgerAccounts, Account, NewAccount, EditAccount, } from '@layerfi/components/types/ledger_accounts';
2527
+ export { ChartOfAccounts, Account, NewAccount, EditAccount, } from '@layerfi/components/types/chart_of_accounts';
2528
+ export { LedgerAccounts, LedgerAccountsLine, LedgerAccountsAccount, LedgerAccountsEntry, } from '@layerfi/components/types/ledger_accounts';
2135
2529
  export { SortDirection } from '@layerfi/components/types/general';
2136
2530
  export type DateRange<T = Date> = {
2137
2531
  startDate: T;
@@ -2168,6 +2562,10 @@ declare module '@layerfi/components/utils/format' {
2168
2562
  * 0.00123 -> 0.12%
2169
2563
  */
2170
2564
  export const formatPercent: (value?: number, options?: Intl.NumberFormatOptions) => string | undefined;
2565
+ /**
2566
+ * Convert Enum-like (upper snakecase) text into human friendly format.
2567
+ */
2568
+ export const humanizeEnum: (text: string) => string;
2171
2569
 
2172
2570
  }
2173
2571
  declare module '@layerfi/components/utils/helpers' {
@@ -2189,6 +2587,45 @@ declare module '@layerfi/components/utils/profitAndLossUtils' {
2189
2587
  export const humanizeTitle: (sidebarView: SidebarScope) => "Expenses" | "Revenue" | "Profit & Loss";
2190
2588
  export const applyShare: (items: LineBaseItem[], total: number) => LineBaseItem[];
2191
2589
 
2590
+ }
2591
+ declare module '@layerfi/components/views/AccountingOverview/AccountingOverview' {
2592
+ import React from 'react';
2593
+ export interface AccountingOverviewProps {
2594
+ title?: string;
2595
+ }
2596
+ export const AccountingOverview: ({ title, }: AccountingOverviewProps) => React.JSX.Element;
2597
+
2598
+ }
2599
+ declare module '@layerfi/components/views/AccountingOverview/index' {
2600
+ export { AccountingOverview } from '@layerfi/components/views/AccountingOverview/AccountingOverview';
2601
+
2602
+ }
2603
+ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts' {
2604
+ import React from 'react';
2605
+ export interface BankTransactionsWithLinkedAccountsProps {
2606
+ title?: string;
2607
+ }
2608
+ export const BankTransactionsWithLinkedAccounts: ({ title, }: BankTransactionsWithLinkedAccountsProps) => React.JSX.Element;
2609
+
2610
+ }
2611
+ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/index' {
2612
+ export { BankTransactionsWithLinkedAccounts } from '@layerfi/components/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts';
2613
+
2614
+ }
2615
+ declare module '@layerfi/components/views/Reports/Reports' {
2616
+ import React, { RefObject } from 'react';
2617
+ export interface ReportsProps {
2618
+ title?: string;
2619
+ }
2620
+ export interface ReportsPanelProps {
2621
+ containerRef: RefObject<HTMLDivElement>;
2622
+ }
2623
+ export const Reports: ({ title }: ReportsProps) => React.JSX.Element;
2624
+
2625
+ }
2626
+ declare module '@layerfi/components/views/Reports/index' {
2627
+ export { Reports } from '@layerfi/components/views/Reports/Reports';
2628
+
2192
2629
  }
2193
2630
  declare module '@layerfi/components' {
2194
2631
  import main = require('@layerfi/components/index');