@layerfi/components 0.1.94-alpha → 0.1.95-alpha

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.css CHANGED
@@ -562,6 +562,8 @@
562
562
  .Layer__btn--secondary {
563
563
  color: var(--btn-secondary-color);
564
564
  background: var(--btn-secondary-bg-color);
565
+ border: 1px solid var(--border-color);
566
+ box-shadow: none;
565
567
  }
566
568
  .Layer__btn--tertiary {
567
569
  color: var(--btn-tertiary-color);
@@ -4069,7 +4071,7 @@
4069
4071
  }
4070
4072
  .Layer__table-cell--primary,
4071
4073
  .Layer__table-cell--primary .Layer__table-cell-content {
4072
- color: var(--color-base-900);
4074
+ color: var(--color-base-700);
4073
4075
  font-weight: var(--font-weight-bold);
4074
4076
  }
4075
4077
  .Layer__table-cell-content {
@@ -4611,6 +4613,36 @@ tbody .Layer__table__empty-row:first-child {
4611
4613
  animation-timing-function: linear;
4612
4614
  animation-iteration-count: infinite;
4613
4615
  }
4616
+ .Layer__Menu {
4617
+ max-block-size: inherit;
4618
+ min-inline-size: 9rem;
4619
+ overflow: auto;
4620
+ display: flex;
4621
+ flex-direction: column;
4622
+ gap: var(--spacing-3xs);
4623
+ padding: var(--spacing-3xs);
4624
+ border: 1px solid var(--border-color);
4625
+ border-radius: var(--spacing-xs);
4626
+ background: white;
4627
+ outline: none;
4628
+ }
4629
+ .Layer__MenuItem {
4630
+ display: flex;
4631
+ align-items: center;
4632
+ padding-inline: var(--spacing-xs);
4633
+ padding-block: var(--spacing-3xs);
4634
+ border-radius: var(--spacing-2xs);
4635
+ outline: none;
4636
+ cursor: pointer;
4637
+ }
4638
+ .Layer__MenuItem[data-focused] {
4639
+ background: var(--color-base-50);
4640
+ color: var(--color-base-800);
4641
+ }
4642
+ .Layer__MenuItem[data-focus-visible] {
4643
+ outline: 1px solid var(--color-base-100);
4644
+ outline-offset: 1px;
4645
+ }
4614
4646
  .Layer__ModalOverlay {
4615
4647
  display: grid;
4616
4648
  place-items: center;
@@ -4685,6 +4717,32 @@ tbody .Layer__table__empty-row:first-child {
4685
4717
  .Layer__ModalActions {
4686
4718
  padding-block-start: var(--spacing-lg);
4687
4719
  }
4720
+ .Layer__Pill {
4721
+ display: inline-flex;
4722
+ flex-direction: row;
4723
+ align-items: center;
4724
+ border: none;
4725
+ outline: none;
4726
+ cursor: pointer;
4727
+ font-size: var(--text-sm);
4728
+ background-color: var(--badge-bg-color);
4729
+ color: var(--badge-color);
4730
+ border-radius: var(--badge-border-radius);
4731
+ padding: var(--spacing-2xs) var(--spacing-sm);
4732
+ white-space: nowrap;
4733
+ user-select: none;
4734
+ }
4735
+ .Layer__Pill svg {
4736
+ margin-right: 0.25rem;
4737
+ }
4738
+ .Layer__Pill[data-status=error] {
4739
+ background-color: var(--color-info-error-bg);
4740
+ color: var(--color-info-error-fg);
4741
+ }
4742
+ .Layer__Pill[data-status=error][data-focus-visible] {
4743
+ outline: 1px solid var(--color-info-error-bg);
4744
+ outline-offset: 1px;
4745
+ }
4688
4746
  .Layer__Stack {
4689
4747
  display: flex;
4690
4748
  }
@@ -4874,6 +4932,7 @@ tbody .Layer__table__empty-row:first-child {
4874
4932
  }
4875
4933
  .Layer__MinimalSearchField > [slot=input] {
4876
4934
  grid-area: input;
4935
+ font-family: var(--font-family);
4877
4936
  border: none;
4878
4937
  outline: none;
4879
4938
  background: none;
@@ -4882,7 +4941,7 @@ tbody .Layer__table__empty-row:first-child {
4882
4941
  }
4883
4942
  .Layer__MinimalSearchField > [slot=input]::-webkit-search-cancel-button,
4884
4943
  .Layer__MinimalSearchField > [slot=input]::-webkit-search-decoration {
4885
- -webkit-appearance: none;
4944
+ appearance: none;
4886
4945
  }
4887
4946
  .Layer__MinimalSearchField[data-empty] > [slot=input] {
4888
4947
  grid-column: 1/-1;
@@ -4958,7 +5017,7 @@ tbody .Layer__table__empty-row:first-child {
4958
5017
  max-inline-size: unset;
4959
5018
  }
4960
5019
  .Layer__MoneyText {
4961
- color: var(--color-base-900);
5020
+ color: var(--color-base-700);
4962
5021
  overflow-x: hidden;
4963
5022
  text-overflow: ellipsis;
4964
5023
  }
@@ -5154,19 +5213,19 @@ tbody .Layer__table__empty-row:first-child {
5154
5213
  }
5155
5214
  @container (min-width: 640px) {
5156
5215
  .Layer__TransactionsActions {
5157
- grid-template-columns: auto minmax(0, 1fr) minmax(0, 2fr) auto;
5216
+ grid-template-columns: auto minmax(0, 2fr) minmax(0, 3fr) auto;
5158
5217
  grid-template-areas: "toggle . search download";
5159
5218
  }
5160
5219
  }
5161
5220
  @container (min-width: 780px) {
5162
5221
  .Layer__TransactionsActions {
5163
- grid-template-columns: auto minmax(0, 2fr) minmax(0, 3fr) auto;
5222
+ grid-template-columns: auto minmax(0, 3fr) minmax(0, 2fr) auto;
5164
5223
  grid-template-areas: "toggle . search download";
5165
5224
  }
5166
5225
  }
5167
5226
  @container (min-width: 1024px) {
5168
5227
  .Layer__TransactionsActions {
5169
- grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto;
5228
+ grid-template-columns: auto minmax(0, 3fr) minmax(0, 1fr) auto;
5170
5229
  grid-template-areas: "toggle . search download";
5171
5230
  }
5172
5231
  }
@@ -5184,7 +5243,8 @@ tbody .Layer__table__empty-row:first-child {
5184
5243
  grid-template-areas: "icon search";
5185
5244
  grid-template-columns: auto minmax(0, 1fr);
5186
5245
  align-items: center;
5187
- border-radius: var(--border-radius-xs);
5246
+ background: var(--color-base-0);
5247
+ border-radius: var(--border-radius-2xs);
5188
5248
  border: 1px solid var(--border-color);
5189
5249
  padding-inline-end: var(--spacing-3xs);
5190
5250
  }
@@ -6369,7 +6429,7 @@ tbody .Layer__table__empty-row:first-child {
6369
6429
  }
6370
6430
  .Layer__ledger_account-table__balance-item .Layer__ledger_account-table__balances-mobile__value {
6371
6431
  font-weight: var(--font-weight-bold);
6372
- color: var(--color-base-900);
6432
+ color: var(--color-base-700);
6373
6433
  }
6374
6434
  @container (max-width: 1024px) {
6375
6435
  .Layer__ledger-account__panel .Layer__panel__sidebar .Layer__panel__sidebar-content {
@@ -6611,7 +6671,6 @@ tbody .Layer__table__empty-row:first-child {
6611
6671
  }
6612
6672
  .Layer__bank-transactions__header.Layer__bank-transactions__header--mobile .Layer__bank-transactions__header__content,
6613
6673
  .Layer__bank-transactions__header.Layer__bank-transactions__header--with-date-picker .Layer__bank-transactions__header__content {
6614
- width: 100%;
6615
6674
  padding-left: var(--spacing-3xs);
6616
6675
  }
6617
6676
  .Layer__bank-transactions__header--with-date-picker.Layer__bank-transactions__header--mobile .Layer__datepicker__wrapper {
@@ -6860,6 +6919,9 @@ tbody .Layer__table__empty-row:first-child {
6860
6919
  gap: var(--spacing-sm);
6861
6920
  padding: var(--spacing-sm) 0;
6862
6921
  }
6922
+ .Layer__expanded-bank-transaction-row__total-and-btns:empty {
6923
+ display: none;
6924
+ }
6863
6925
  .Layer__bank-transaction-row__table-cell--amount-credit,
6864
6926
  .Layer__bank-transaction-list-item__amount-credit {
6865
6927
  justify-content: flex-end;
@@ -7788,7 +7850,6 @@ tbody .Layer__table__empty-row:first-child {
7788
7850
  flex-direction: column;
7789
7851
  list-style: none;
7790
7852
  overflow: hidden;
7791
- max-width: 414px;
7792
7853
  margin: auto;
7793
7854
  }
7794
7855
  .Layer__bank-transaction-mobile-list-item {
@@ -8863,6 +8924,7 @@ tbody .Layer__table__empty-row:first-child {
8863
8924
  flex-direction: column;
8864
8925
  gap: var(--spacing-4xs);
8865
8926
  justify-content: stretch;
8927
+ min-width: 0;
8866
8928
  }
8867
8929
  .Layer__linked-account-thumb .topbar .topbar-logo {
8868
8930
  display: flex;
@@ -9387,36 +9449,6 @@ tbody .Layer__table__empty-row:first-child {
9387
9449
  padding: 0 0 var(--spacing-sm) var(--spacing-xs);
9388
9450
  position: relative;
9389
9451
  }
9390
- .Layer__pill {
9391
- position: relative;
9392
- background-color: var(--badge-bg-color);
9393
- color: var(--badge-color);
9394
- border-radius: var(--badge-border-radius);
9395
- font-size: var(--text-sm);
9396
- padding: var(--spacing-2xs) var(--spacing-sm);
9397
- display: flex;
9398
- flex-direction: row;
9399
- align-items: center;
9400
- white-space: nowrap;
9401
- user-select: none;
9402
- }
9403
- .Layer__pill svg {
9404
- margin-right: 0.25rem;
9405
- }
9406
- .Layer__pill--error {
9407
- background-color: var(--color-info-error-bg);
9408
- color: var(--color-info-error-fg);
9409
- }
9410
- .Layer__pill--info {
9411
- background-color: var(--color-info-bg);
9412
- color: var(--color-info-fg);
9413
- }
9414
- .Layer__pill--actionable {
9415
- cursor: pointer;
9416
- }
9417
- .Layer__pill--actionable:hover {
9418
- opacity: 0.7;
9419
- }
9420
9452
  .Layer__ProfitAndLossSummariesListItem {
9421
9453
  all: unset;
9422
9454
  display: grid;
package/dist/index.d.ts CHANGED
@@ -58,9 +58,8 @@ declare module '@layerfi/components/api/layer/bankTransactions' {
58
58
  };
59
59
  };
60
60
  };
61
- type GetBankTransactionsParams = {
61
+ type GetBankTransactionsBaseParams = {
62
62
  businessId: string;
63
- cursor?: string;
64
63
  categorized?: boolean;
65
64
  descriptionFilter?: string;
66
65
  direction?: 'INFLOW' | 'OUTFLOW';
@@ -70,8 +69,12 @@ declare module '@layerfi/components/api/layer/bankTransactions' {
70
69
  sortOrder?: 'ASC' | 'DESC';
71
70
  sortBy?: string;
72
71
  };
72
+ type GetBankTransactionsPaginatedParams = GetBankTransactionsBaseParams & {
73
+ cursor?: string;
74
+ limit?: number;
75
+ };
73
76
  export const getBankTransactions: (baseUrl: string, accessToken: string | undefined, options?: {
74
- params?: GetBankTransactionsParams | undefined;
77
+ params?: GetBankTransactionsPaginatedParams | undefined;
75
78
  } | undefined) => () => Promise<GetBankTransactionsReturn>;
76
79
  export const categorizeBankTransaction: (baseUrl: string, accessToken: string | undefined, options?: {
77
80
  params?: Record<string, string | undefined> | undefined;
@@ -90,26 +93,10 @@ declare module '@layerfi/components/api/layer/bankTransactions' {
90
93
  data: BankTransactionMatch;
91
94
  errors: unknown;
92
95
  }>;
93
- export interface GetBankTransactionsExportParams extends Record<string, string | undefined> {
94
- businessId: string;
95
- startDate?: string;
96
- endDate?: string;
97
- categorized?: 'true' | 'false';
98
- category?: string;
99
- month?: string;
100
- year?: string;
101
- }
102
- export const getBankTransactionsCsv: (baseUrl: string, accessToken: string | undefined, options?: {
103
- params?: Record<string, string | undefined> | undefined;
104
- } | undefined) => () => Promise<{
105
- data?: S3PresignedUrl;
106
- error?: unknown;
107
- }>;
108
96
  export const getBankTransactionsExcel: (baseUrl: string, accessToken: string | undefined, options?: {
109
- params?: Record<string, string | undefined> | undefined;
97
+ params?: GetBankTransactionsBaseParams | undefined;
110
98
  } | undefined) => () => Promise<{
111
- data?: S3PresignedUrl;
112
- error?: unknown;
99
+ data: S3PresignedUrl;
113
100
  }>;
114
101
  export const getBankTransactionMetadata: (baseUrl: string, accessToken: string | undefined, options?: {
115
102
  params?: Record<string, string | undefined> | undefined;
@@ -692,18 +679,6 @@ declare module '@layerfi/components/api/layer' {
692
679
  } | undefined) => () => Promise<{
693
680
  data: import("@layerfi/components/types/general").S3PresignedUrl;
694
681
  }>;
695
- getBankTransactionsCsv: (baseUrl: string, accessToken: string | undefined, options?: {
696
- params?: Record<string, string | undefined> | undefined;
697
- } | undefined) => () => Promise<{
698
- data?: import("@layerfi/components/types/general").S3PresignedUrl;
699
- error?: unknown;
700
- }>;
701
- getBankTransactionsExcel: (baseUrl: string, accessToken: string | undefined, options?: {
702
- params?: Record<string, string | undefined> | undefined;
703
- } | undefined) => () => Promise<{
704
- data?: import("@layerfi/components/types/general").S3PresignedUrl;
705
- error?: unknown;
706
- }>;
707
682
  getBankTransactionMetadata: (baseUrl: string, accessToken: string | undefined, options?: {
708
683
  params?: Record<string, string | undefined> | undefined;
709
684
  } | undefined) => () => Promise<{
@@ -1507,7 +1482,7 @@ declare module '@layerfi/components/components/BankTransactionRow/BankTransactio
1507
1482
  stringOverrides?: BankTransactionCTAStringOverrides;
1508
1483
  };
1509
1484
  export type LastSubmittedForm = 'simple' | 'match' | 'split' | undefined;
1510
- export const extractDescriptionForSplit: (category: CategoryWithEntries) => string;
1485
+ export const extractDescriptionForSplit: (category: CategoryWithEntries | null) => string;
1511
1486
  export const getDefaultSelectedCategory: (bankTransaction: BankTransaction) => import("@layerfi/components/components/CategorySelect/CategorySelect").CategoryOption | undefined;
1512
1487
  export const BankTransactionRow: ({ index, editable, dateFormat, bankTransaction, removeTransaction, containerWidth, initialLoad, showDescriptions, showReceiptUploads, showReceiptUploadColumn, showTooltips, stringOverrides, }: Props) => import("react/jsx-runtime").JSX.Element;
1513
1488
  export {};
@@ -1528,7 +1503,7 @@ declare module '@layerfi/components/components/BankTransactionRow/SplitTooltipDe
1528
1503
  import type { CategoryWithEntries } from '@layerfi/components/types/bank_transactions';
1529
1504
  export const SplitTooltipDetails: ({ classNamePrefix, category, }: {
1530
1505
  classNamePrefix: string;
1531
- category: CategoryWithEntries;
1506
+ category: CategoryWithEntries | null;
1532
1507
  }) => import("react/jsx-runtime").JSX.Element | undefined;
1533
1508
 
1534
1509
  }
@@ -1568,7 +1543,7 @@ declare module '@layerfi/components/components/BankTransactions/BankTransactionM
1568
1543
  }
1569
1544
  declare module '@layerfi/components/components/BankTransactions/BankTransactions' {
1570
1545
  import { BankTransactionFilters } from '@layerfi/components/hooks/useBankTransactions/types';
1571
- import { BankTransactionsTableStringOverrides } from '@layerfi/components/components/BankTransactionsTable/BankTransactionsTable';
1546
+ import { type BankTransactionsTableStringOverrides } from '@layerfi/components/components/BankTransactionsTable/BankTransactionsTable';
1572
1547
  import { BankTransactionsHeaderStringOverrides } from '@layerfi/components/components/BankTransactions/BankTransactionsHeader';
1573
1548
  import { MobileComponentType } from '@layerfi/components/components/BankTransactions/constants';
1574
1549
  import type { LayerError } from '@layerfi/components/models/ErrorHandler';
@@ -1632,17 +1607,15 @@ declare module '@layerfi/components/components/BankTransactions/BankTransactions
1632
1607
  export const BankTransactionsHeader: ({ shiftStickyHeader, asWidget, categorizedOnly, categorizeView, display, onCategorizationDisplayChange, mobileComponent, withDatePicker, listView, dateRange, setDateRange, stringOverrides, isSyncing, }: BankTransactionsHeaderProps) => import("react/jsx-runtime").JSX.Element;
1633
1608
 
1634
1609
  }
1635
- declare module '@layerfi/components/components/BankTransactions/DataStates' {
1636
- import { BankTransaction } from '@layerfi/components/types';
1637
- interface DataStatesProps {
1638
- bankTransactions?: BankTransaction[];
1639
- isLoading?: boolean;
1640
- isValidating?: boolean;
1641
- error?: unknown;
1642
- refetch: () => void;
1643
- editable: boolean;
1644
- }
1645
- export const DataStates: ({ bankTransactions, isLoading, isValidating, error, refetch, editable, }: DataStatesProps) => import("react/jsx-runtime").JSX.Element;
1610
+ declare module '@layerfi/components/components/BankTransactions/BankTransactionsTableEmptyState' {
1611
+ type BankTransactionsTableEmptyStatesProps = {
1612
+ hasVisibleTransactions: boolean;
1613
+ isCategorizationMode: boolean;
1614
+ isError: boolean;
1615
+ isFiltered: boolean;
1616
+ isLoadingWithoutData: boolean;
1617
+ };
1618
+ export function BankTransactionsTableEmptyStates({ hasVisibleTransactions, isCategorizationMode, isError, isFiltered, isLoadingWithoutData, }: BankTransactionsTableEmptyStatesProps): import("react/jsx-runtime").JSX.Element | null;
1646
1619
  export {};
1647
1620
 
1648
1621
  }
@@ -1704,10 +1677,6 @@ declare module '@layerfi/components/components/BankTransactionsTable/BankTransac
1704
1677
  export const BankTransactionsTable: ({ categorizeView, editable, isLoading, bankTransactions, containerWidth, removeTransaction, showDescriptions, showReceiptUploads, showTooltips, stringOverrides, isSyncing, page, lastPage, onRefresh, }: BankTransactionsTableProps) => import("react/jsx-runtime").JSX.Element;
1705
1678
  export {};
1706
1679
 
1707
- }
1708
- declare module '@layerfi/components/components/BankTransactionsTable/index' {
1709
- export { BankTransactionsTable } from '@layerfi/components/components/BankTransactionsTable/BankTransactionsTable';
1710
-
1711
1680
  }
1712
1681
  declare module '@layerfi/components/components/BookkeepingStatus/BookkeepingStatus' {
1713
1682
  import { BookkeepingPeriodStatus } from '@layerfi/components/hooks/bookkeeping/periods/useBookkeepingPeriods';
@@ -3015,20 +2984,16 @@ declare module '@layerfi/components/components/LinkedAccountOptions/index' {
3015
2984
 
3016
2985
  }
3017
2986
  declare module '@layerfi/components/components/LinkedAccountPill/LinkedAccountPill' {
3018
- type Props = {
3019
- text: string;
3020
- config: {
3021
- name: string;
2987
+ type LinkedAccountPillProps = {
2988
+ label: string;
2989
+ items: ReadonlyArray<{
3022
2990
  action: () => void;
3023
- }[];
2991
+ name: string;
2992
+ }>;
3024
2993
  };
3025
- export const LinkedAccountPill: ({ text, config }: Props) => import("react/jsx-runtime").JSX.Element;
2994
+ export function LinkedAccountPill({ label, items }: LinkedAccountPillProps): import("react/jsx-runtime").JSX.Element;
3026
2995
  export {};
3027
2996
 
3028
- }
3029
- declare module '@layerfi/components/components/LinkedAccountPill/index' {
3030
- export { LinkedAccountPill } from '@layerfi/components/components/LinkedAccountPill/LinkedAccountPill';
3031
-
3032
2997
  }
3033
2998
  declare module '@layerfi/components/components/LinkedAccountThumb/LinkedAccountThumb' {
3034
2999
  import { LinkedAccount } from '@layerfi/components/types/linked_accounts';
@@ -3036,19 +3001,11 @@ declare module '@layerfi/components/components/LinkedAccountThumb/LinkedAccountT
3036
3001
  account: LinkedAccount;
3037
3002
  asWidget?: boolean;
3038
3003
  showLedgerBalance?: boolean;
3039
- pillConfig?: {
3040
- text: string;
3041
- config: {
3042
- name: string;
3043
- action: () => void;
3044
- }[];
3004
+ slots: {
3005
+ Pill: React.ReactNode;
3045
3006
  };
3046
3007
  }
3047
- export const LinkedAccountThumb: ({ account, asWidget, showLedgerBalance, pillConfig, }: LinkedAccountThumbProps) => import("react/jsx-runtime").JSX.Element;
3048
-
3049
- }
3050
- declare module '@layerfi/components/components/LinkedAccountThumb/index' {
3051
- export { LinkedAccountThumb } from '@layerfi/components/components/LinkedAccountThumb/LinkedAccountThumb';
3008
+ export const LinkedAccountThumb: ({ account, asWidget, showLedgerBalance, slots, }: LinkedAccountThumbProps) => import("react/jsx-runtime").JSX.Element;
3052
3009
 
3053
3010
  }
3054
3011
  declare module '@layerfi/components/components/LinkedAccounts/AccountFormBox/AccountFormBox' {
@@ -3249,7 +3206,7 @@ declare module '@layerfi/components/components/MatchForm/MatchForm' {
3249
3206
  matchFormError?: string;
3250
3207
  readOnly?: boolean;
3251
3208
  }
3252
- export const MatchForm: ({ classNamePrefix, bankTransaction, selectedMatchId, setSelectedMatchId, matchFormError, readOnly, }: MatchFormProps) => import("react/jsx-runtime").JSX.Element;
3209
+ export const MatchForm: ({ classNamePrefix, bankTransaction, selectedMatchId, setSelectedMatchId, matchFormError, readOnly, }: MatchFormProps) => import("react/jsx-runtime").JSX.Element | null;
3253
3210
 
3254
3211
  }
3255
3212
  declare module '@layerfi/components/components/MatchForm/MatchFormMobile' {
@@ -3357,22 +3314,6 @@ declare module '@layerfi/components/components/PeriodPicker/PeriodPicker' {
3357
3314
  declare module '@layerfi/components/components/PeriodPicker/index' {
3358
3315
  export { PeriodPicker } from '@layerfi/components/components/PeriodPicker/PeriodPicker';
3359
3316
 
3360
- }
3361
- declare module '@layerfi/components/components/Pill/Pill' {
3362
- import { PropsWithChildren } from 'react';
3363
- type PillKind = 'default' | 'info' | 'success' | 'warning' | 'error';
3364
- type Props = PropsWithChildren & {
3365
- kind?: PillKind;
3366
- onHover?: () => void;
3367
- onClick?: () => void;
3368
- };
3369
- export const Pill: ({ children, kind, onHover, onClick }: Props) => import("react/jsx-runtime").JSX.Element;
3370
- export {};
3371
-
3372
- }
3373
- declare module '@layerfi/components/components/Pill/index' {
3374
- export { Pill } from '@layerfi/components/components/Pill/Pill';
3375
-
3376
3317
  }
3377
3318
  declare module '@layerfi/components/components/PlatformOnboarding/Container/LinkAccountsListContainer' {
3378
3319
  import type { PropsWithChildren } from 'react';
@@ -4675,6 +4616,16 @@ declare module '@layerfi/components/components/ui/Loading/LoadingSpinner' {
4675
4616
  import { type LucideProps } from 'lucide-react';
4676
4617
  export function LoadingSpinner({ size }: Pick<LucideProps, 'size'>): import("react/jsx-runtime").JSX.Element;
4677
4618
 
4619
+ }
4620
+ declare module '@layerfi/components/components/ui/Menu/Menu' {
4621
+ import { type MenuItemProps as ReactAriaMenuItemProps } from 'react-aria-components';
4622
+ export const Menu: import("react").ForwardRefExoticComponent<{
4623
+ children?: import("react").ReactNode | undefined;
4624
+ } & import("react").RefAttributes<HTMLDivElement>>;
4625
+ export const MenuItem: import("react").ForwardRefExoticComponent<{
4626
+ children?: import("react").ReactNode | undefined;
4627
+ } & Pick<ReactAriaMenuItemProps<object>, "textValue" | "onAction"> & import("react").RefAttributes<HTMLDivElement>>;
4628
+
4678
4629
  }
4679
4630
  declare module '@layerfi/components/components/ui/Modal/Modal' {
4680
4631
  import { type ComponentProps } from 'react';
@@ -4722,6 +4673,15 @@ declare module '@layerfi/components/components/ui/Modal/ModalSlots' {
4722
4673
  function ModalActions({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
4723
4674
  export { ModalContextBar, ModalHeading, ModalDescription, ModalContent, ModalActions, };
4724
4675
 
4676
+ }
4677
+ declare module '@layerfi/components/components/ui/Pill/Pill' {
4678
+ import { type ButtonProps } from 'react-aria-components';
4679
+ type PillStatus = 'error';
4680
+ export const Pill: import("react").ForwardRefExoticComponent<Pick<ButtonProps, "children" | "onHoverStart" | "onPress"> & {
4681
+ status?: PillStatus;
4682
+ } & import("react").RefAttributes<HTMLButtonElement>>;
4683
+ export {};
4684
+
4725
4685
  }
4726
4686
  declare module '@layerfi/components/components/ui/SearchField/MinimalSearchField' {
4727
4687
  import { type SearchFieldProps as ReactAriaSearchFieldProps } from 'react-aria-components';
@@ -5596,6 +5556,8 @@ declare module '@layerfi/components/hooks/useBankTransactions/useAugmentedBankTr
5596
5556
  import { BankTransaction, CategoryUpdate } from '@layerfi/components/types';
5597
5557
  import { DisplayState } from '@layerfi/components/types/bank_transactions';
5598
5558
  import { BankTransactionFilters, UseBankTransactionsParams } from '@layerfi/components/hooks/useBankTransactions/types';
5559
+ import { type UseBankTransactionsOptions } from '@layerfi/components/hooks/useBankTransactions/useBankTransactions';
5560
+ export function bankTransactionFiltersToHookOptions(filters?: BankTransactionFilters): UseBankTransactionsOptions;
5599
5561
  export const useAugmentedBankTransactions: (params?: UseBankTransactionsParams) => {
5600
5562
  data: BankTransaction[] | undefined;
5601
5563
  metadata: {
@@ -5624,7 +5586,7 @@ declare module '@layerfi/components/hooks/useBankTransactions/useAugmentedBankTr
5624
5586
  }
5625
5587
  declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactions' {
5626
5588
  import { type GetBankTransactionsReturn } from '@layerfi/components/api/layer/bankTransactions';
5627
- type UseBankTransactionsOptions = {
5589
+ export type UseBankTransactionsOptions = {
5628
5590
  categorized?: boolean;
5629
5591
  direction?: 'INFLOW' | 'OUTFLOW';
5630
5592
  descriptionFilter?: string;
@@ -5633,7 +5595,16 @@ declare module '@layerfi/components/hooks/useBankTransactions/useBankTransaction
5633
5595
  tagFilterQueryString?: string;
5634
5596
  };
5635
5597
  export function useBankTransactions({ categorized, descriptionFilter, direction, startDate, endDate, tagFilterQueryString, }: UseBankTransactionsOptions): import("swr/infinite").SWRInfiniteResponse<GetBankTransactionsReturn, any>;
5636
- export {};
5598
+
5599
+ }
5600
+ declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactionsDownload' {
5601
+ import type { UseBankTransactionsOptions } from '@layerfi/components/hooks/useBankTransactions/useBankTransactions';
5602
+ export function useBankTransactionsDownload(): import("swr/mutation").SWRMutationResponse<import("../../types/general").S3PresignedUrl | undefined, any, () => {
5603
+ readonly accessToken: string;
5604
+ readonly apiUrl: string;
5605
+ readonly businessId: string;
5606
+ readonly tags: readonly ["#bank-transactions-download-excel"];
5607
+ } | undefined, UseBankTransactionsOptions>;
5637
5608
 
5638
5609
  }
5639
5610
  declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactionsMetadata' {
@@ -6971,7 +6942,7 @@ declare module '@layerfi/components/types/bank_transactions' {
6971
6942
  amount: number;
6972
6943
  direction: Direction;
6973
6944
  counterparty_name: string;
6974
- category: CategoryWithEntries;
6945
+ category: CategoryWithEntries | null;
6975
6946
  categorization_status: CategorizationStatus;
6976
6947
  categorization_flow: Categorization | null;
6977
6948
  categorization_method: string;
@@ -8461,8 +8432,16 @@ declare module '@layerfi/components/utils/styleUtils/toDataProperties' {
8461
8432
  export {};
8462
8433
 
8463
8434
  }
8464
- declare module '@layerfi/components/utils/switch/safeAssertUnreachable' {
8465
- export function safeAssertUnreachable(value: never, message?: string): never;
8435
+ declare module '@layerfi/components/utils/switch/assertUnreachable' {
8436
+ export function safeAssertUnreachable<T>({ value, message, fallbackValue, }: {
8437
+ value: never;
8438
+ message?: string;
8439
+ fallbackValue?: T;
8440
+ }): T | undefined;
8441
+ export function unsafeAssertUnreachable({ message, }: {
8442
+ value: never;
8443
+ message?: string;
8444
+ }): never;
8466
8445
 
8467
8446
  }
8468
8447
  declare module '@layerfi/components/utils/swr/defaultSWRConfig' {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerfi/components",
3
- "version": "0.1.94-alpha",
3
+ "version": "0.1.95-alpha",
4
4
  "description": "Layer React Components",
5
5
  "main": "dist/cjs/index.cjs",
6
6
  "module": "dist/esm/index.mjs",
@@ -50,6 +50,7 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@stylistic/eslint-plugin": "^2.10.0",
53
+ "@stylistic/stylelint-config": "^2.0.0",
53
54
  "@stylistic/stylelint-plugin": "^3.1.1",
54
55
  "@types/jest": "^29.5.7",
55
56
  "@types/lodash": "^4.17.16",